# Content Provenance Checks

## Create content provenance check

`ContentProvenanceCheck contentProvenanceChecks().create(ContentProvenanceCheckCreateParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**post** `/content_provenance_checks`

Check whether an image or audio file contains known OpenAI provenance signals. [Learn more about content provenance](/api/docs/guides/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.

### Parameters

- `ContentProvenanceCheckCreateParams params`

  - `String file`

    The image or audio file to check for supported OpenAI provenance signals.

### Returns

- `class ContentProvenanceCheck:`

  - `long createdAt`

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

  - `Object object_`

    The object type. Always `content_provenance_check` for this endpoint.

    - `CONTENT_PROVENANCE_CHECK("content_provenance_check")`

  - `List<Result> results`

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

    - `class C2pa:`

      - `Optional<String> generatedAt`

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

      - `Optional<String> issuer`

        The C2PA manifest issuer, when available.

      - `Optional<String> model`

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

      - `Outcome outcome`

        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("detected")`

        - `NOT_DETECTED("not_detected")`

      - `JsonValue; type "c2pa"constant`

        The provenance signal type. Always `c2pa`.

        - `C2PA("c2pa")`

      - `ValidationState validationState`

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

        - `TRUSTED("trusted")`

        - `VALID("valid")`

        - `INVALID("invalid")`

        - `NOT_PRESENT("not_present")`

    - `class SynthID:`

      - `Optional<String> generatedAt`

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

      - `Optional<String> model`

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

      - `Outcome outcome`

        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("detected")`

        - `NOT_DETECTED("not_detected")`

      - `JsonValue; type "synthid"constant`

        The provenance signal type. Always `synthid`.

        - `SYNTHID("synthid")`

### Example

```java
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.contentprovenancechecks.ContentProvenanceCheck;
import com.openai.models.contentprovenancechecks.ContentProvenanceCheckCreateParams;
import java.io.ByteArrayInputStream;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        ContentProvenanceCheckCreateParams params = ContentProvenanceCheckCreateParams.builder()
            .file(new ByteArrayInputStream("Example data".getBytes()))
            .build();
        ContentProvenanceCheck contentProvenanceCheck = client.contentProvenanceChecks().create(params);
    }
}
```

#### Response

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

## Domain Types

### Content Provenance Check

- `class ContentProvenanceCheck:`

  - `long createdAt`

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

  - `Object object_`

    The object type. Always `content_provenance_check` for this endpoint.

    - `CONTENT_PROVENANCE_CHECK("content_provenance_check")`

  - `List<Result> results`

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

    - `class C2pa:`

      - `Optional<String> generatedAt`

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

      - `Optional<String> issuer`

        The C2PA manifest issuer, when available.

      - `Optional<String> model`

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

      - `Outcome outcome`

        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("detected")`

        - `NOT_DETECTED("not_detected")`

      - `JsonValue; type "c2pa"constant`

        The provenance signal type. Always `c2pa`.

        - `C2PA("c2pa")`

      - `ValidationState validationState`

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

        - `TRUSTED("trusted")`

        - `VALID("valid")`

        - `INVALID("invalid")`

        - `NOT_PRESENT("not_present")`

    - `class SynthID:`

      - `Optional<String> generatedAt`

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

      - `Optional<String> model`

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

      - `Outcome outcome`

        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("detected")`

        - `NOT_DETECTED("not_detected")`

      - `JsonValue; type "synthid"constant`

        The provenance signal type. Always `synthid`.

        - `SYNTHID("synthid")`
