## Create content provenance check

`client.ContentProvenanceChecks.New(ctx, body) (*ContentProvenanceCheck, error)`

**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

- `body ContentProvenanceCheckNewParams`

  - `File param.Field[Reader]`

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

### Returns

- `type ContentProvenanceCheck struct{…}`

  - `CreatedAt int64`

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

  - `Object ContentProvenanceCheckObject`

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

    - `const ContentProvenanceCheckObjectContentProvenanceCheck ContentProvenanceCheckObject = "content_provenance_check"`

  - `Results []ContentProvenanceCheckResultUnion`

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

    - `type ContentProvenanceCheckResultC2PA struct{…}`

      - `GeneratedAt 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 string`

        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.

        - `const ContentProvenanceCheckResultC2PAOutcomeDetected ContentProvenanceCheckResultC2PAOutcome = "detected"`

        - `const ContentProvenanceCheckResultC2PAOutcomeNotDetected ContentProvenanceCheckResultC2PAOutcome = "not_detected"`

      - `Type C2PA`

        The provenance signal type. Always `c2pa`.

        - `const C2PAC2PA C2PA = "c2pa"`

      - `ValidationState string`

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

        - `const ContentProvenanceCheckResultC2PAValidationStateTrusted ContentProvenanceCheckResultC2PAValidationState = "trusted"`

        - `const ContentProvenanceCheckResultC2PAValidationStateValid ContentProvenanceCheckResultC2PAValidationState = "valid"`

        - `const ContentProvenanceCheckResultC2PAValidationStateInvalid ContentProvenanceCheckResultC2PAValidationState = "invalid"`

        - `const ContentProvenanceCheckResultC2PAValidationStateNotPresent ContentProvenanceCheckResultC2PAValidationState = "not_present"`

    - `type ContentProvenanceCheckResultSynthID struct{…}`

      - `GeneratedAt 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 string`

        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.

        - `const ContentProvenanceCheckResultSynthIDOutcomeDetected ContentProvenanceCheckResultSynthIDOutcome = "detected"`

        - `const ContentProvenanceCheckResultSynthIDOutcomeNotDetected ContentProvenanceCheckResultSynthIDOutcome = "not_detected"`

      - `Type SynthID`

        The provenance signal type. Always `synthid`.

        - `const SynthIDSynthID SynthID = "synthid"`

### Example

```go
package main

import (
  "bytes"
  "context"
  "fmt"
  "io"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  contentProvenanceCheck, err := client.ContentProvenanceChecks.New(context.TODO(), openai.ContentProvenanceCheckNewParams{
    File: io.Reader(bytes.NewBuffer([]byte("Example data"))),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", contentProvenanceCheck.CreatedAt)
}
```

#### 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"
    }
  ]
}
```
