> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.usegrade.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Media eligibility scores

> Incrementally sync media eligibility scores with complete records, removals, and durable cursors.

## GET /sdk/v1/campaigns/:campaignId/media/eligibility/sync

Sync scores for individual media posts in a campaign. Replace by `id`, which equals `campaignCreatorMediaId`.

Requires `X-Application-Id`, `X-Api-Key`, and `campaigns:read`.
Follow the [shared syncing workflow](https://api-docs.usegrade.com/syncing/overview.md) for pagination, cursor
storage, retries and removals. Only `cursor` and `limit` are accepted.

```bash theme={null}
curl --get "$BASE_URL/sdk/v1/campaigns/$CAMPAIGN_ID/media/eligibility/sync" \
  -H "X-Application-Id: $APP_ID" \
  -H "X-Api-Key: $API_KEY" \
  --data-urlencode "limit=100"
```

On subsequent requests, add `--data-urlencode "cursor=$SAVED_CURSOR"`.

## Record format

Each item in `data` is a complete replacement with these fields:

```json theme={null}
{
  "id": "CCMEDIA_123",
  "campaignCreatorMediaId": "CCMEDIA_123",
  "campaignCreatorRecordId": "CCR_123",
  "campaignId": "CAMPAIGN_123",
  "url": "https://www.tiktok.com/@jordan/video/7350000000000000000",
  "platform": "TIKTOK",
  "score": 0.85
}
```

The feed includes posts (`isAccount: false`) with a score or `score: null`.
Accounts are excluded. It follows the [eligibility score list](https://api-docs.usegrade.com/campaign-media/eligibility-scores.md):
tracking retirement alone does not remove an otherwise available post.

Score, URL, platform, membership and visibility changes produce replacements or
removals as appropriate. A score is the stored eligibility score; this feed does
not calculate payout eligibility, payment exclusions, or payout amounts.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.