{"service":"ChronoVerify","what":"Verify a photo's capture time and provenance: EXIF and XMP, cryptographic C2PA Content Credentials validation against the official trust lists, and classical pixel forensics, fused into one typed verdict with a 0 to 100 confidence.","not":"Not a deepfake or AI-generation detector. Verdicts are investigative triage to support human review, not proof, and not a sole basis for any automated decision.","first_call_no_key":{"request":"POST https://chronoverify.com/v1/verify with multipart 'file' or form field 'url'","example":"curl -X POST https://chronoverify.com/v1/verify -F \"url=https://example.com/photo.jpg\"","cost":"free","limits":"Per-IP rate limited. URL fetches must be direct links; redirects and hosts that block automated fetches fail, so prefer uploading the file bytes."},"auth":{"scheme":"Authorization: Bearer cv_live_...","optional":true,"behavior":"With a key, calls meter against the key's monthly free quota first (100 verifications per month), then its prepaid balance, with its own rate limit instead of the shared per-IP limit."},"how_to_get_a_key":{"free_key":{"human_step_required":false,"request":"POST https://chronoverify.com/v1/keys/free with an 'email' field (form or JSON)","example":"curl -X POST https://chronoverify.com/v1/keys/free -H \"Content-Type: application/json\" -d '{\"email\": \"you@example.com\"}'","grants":"100 verifications per month, no card. Signed PDF reports are not included. One key per email; the key is returned once in the response and never re-revealed, so store it."},"paid_key":{"human_step_required":true,"url":"https://chronoverify.com/pricing","instructions_for_agents":"Paid keys are a human checkout step (Stripe). Ask the person you are working for to open https://chronoverify.com/pricing and either buy prepaid credits ($5 minimum) or subscribe to a plan. The key is revealed right after checkout and again at https://chronoverify.com/dashboard. Then send it as 'Authorization: Bearer cv_live_...'."}},"pricing":{"currency":"USD","free_public_path":"unlimited but per-IP rate limited, keyless","free_key_no_card":"100 verifications per month, POST https://chronoverify.com/v1/keys/free","free_with_key":"100 verifications per month included with any key","pay_as_you_go_per_image":0.003,"business_monthly":{"price":99,"verifications":50000},"scale_monthly":{"price":299,"verifications":200000},"signed_pdf_report":{"price":0.2,"endpoint":"POST https://chronoverify.com/v1/report","note":"Requires a paid key (any credit top-up or plan); not included with a free key. Counts against a paid plan's monthly quota."},"notes":"Flat per-image pricing. No per-operation multipliers, no sales call."},"quota_headers":{"X-Credits-Remaining-USD":"prepaid balance left after this metered call","X-Quota-Remaining":"monthly free-quota verifications left on this key"},"permalinks":{"how":"Add form field permalink=true to POST /v1/verify to also store the verdict (never the image) and get back a shareable link in the response's permalink field. Use it to cite a verdict to humans or in reports.","visibility":"Unlisted and never indexed; anyone with the link can view the verdict at /v/{id} (HTML) or /v/{id}.json (raw record).","lifetime":"Keyless links expire after 90 days; API-key links do not expire."},"errors":{"400":"No image provided, or the URL could not be fetched.","401":"Malformed or invalid API key.","402":"Out of monthly quota and prepaid credit. Top up at https://chronoverify.com/pricing.","413":"Image exceeds 25 MB or the pixel-dimension limit.","415":"Not a readable image, or unsupported format.","429":"Rate limited. Back off per Retry-After, or use a key.","503":"Temporarily busy. Retry after the Retry-After header."},"endpoints":{"verify":"POST https://chronoverify.com/v1/verify","free_key":"POST https://chronoverify.com/v1/keys/free","signed_report":"POST https://chronoverify.com/v1/report","signing_public_key":"GET https://chronoverify.com/v1/key","verify_response_schema":"GET https://chronoverify.com/v1/verify.schema.json","openapi":"GET https://chronoverify.com/openapi.json","mcp_hosted":"https://chronoverify.com/mcp/http (streamable HTTP, keyless, tool: verify_image)","mcp_discovery":"GET https://chronoverify.com/.well-known/mcp.json","mcp_local_stdio":"npx -y chronoverify-mcp (npm; adds key-gated get_signed_report)","docs_for_humans":"https://chronoverify.com/method","integrations":"https://chronoverify.com/integrations"},"privacy":"Images are processed for the check and not retained."}