{"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.","conformance":{"program":"C2PA Conformance Program","status":"conformant","record_id":"019f8a20-6452-7a43-b11b-59d0b0e4a84a","product_type":"validatorProduct","spec_version":"2.2","conformance_program_version":"0.1","validates":["image/jpeg","image/png","image/webp","image/avif"],"generates":[],"public_record":"https://spec.c2pa.org/conformance-explorer/","public_record_source":"https://github.com/c2pa-org/conformance-public/blob/main/conforming-products/conforming-products-list.json","public_record_raw_json":"https://raw.githubusercontent.com/c2pa-org/conformance-public/main/conforming-products/conforming-products-list.json","note":"Listed as a conformant validator product. The C2PA operates a conformance program and does not certify: this is not a certification, an audit, or an endorsement, and it covers validation of the four image types above and nothing else."},"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 prepaid balance first at $0.003 an image, falling back to its 100 free verifications a month when the balance runs short, with its own rate limit instead of the shared per-IP limit. A monthly subscription spends its included quota first instead."},"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,"scale_monthly":{"price":299,"verifications":200000,"note":"Signed, timestamped PDF reports are drawn from the same included monthly quota."},"signed_pdf_report":{"price":2.0,"endpoint":"POST https://chronoverify.com/v1/report","note":"Requires a paid key (any credit top-up or plan); not included with a free key. On pay as you go it draws $2.00 from the prepaid balance from the first report, because a key's free monthly allotment covers verifications only. On a monthly subscription it counts against the plan's included quota instead."},"single_signed_report_no_key":{"price":49.0,"note":"The same signed PDF for one photo with no account, no key, and no integration: a human uploads the photo to the free verifier at https://chronoverify.com/ and buys at the verdict screen. The browser must hold the file across checkout, so this path cannot be completed by an API call. Sample report: https://chronoverify.com/static/sample-signed-report.pdf"},"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","contact":"POST https://chronoverify.com/v1/contact (no auth; JSON or form fields: message required, email and name optional; a left email gets the reply)","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","pricing":"https://chronoverify.com/pricing"},"privacy":"Images are processed for the check and not retained."}