Via the web UI
Open Postcard
Navigate to postcard.fartlabs.org. The home page displays a URL input field.
Paste the post URL
Paste the full URL of the social media post you want to verify — for example,
https://x.com/user/status/123.Submit
Press Enter or click the submit button. Postcard redirects you to
/postcards?url=<encoded-url> and the forensic pipeline starts automatically, provided your API key is configured.The pipeline requires a Google Gemini API key to start a new analysis. If you haven’t set one up yet, see API key setup.
Via the REST API
Use the REST API to integrate Postcard into your own tools or pipelines.1. Submit the URL
Send aPOST request to /api/postcards with the post URL in the JSON body:
id:
2. Poll for results
Use the original URL to pollGET /api/postcards?url=... for status updates:
stage, message, and progress (0–1):
Forcing re-analysis with refresh
By default, Postcard serves a cached result if the URL has been analysed before — no API key required. To force a fresh analysis regardless of the cache, set refresh: true in your POST body:
Cached results
When a URL has already been analysed, Postcard returns the stored report immediately with no pipeline cost — no API key needed for cached lookups. The GET endpoint (/api/postcards?url=...) also serves cached results directly. If no analysis exists for the URL yet, it returns a 404 not_found response:
Error cases
| Error | Cause |
|---|---|
| Login or signup wall detected | The platform requires authentication to view the content (common on Instagram and some X posts) |
| Cloudflare or security check detected | The platform blocked the scraper with a challenge page |
| Content too short or empty | The page returned insufficient text for analysis |
| Platform not recognized or supported | The URL resolved to a generic page with no platform signals |
insufficient_data and records the failure reason in the corroboration log. No API credits are consumed.