Trackers
A tracker follows one X or LinkedIn account for your organization. Feeds checks it at your cadence and delivers each new post to your API, webhooks, and RSS feed.
Create a tracker
curl -X POST https://usefeeds.com/v1/trackers \
-H "Authorization: Bearer $FEEDS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sourceType":"linkedin","handle":"https://www.linkedin.com/company/example","cadenceMinutes":360}'
| Field | Notes |
|---|---|
sourceType |
twitter or linkedin. |
handle |
X: nasa, @nasa, or an x.com URL. LinkedIn: a profile (in/name or its URL) or a company page (company/name or its URL). Every spelling of the same account is the same tracker. |
cadenceMinutes |
How often to check. At least 5 for X and 60 for LinkedIn; at most 43,200 (30 days). |
monthlyBudgetCredits |
Optional cap for the calendar month (UTC). null means no cap. |
Creating a tracker costs its setup credits and needs enough balance for setup plus one check; otherwise the API answers 402. Tracking an account twice answers 409.
How checks are spaced
Each empty check widens the next interval by 1.5×, up to 7 days. A new post brings the interval back to your cadence. Quiet accounts therefore cost little, and active accounts are checked as often as you asked.
Before you create a tracker, POST /v1/estimates with the same sourceType, handle, and cadenceMinutes returns:
max: every check at your cadence, the most the tracker can cost in a month;expected: the cost with spacing, from the posting rate we have seen for that account, or 1 post a day when we do not know it (postsPerDayBasissays which).
Budgets and balance
A tracker is not checked when your balance cannot pay one check, or when the next check would pass its monthly budget. It resumes when you add credits or when the month changes. Posts found by the last check are still delivered and charged, so a tracker can end its month slightly over budget.
Change or stop a tracker
curl -X PATCH https://usefeeds.com/v1/trackers/TRACKER_ID \
-H "Authorization: Bearer $FEEDS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"cadenceMinutes":120,"enabled":false,"monthlyBudgetCredits":null}'
curl -X DELETE https://usefeeds.com/v1/trackers/TRACKER_ID \
-H "Authorization: Bearer $FEEDS_API_KEY"
GET /v1/trackers lists your trackers with spentThisMonthCredits. A tracker whose account was deleted or cannot be read shows state: "abandoned" and is no longer checked.
Read delivered posts
curl "https://usefeeds.com/v1/trackers/TRACKER_ID/items?limit=50" \
-H "Authorization: Bearer $FEEDS_API_KEY"
Items come newest first, at most 200 per page. For the next page, pass the publishedAt and id of the last item as before and beforeId. A tracker returns the posts delivered to it since it was created.
{
"id": 4211,
"externalId": "1850000000000000000",
"author": "NASA",
"title": "First words of the post…",
"contentHtml": "<p>Full text of the post</p>",
"url": "https://x.com/NASA/status/1850000000000000000",
"publishedAt": "2026-10-20T10:00:00.000Z",
"media": [{ "type": "photo", "url": "https://…", "alt": "…" }]
}