Feeds

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 (postsPerDayBasis says 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": "…" }]
}