c2pa: object { generated_at, issuer, model, 3 more }
generated_at: string

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

issuer: string

The C2PA manifest issuer, when available.

model: string

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.

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

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

model: string

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.