Source Items
This endpoint allows you to retrieve collected source items for basketball signals.
The current fresh signals ingestion pipeline stores X posts only, so source and publisher are currently x.
Filtering: This endpoint uses PostgREST filter syntax such as
eq.,gte.,lte., andorder=published_at.desc.
Pagination: Use
offsetandlimitto page through source items.
Update Period: The endpoint is refreshed whenever the basketball signals sync ingests new X posts.
Recommended Calls: Query it by match_id or league_id during pre-match monitoring windows.
Use Cases
Get the latest source items for a specific match_idhttps://signals.sportmicro.com/basketball_source_items?match_id=eq.{match_id}&source=eq.x&order=published_at.desc
Get source items from a specific league_idhttps://signals.sportmicro.com/basketball_source_items?league_id=eq.{league_id}&limit=20
Query Parameters
- match_id string
The string match id from the sport-specific matches table.
Example: eq.200001 - league_id string
The league id attached to the source item.
Example: eq.1819 - source string
The upstream source. The current fresh pipeline stores
xonly.Example: eq.x - external_id string
The upstream X post id.
Example: eq.1919112345678901234 - published_at string
A PostgREST timestamp filter, for example
gte.{timestamp}.Example: gte.2026-05-08T17:05:00+00:00 - dedupe_hash string
The dedupe hash used to avoid duplicate source items.
Example: eq.06de6482ee3403047eb621898687da6a - order string
Sorting instruction such as
published_at.desc.Example: published_at.desc - offset string
Pagination offset.
Example: 0 - limit string
Pagination limit.
Example: 20
- 200
- application/json
- Schema
- Example (from schema)
Schema array
- id uuid
The UUID of the source item.
- match_id text
The string match id from the sport-specific matches table.
- league_id bigint
The league id attached to the source item.
- source text
The upstream content source. The current fresh pipeline stores
xonly. - external_id text
The upstream X post id.
- url text
The canonical URL of the source item.
- title text
A trimmed title derived from the source content.
- content_snippet text
The collected source text snippet.
- author_name text
The display name of the source author.
- author_handle text
The handle of the source author.
- publisher text
The publisher label stored by the pipeline. The current fresh pipeline stores
xonly. - published_at timestamp with time zone
The upstream publish timestamp.
- collected_at timestamp with time zone
The time when Sportmicro collected the source item.
- language text
The detected language. The current fresh X pipeline stores
null. - engagement jsonb
Engagement metrics from the upstream X payload.
- teams jsonb
Matched competitors with
id,name,side, andmatched. - players jsonb
Player enrichment payload. The current fresh pipeline returns an empty array.
- raw_payload jsonb
The sanitized raw upstream X payload.
- dedupe_hash text
The hash used to deduplicate repeated source items.
- created_at timestamp with time zone
The row creation timestamp.
- updated_at timestamp with time zone
The row update timestamp.
[
{
"id": "362d517b-cdc6-bb2d-9279-2334a854308d",
"match_id": "200001",
"league_id": 1819,
"source": "x",
"external_id": "1919112345678901234",
"url": "https://x.com/celtics/status/1919112345678901234",
"title": "Boston Celtics update: Jayson Tatum questionable for tonight against Miami Heat.",
"content_snippet": "Boston Celtics update: Jayson Tatum questionable for tonight against Miami Heat.",
"author_name": "Boston Celtics",
"author_handle": "celtics",
"publisher": "x",
"published_at": "2026-05-08T17:05:00+00:00",
"collected_at": "2026-05-08T17:05:28+00:00",
"language": null,
"engagement": {
"view_count": 18340,
"user_followers_count": 4310000,
"user_favourites_count": 3200,
"user_following_count": 212,
"is_quote_status": false
},
"teams": [
{
"id": "8569",
"name": "Boston Celtics",
"side": "home",
"matched": true
},
{
"id": "18716",
"name": "Miami Heat",
"side": "away",
"matched": true
}
],
"players": [],
"raw_payload": {
"id": "1919112345678901234",
"text": "Boston Celtics update: Jayson Tatum questionable for tonight against Miami Heat.",
"created_at": "2026-05-08T17:05:00+00:00",
"url": "https://x.com/celtics/status/1919112345678901234",
"user_name": "Boston Celtics",
"user_screen_name": "celtics",
"view_count": 18340,
"user_followers_count": 4310000,
"user_favourites_count": 3200,
"user_following_count": 212,
"is_quote_status": false
},
"dedupe_hash": "06de6482ee3403047eb621898687da6a",
"created_at": "2026-05-08T17:05:28+00:00",
"updated_at": "2026-05-08T17:05:28+00:00"
}
]
Common filters
match_id=eq.{match_id}league_id=eq.{league_id}source=eq.xpublished_at=gte.{timestamp}published_at=lte.{timestamp}order=published_at.desc
Notes
- The current fresh extractor stores X content only, so
sourceandpublisherare bothx. raw_payloadstores the sanitized upstream X payload for the source item.teamscontains matched competitors withid,name,side, andmatched.playersis currently an empty JSON array in the fresh pipeline output.