id; the analysis runs in the background. Poll GET /api/postcards?url= for status updates.
Method and path
Request
Headers
| Header | Required | Value |
|---|---|---|
Content-Type | Yes | application/json |
Body parameters
The full URL of the social media post to verify. Must be a valid URL. Supported platforms include X, Reddit, YouTube, Instagram, Bluesky, Threads, and generic URLs via Jina Reader fallback.
Your Google Gemini API key. Required if the server is not configured with a server-side key. Get a free key at https://aistudio.google.com/api-keys. See Authentication for details.
When
true, forces a fresh analysis even if a completed result already exists in the cache. Use this to re-analyze a post after a significant time has passed or if the cached result is stale.Request example
Responses
202 Accepted — analysis started
Returned when a new analysis has been created and is running in the background.Always
"processing" for a freshly submitted analysis.UUID of the created analysis. Use this as a reference; poll with the original URL via the GET endpoint.
Human-readable message confirming the trace was initialized.
202 Accepted — cache hit (already processing)
If an analysis for this URL is already in progress, the existing job is returned rather than starting a duplicate.200 OK — cache hit (completed)
If a completed analysis already exists andrefresh is not true, the endpoint returns the full report immediately — no polling needed.
400 Bad Request — invalid input
Returned when the request body is malformed or theurl field is missing or not a valid URL.
Polling for results
After submitting, use theGET /api/postcards?url= endpoint to track progress. Poll every 3–5 seconds until status is "completed" or "failed".
See Get postcard status for the full polling reference and response schema.