For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
기본 탐색 메뉴
Theme

콘텐츠 출처 확인

이미지와 오디오에서 콘텐츠 출처를 나타내는 신호를 확인하세요.

Content Provenance API를 사용하면 이미지나 오디오 파일에 API가 지원하는 OpenAI 출처 신호가 있는지 확인할 수 있습니다. POST /v1/content_provenance_checks로 파일을 보내면 해당 요청의 응답에서 검증 결과를 바로 받을 수 있습니다. 이 신호를 콘텐츠 검토, 팩트체크, 라벨 지정, 신뢰 및 안전 관련 워크플로우에 활용하세요.

브라우저에서 파일을 확인하려면 openai.com/verify의 웹 도구를 사용하세요.

요청 매개변수와 응답 스키마는 콘텐츠 출처 확인 API 레퍼런스를 참고하세요.

텍스트를 확인하려면 액세스 권한을 신청하세요. 현재 텍스트 검증은 AI 연구 기관과 학술 기관을 비롯해 승인을 받은 조직만 이용할 수 있습니다. OpenAI는 각 신청을 개별적으로 검토합니다.

not_detected는 도구가 업로드된 파일에서 지원하는 출처 신호를 찾지 못했다는 뜻입니다. 메타데이터가 제거되었거나 메타데이터에 변조 흔적이 있는 경우, 워터마크가 손상된 경우, 이전 세대의 생성 모델을 사용한 경우, 출처 신호가 도입되기 전에 만든 경우에는 OpenAI가 생성한 콘텐츠여도 신호가 검출되지 않을 수 있습니다. 현재 이 도구는 다른 회사의 AI 모델이 생성한 콘텐츠를 검출하지 않으므로 not_detected 결과만으로는 그 가능성도 배제할 수 없습니다.

콘텐츠 출처 확인 항목

지원되는 파일 형식에서 다음 출처 신호를 확인합니다.

신호 적용 대상 확인 항목
C2PA 콘텐츠 자격 증명 이미지 발급자와 AI 사용 내역이 담긴 서명된 메타데이터
SynthID 이미지 및 오디오 지원되는 미디어에 직접 삽입된 워터마크

C2PA 메타데이터는 파일의 출처를 더 자세히 알려 줍니다. 파일을 편집하거나 변환하거나 공유하는 과정에서 메타데이터가 제거될 수 있습니다. SynthID 워터마크는 이미지나 오디오 자체에 포함되므로 일부 변환을 거쳐도 남을 수 있습니다.

API는 지원하는 OpenAI 출처 신호를 확인합니다. 범용 AI 탐지기가 아니므로 모든 AI 시스템의 생성물을 식별할 수 있는 것은 아닙니다. 눈에 보이는 워터마크나 라벨은 API가 확인하는 출처 신호와 별개입니다.

파일 검증하기

OpenAI SDK를 사용해 이미지나 오디오 파일을 file 필드에 담아 보내세요. SDK는 멀티파트 요청을 구성하고 OPENAI_API_KEY 환경 변수에서 API 키를 읽습니다.

이미지 검증하기
import { createReadStream } from "node:fs";
import OpenAI, { toStreamingFile } from "openai";

const client = new OpenAI();

const result = await client.contentProvenanceChecks.create({
  file: toStreamingFile(createReadStream("myimage.png"), "myimage.png", {
    type: "image/png",
  }),
});

console.log(result);

OpenAI SDK는 언어별로 다음 버전 이상을 사용하세요. Python은 2.52.0, Go는 3.49.0, Ruby는 0.75.0입니다.

Opus 오디오를 검증할 때는 같은 엔드포인트를 사용하고 업로드할 파일의 미디어 유형을 audio/ogg로 설정하세요.

curl https://api.openai.com/v1/content_provenance_checks \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "file=@./example.opus;type=audio/ogg"

응답에는 최종 검증 결과가 포함됩니다. 다음은 이미지 파일의 응답 예시입니다.

{
  "object": "content_provenance_check",
  "created_at": 1778000000,
  "results": [
    {
      "type": "c2pa",
      "outcome": "detected",
      "validation_state": "trusted",
      "issuer": "OpenAI OpCo, LLC",
      "model": "gpt-image",
      "generated_at": "2026-07-27T18:34:12Z"
    },
    {
      "type": "synthid",
      "outcome": "not_detected",
      "model": null,
      "generated_at": null
    }
  ]
}

object 필드는 응답 유형을 나타내고, created_at은 검사가 생성된 시각을 초 단위 Unix 타임스탬프로 나타냅니다. results의 항목은 업로드한 파일에 따라 달라집니다. 이미지에는 C2PA와 SynthID 결과가, 오디오에는 SynthID 결과가 포함됩니다. 해당 파일에 적용되지 않는 검사는 not_detected를 반환하는 대신 응답에서 제외합니다.

API는 검증을 마친 후 응답합니다. 백그라운드 작업을 만들거나 다른 엔드포인트를 폴링하거나 Files API에 파일을 업로드할 필요가 없습니다.

요청이 실패하면 HTTP 상태 코드를 확인하고 error.code가 있으면 함께 확인하세요. API는 파일 구조가 잘못되었거나 파일이 지원되지 않거나 차단된 경우 400을 반환합니다. 조직에 액세스 권한이 없으면 404, 요청 한도를 초과하면 429를 반환합니다. 요청 한도 초과나 서버 오류처럼 일시적인 원인으로 실패한 경우에만 재시도하세요. 일반적인 지침은 API 오류 코드를 참고하세요.

검증 결과 해석하기

results에 포함된 각 항목을 개별적으로 해석하세요. 이미지 결과에는 C2PA와 SynthID 항목이, 오디오 결과에는 SynthID 항목이 포함됩니다. 응답 최상위에는 outcome 필드가 없습니다.

C2PA 결과

C2PA 결과는 이미지의 콘텐츠 자격 증명 상태를 나타냅니다.

{
  "type": "c2pa",
  "outcome": "detected",
  "validation_state": "trusted",
  "issuer": "OpenAI OpCo, LLC",
  "model": "gpt-image",
  "generated_at": "2026-07-27T18:34:12Z"
}

각 필드는 다음과 같이 해석하세요.

  • outcome은 OpenAI가 발급한 AI 생성 자격 증명의 검출 여부를 detected 또는 not_detected로 나타냅니다.
  • validation_state는 매니페스트의 검증 상태를 trusted, valid, invalid 또는 not_present로 나타냅니다.
  • issuer는 발급자 정보가 있을 때 매니페스트를 발급한 주체를 나타냅니다.
  • model은 모델 정보가 있을 때 콘텐츠를 생성한 모델을 나타냅니다.
  • generated_at은 생성 시각 정보가 있을 때 콘텐츠를 생성한 시각을 나타냅니다.

결과가 detected가 되려면 trusted 또는 valid 상태의 매니페스트에 OpenAI가 발급자로 명시되어 있고 AI 생성 작업이 기록되어 있어야 합니다. 제3자가 발급한 매니페스트이거나 AI 생성 작업이 기록되어 있지 않거나 상태가 invalid 또는 not_present이면 결과는 not_detected입니다. issuer와 validation_state는 결과가 not_detected인 경우에도 매니페스트에 관한 정보를 제공할 수 있습니다.

invalid 상태의 매니페스트에 근거해 이미지의 출처를 판단하지 마세요. not_present는 이미지에서 확인할 수 있는 C2PA 매니페스트가 없다는 뜻입니다.

SynthID 결과

SynthID 결과는 검증 도구가 이미지나 오디오 파일에서 지원하는 워터마크를 검출했는지 나타냅니다.

{
  "type": "synthid",
  "outcome": "detected",
  "model": null,
  "generated_at": null
}

detected는 파일에 검증 도구가 인식하는 워터마크가 있다는 뜻입니다. not_detected는 검증 도구가 해당 워터마크를 검출하지 못했다는 뜻입니다. AI가 콘텐츠를 생성하거나 수정했을 가능성은 여전히 있습니다. model과 generated_at은 관련 정보가 있을 때 각각 콘텐츠를 생성한 모델과 생성 시각을 나타냅니다. 각 필드의 값은 null일 수 있습니다.

업로드할 수 있는 파일

API는 기본적으로 다음 파일 형식을 지원합니다.

  • 이미지: PNG, JPEG, WebP, GIF
  • 오디오: MP3, Opus, AAC, FLAC, WAV, PCM

업로드할 파일의 크기는 개당 50 MiB 이하여야 합니다. 오디오는 디코딩 후 길이가 60초 이하여야 합니다.

업로드할 file 파트의 미디어 유형을 설정하세요. GIF에는 image/gif, PNG 이미지에는 image/png, Opus 오디오에는 audio/ogg를 사용하세요. 별도의 type 필드를 추가하거나 multipart/form-data 요청 헤더를 직접 설정하지 마세요. curl의 -F 옵션이 요청의 콘텐츠 유형과 멀티파트 경계 문자열을 설정합니다. 요청당 파일 하나를 보내세요.

요청 한도

API 오용을 방지하기 위해 엄격한 요청 한도를 적용합니다. 조직은 요청 한도 상향을 신청할 수 있으며, OpenAI는 각 신청을 개별적으로 검토합니다.

API가 429 rate_limit_exceeded를 반환하면 요청 빈도를 줄이고 Retry-After 헤더가 있으면 헤더가 지정한 시점까지 기다린 후 재시도하세요. 일반적인 재시도 지침은 요청 한도를 참고하세요.

검증 결과를 책임 있게 활용하기

검증 결과는 전체 검토 과정에서 여러 근거 중 하나로 활용하세요.

  • detected는 지원되는 특정 신호가 있다는 근거입니다. 이 결과만으로 파일의 전체 이력을 알 수는 없습니다.
  • not_detected는 출처를 뒷받침할 신호를 검출하지 못했다는 뜻입니다. 사람이 만든 콘텐츠라거나 OpenAI로 생성하지 않았다는 증거로 해석하지 마세요.
  • 특정 제공업체가 이미지를 생성했다고 판단하기 전에 C2PA 자격 증명의 발급자를 확인하세요.
  • 가능하면 원본 파일을 검증하세요. 압축, 자르기, 화면 캡처, 메타데이터 제거, 형식 변환으로 신호가 사라지거나 약해질 수 있습니다.
  • 콘텐츠를 생성한 제품과 모델, 파일 형식, 생성 날짜를 고려하세요. OpenAI가 생성한 모든 콘텐츠에 지원되는 신호가 포함되는 것은 아닙니다.
  • 결정의 파급력이 큰 워크플로우에서는 자동화된 판단에 사람의 검토를 병행하세요.
  • 워터마크를 역설계하거나 제거하거나 탐지를 회피하기 위해 반복적으로 요청을 보내지 마세요.
  • 검증 결과로 프롬프트나 계정을 추정하거나 제작자가 누구인지 추론하지 마세요.

Content Provenance API 사용에는 OpenAI 서비스 계약이 적용됩니다.

플랫폼 전반의 모니터링 및 데이터 보관 설정에 관한 내용은 데이터 제어를 참고하세요.