POST /api/postcards, and to retrieve the full forensic report once analysis completes.
Method and path
Request
Query parameters
The social media post URL being analyzed. Must exactly match the URL that was submitted to
POST /api/postcards (the API normalizes both for comparison, so minor variations like trailing slashes are handled).Responses
The response shape varies based on the current analysis state. All responses useContent-Type: application/json.
Processing (status: “processing”)
Returned while the analysis is queued or actively running. Thestage and progress fields let you show a progress indicator.
"processing" — analysis is in progress.UUID of the postcard record.
Current pipeline stage key. One of:
starting, scraping, scraped, corroborating, auditing, scoring, complete.A float from
0.0 to 1.0 representing overall pipeline completion. Useful for progress bars.Human-readable description of the current stage (e.g.,
"Searching for primary sources...").Completed (status: “completed”)
The full forensic report is included in the response. No further polling is needed."completed".The normalized URL that was analyzed.
Detected platform:
"X", "YouTube", "Reddit", "Instagram", or "Other".Composite credibility score from
0.0 (low credibility) to 1.0 (high credibility).Full extracted post content in Markdown format.
Structured metadata extracted from the post.
Source triangulation metadata.
Origin and temporal audit scores.
Results of the AI-driven source corroboration pass.
ISO 8601 datetime when the analysis was created.
UUID of the completed postcard record. Use this as the
{id} parameter for the OG image endpoint.Failed (status: “failed”)
The analysis could not be completed. Theerror field contains a description of what went wrong.
"failed".UUID of the failed postcard record.
Description of the failure (e.g.,
"Unable to access this content. Login or signup wall detected.").Not found (404)
No analysis exists for the given URL. Submit the URL viaPOST /api/postcards to start a trace.
"not_found".Human-readable message directing the caller to submit the URL.
Polling pattern
Poll this endpoint every 3–5 seconds after submitting a URL. Stop whenstatus is "completed" or "failed".