SpyBara
Go Premium

resources/content_provenance_checks/methods/create/index.md 2026-07-30 23:58 UTC to 2026-07-31 21:03 UTC

119 added, 0 removed.

2026
Fri 31 21:03 Thu 30 23:58 Wed 29 15:02 Sat 25 05:59 Thu 23 18:00 Wed 22 20:02 Mon 20 20:00 Fri 17 17:00 Thu 16 20:57 Wed 15 02:58 Tue 14 06:58 Mon 13 15:59 Sun 12 06:58 Fri 10 23:02 Thu 9 20:58 Tue 7 08:02

Create content provenance check

post /content_provenance_checks

Check whether an image or audio file contains known OpenAI provenance signals. Learn more about content provenance.

If not_detected, it means the tool did not find supported signals in the uploaded file. The content could still have been generated by OpenAI if the metadata was stripped or has evidence of tampering, the watermark was degraded, it comes from a legacy generation model, or it was created before provenance signals were available. Content could also still be AI-generated by another company's model, which the tool currently does not detect.

Returns

  • ContentProvenanceCheck object { created_at, object, results }

    • created_at: number

      The Unix timestamp, in seconds, when the provenance check was created.

    • object: "content_provenance_check"

      The object type. Always content_provenance_check for this endpoint.

      • "content_provenance_check"
    • results: array of object { generated_at, issuer, model, 3 more } or object { generated_at, model, outcome, type }

      The provenance results that apply to the uploaded file. Image results include C2PA and SynthID; audio results include SynthID.

      • C2PA object { generated_at, issuer, model, 3 more }

        • generated_at: string or null

          The UTC RFC 3339 timestamp recorded by the provenance signal for when the asset was generated, when available.

        • issuer: string or null

          The C2PA manifest issuer, when available.

        • model: string or null

          The OpenAI model recorded by the provenance signal, when available.

        • outcome: "detected" or "not_detected"

          Whether a supported OpenAI C2PA provenance signal was detected. If not_detected, it means the tool did not find supported signals in the uploaded file. The content could still have been generated by OpenAI if the metadata was stripped or has evidence of tampering, the watermark was degraded, it comes from a legacy generation model, or it was created before provenance signals were available. Content could also still be AI-generated by another company's model, which the tool currently does not detect.

          • "detected"

          • "not_detected"

        • type: "c2pa"

          The provenance signal type. Always c2pa.

          • "c2pa"
        • validation_state: "trusted" or "valid" or "invalid" or "not_present"

          The validation status of the C2PA manifest in the uploaded image.

          • "trusted"

          • "valid"

          • "invalid"

          • "not_present"

      • SynthID object { generated_at, model, outcome, type }

        • generated_at: string or null

          The UTC RFC 3339 timestamp recorded by the provenance signal for when the asset was generated, when available.

        • model: string or null

          The OpenAI model recorded by the provenance signal, when available.

        • outcome: "detected" or "not_detected"

          Whether a supported OpenAI SynthID watermark was detected. If not_detected, it means the tool did not find supported signals in the uploaded file. The content could still have been generated by OpenAI if the metadata was stripped or has evidence of tampering, the watermark was degraded, it comes from a legacy generation model, or it was created before provenance signals were available. Content could also still be AI-generated by another company's model, which the tool currently does not detect.

          • "detected"

          • "not_detected"

        • type: "synthid"

          The provenance signal type. Always synthid.

          • "synthid"

Example

curl https://api.openai.com/v1/content_provenance_checks \
    -H 'Content-Type: multipart/form-data' \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -F 'file=@/path/to/file'

Response

{
  "created_at": 0,
  "object": "content_provenance_check",
  "results": [
    {
      "generated_at": "generated_at",
      "issuer": "issuer",
      "model": "model",
      "outcome": "detected",
      "type": "c2pa",
      "validation_state": "trusted"
    }
  ]
}