Skip to main content
The profile and audience endpoints answer from data Streamforge already holds. When they answer 404 for a creator you need, or a creator has a profile but no audience analysis, ask for the creator with a creator request and check back for the result.
Creator requests are available with a Streamforge API key only, not through RapidAPI.

How it works

  1. POST /creator-requests with the creator you want.
  2. If everything you asked for can already be served, the answer is 200 and the data is in result. You are done.
  3. Otherwise the answer is 202 with a request_id. Read GET /creator-requests/{request_id} every few seconds until it answers 200.
Both endpoints return the same body, so one piece of code can handle either.

Step 1: Make the request

Name the creator by platform and handle, by platform and profile ID, or with a profile URL:
Any one of these bodies names a creator:
Add "audience": false if you only need the profile. A URL has to be a creator’s profile or channel. A link to a video, a post or a search page is rejected with 400 and the code unsupported_profile_url. When there is work to do, the answer is 202:

Step 2: Poll until it finishes

Read the request at status_url, waiting poll_after_seconds between reads. The answer stays 202 while the request is pending or processing and becomes 200 when it has finished:
result.profile is filled in as soon as the profile can be served, which can be while the audience analysis is still in progress. stage, progress and message are there for showing progress to a person; decide what to do next from status and parts.

Step 3: Read the outcome

A finished request has one of four statuses: result.profile is the same object Get single profile returns, and result.audience the same object Get audience analysis returns. profile_id is the ID to use with every other endpoint from then on.

When the audience analysis is not available

partial is an ordinary outcome, not an error. An audience analysis is not always possible, and parts.audience tells you which case you are in: audience_reason carries the same explanation as a sentence you can show.

Credits

meta.credits_charged shows what the request has cost in total, and the X-Credits-request-cost response header what the call you just made cost. Both are in credits. Reads are free but do count towards your per-minute rate limit, so keep to poll_after_seconds.

Errors

A request can be read only with the API key that created it, and stays readable for 7 days.

Best practices

  • Use the profile endpoint when a profile is all you need and you have its ID: it costs 0.01 credit for a creator that is already available, where a creator request costs 1 credit.
  • Keep the request_id rather than posting again: a new POST after the request has finished starts, and charges, a new request.
  • Treat partial as a result: the profile is usable even when no audience analysis could be produced.
  • Respect Retry-After on 202, 429 and 503 answers.