Skip to main content
POST
Analyze a tweet's claim asynchronously (long attached video)
Analyze a tweet’s claim when it carries a long video. The job runs in the background: you get a task_id immediately, then collect the result by polling or through a webhook.
Use this endpoint instead of POST /tweet/statement when the tweet (or the tweet it quotes) may carry a video longer than 10 minutes — attached media is transcribed in full before the claim is extracted, and the synchronous endpoint rejects it with video_too_long. It works for any tweet, with or without media.

How It Works

1

Submit the job

POST /tweet/statement/async with the same body as POST /tweet/statement, plus an optional webhook_url. You get 202 Accepted with a task_id and a check_status_url.
2

Wait for the result

Poll GET /tweet/statement/{task_id} every few seconds while task_status is processing — polling is free — or receive a webhook when the job finishes.
3

Read the result

On completed, data.result is identical to the synchronous response’s data block, so the same parsing code works for both. On failed, data.error carries the same error code the synchronous endpoint would have returned.

Billing

Billed exactly like POST /tweet/statement — the async mode costs nothing extra. Charges are made in the background worker, so pass include_usage=true on the result request (not on the submit) to see them. A failed job has all of its charges reverted.

Submit the job

POST https://api.vidnavigator.com/v1/tweet/statement/async

Response (202 Accepted)

Get the result

The playground above only covers the submit request. Call the result endpoint with cURL or your HTTP client.
GET https://api.vidnavigator.com/v1/tweet/statement/{task_id} Polling is free. Results are kept for 1 hour after the job finishes, and reading a task doesn’t delete it. On completed, data.result is identical to the data block of the synchronous response (final_statement, detailed_analysis, topics, entities, classification axes and media summaries).
On failed, data.result is null and data.error carries the same code and http_status the synchronous endpoint would have returned. All charges are reverted.

Webhook

Pass webhook_url on the submit request, or configure a default endpoint in Studio → API, to be called back when the job finishes. See Webhooks for the payload and signature verification, and Async Jobs for the full workflow.

Authorizations

X-API-Key
string
header
required

API key authentication. Include your VidNavigator API key in the X-API-Key header.

Body

application/json
tweet_id
string
required

The X/Twitter tweet ID

Example:

"1234567890123456789"

webhook_url
string<uri>

Where to POST the result when the job finishes. Overrides the account-level default configured in Studio → API. Pass an empty string to opt this job out of that default. Must be a publicly reachable https URL — private, loopback and link-local hosts are rejected. See https://docs.vidnavigator.com/guides/webhooks

Example:

"https://example.com/hooks/vidnavigator"

Response

Job accepted and started.

202 response from an async submit endpoint.

status
enum<string>
Available options:
success
data
object