@adcp/sdk API Reference - v7.9.0
    Preparing search index...

    Interface Artifact

    Content artifact for safety and suitability evaluation. An artifact represents content adjacent to an ad placement - a news article, podcast segment, video chapter, or social post. Artifacts are collections of assets (text, images, video, audio) plus metadata and signals.

    interface Artifact {
        property_rid: string;
        artifact_id: string;
        variant_id?: string;
        format_id?: FormatReferenceStructuredObject;
        url?: string;
        published_time?: string;
        last_update_time?: string;
        assets: (
            | {
                type: "text";
                role?: | "description"
                | "title"
                | "paragraph"
                | "heading"
                | "caption"
                | "quote"
                | "list_item";
                content: string;
                content_format?: | "text/plain"
                | "text/markdown"
                | "text/html"
                | "application/json";
                language?: string;
                heading_level?: number;
                provenance?: Provenance;
            }
            | {
                type: "image";
                url: string;
                access?: AssetAccess;
                alt_text?: string;
                caption?: string;
                width?: number;
                height?: number;
                provenance?: Provenance;
            }
            | {
                type: "video";
                url: string;
                access?: AssetAccess;
                duration_ms?: number;
                transcript?: string;
                transcript_format?: "text/plain"
                | "text/markdown"
                | "application/json";
                transcript_source?:
                    | "original_script"
                    | "subtitles"
                    | "closed_captions"
                    | "dub"
                    | "generated";
                thumbnail_url?: string;
                provenance?: Provenance;
            }
            | {
                type: "audio";
                url: string;
                access?: AssetAccess;
                duration_ms?: number;
                transcript?: string;
                transcript_format?: "text/plain"
                | "text/markdown"
                | "application/json";
                transcript_source?: "original_script" | "closed_captions" | "generated";
                provenance?: Provenance;
            }
        )[];
        metadata?: {
            canonical?: string;
            author?: string;
            keywords?: string;
            open_graph?: {};
            twitter_card?: {};
            json_ld?: {}[];
        };
        provenance?: Provenance;
        identifiers?: {
            apple_podcast_id?: string;
            spotify_collection_id?: string;
            podcast_guid?: string;
            youtube_video_id?: string;
            rss_url?: string;
        };
    }
    Index

    Properties

    property_rid: string

    Stable property identifier from the property catalog. Globally unique across the ecosystem.

    artifact_id: string

    Identifier for this artifact within the property. The property owner defines the scheme (e.g., 'article_12345', 'episode_42_segment_3', 'post_abc123').

    variant_id?: string

    Identifies a specific variant of this artifact. Use for A/B tests, translations, or temporal versions. Examples: 'en', 'es-MX', 'v2', 'headline_test_b'. The combination of artifact_id + variant_id must be unique.

    format_id?: FormatReferenceStructuredObject
    url?: string

    Optional URL for this artifact (web page, podcast feed, video page). Not all artifacts have URLs (e.g., Instagram content, podcast segments, TV scenes).

    published_time?: string

    When the artifact was published (ISO 8601 format)

    date-time

    last_update_time?: string

    When the artifact was last modified (ISO 8601 format)

    date-time

    assets: (
        | {
            type: "text";
            role?: | "description"
            | "title"
            | "paragraph"
            | "heading"
            | "caption"
            | "quote"
            | "list_item";
            content: string;
            content_format?: | "text/plain"
            | "text/markdown"
            | "text/html"
            | "application/json";
            language?: string;
            heading_level?: number;
            provenance?: Provenance;
        }
        | {
            type: "image";
            url: string;
            access?: AssetAccess;
            alt_text?: string;
            caption?: string;
            width?: number;
            height?: number;
            provenance?: Provenance;
        }
        | {
            type: "video";
            url: string;
            access?: AssetAccess;
            duration_ms?: number;
            transcript?: string;
            transcript_format?: "text/plain"
            | "text/markdown"
            | "application/json";
            transcript_source?:
                | "original_script"
                | "subtitles"
                | "closed_captions"
                | "dub"
                | "generated";
            thumbnail_url?: string;
            provenance?: Provenance;
        }
        | {
            type: "audio";
            url: string;
            access?: AssetAccess;
            duration_ms?: number;
            transcript?: string;
            transcript_format?: "text/plain"
            | "text/markdown"
            | "application/json";
            transcript_source?: "original_script" | "closed_captions" | "generated";
            provenance?: Provenance;
        }
    )[]

    Artifact assets in document flow order - text blocks, images, video, audio

    Type Declaration

    • {
          type: "text";
          role?:
              | "description"
              | "title"
              | "paragraph"
              | "heading"
              | "caption"
              | "quote"
              | "list_item";
          content: string;
          content_format?: | "text/plain"
          | "text/markdown"
          | "text/html"
          | "application/json";
          language?: string;
          heading_level?: number;
          provenance?: Provenance;
      }
      • type: "text"
      • Optionalrole?:
            | "description"
            | "title"
            | "paragraph"
            | "heading"
            | "caption"
            | "quote"
            | "list_item"

        Role of this text in the document. Use 'title' for the main artifact title, 'description' for summaries.

      • content: string

        Text content. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.

        100000

      • Optionalcontent_format?: "text/plain" | "text/markdown" | "text/html" | "application/json"

        MIME type indicating how to parse the content field. Default: text/plain.

      • Optionallanguage?: string

        BCP 47 language tag for this text (e.g., 'en', 'es-MX'). Useful when artifact contains mixed-language content.

      • Optionalheading_level?: number

        Heading level (1-6), only for role=heading

        1

        6

      • Optionalprovenance?: Provenance
    • {
          type: "image";
          url: string;
          access?: AssetAccess;
          alt_text?: string;
          caption?: string;
          width?: number;
          height?: number;
          provenance?: Provenance;
      }
      • type: "image"
      • url: string

        Image URL

      • Optionalaccess?: AssetAccess
      • Optionalalt_text?: string

        Alt text or image description

      • Optionalcaption?: string

        Image caption

      • Optionalwidth?: number

        Image width in pixels

      • Optionalheight?: number

        Image height in pixels

      • Optionalprovenance?: Provenance
    • {
          type: "video";
          url: string;
          access?: AssetAccess;
          duration_ms?: number;
          transcript?: string;
          transcript_format?: "text/plain" | "text/markdown" | "application/json";
          transcript_source?:
              | "original_script"
              | "subtitles"
              | "closed_captions"
              | "dub"
              | "generated";
          thumbnail_url?: string;
          provenance?: Provenance;
      }
      • type: "video"
      • url: string

        Video URL

      • Optionalaccess?: AssetAccess
      • Optionalduration_ms?: number

        Video duration in milliseconds

      • Optionaltranscript?: string

        Video transcript. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.

        200000

      • Optionaltranscript_format?: "text/plain" | "text/markdown" | "application/json"

        MIME type indicating how to parse the transcript field. Default: text/plain.

      • Optionaltranscript_source?: "original_script" | "subtitles" | "closed_captions" | "dub" | "generated"

        How the transcript was generated

      • Optionalthumbnail_url?: string

        Video thumbnail URL

      • Optionalprovenance?: Provenance
    • {
          type: "audio";
          url: string;
          access?: AssetAccess;
          duration_ms?: number;
          transcript?: string;
          transcript_format?: "text/plain" | "text/markdown" | "application/json";
          transcript_source?: "original_script" | "closed_captions" | "generated";
          provenance?: Provenance;
      }
      • type: "audio"
      • url: string

        Audio URL

      • Optionalaccess?: AssetAccess
      • Optionalduration_ms?: number

        Audio duration in milliseconds

      • Optionaltranscript?: string

        Audio transcript. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.

        200000

      • Optionaltranscript_format?: "text/plain" | "text/markdown" | "application/json"

        MIME type indicating how to parse the transcript field. Default: text/plain.

      • Optionaltranscript_source?: "original_script" | "closed_captions" | "generated"

        How the transcript was generated

      • Optionalprovenance?: Provenance
    metadata?: {
        canonical?: string;
        author?: string;
        keywords?: string;
        open_graph?: {};
        twitter_card?: {};
        json_ld?: {}[];
    }

    Rich metadata extracted from the artifact

    Type Declaration

    • Optionalcanonical?: string

      Canonical URL

    • Optionalauthor?: string

      Artifact author name

    • Optionalkeywords?: string

      Artifact keywords

    • Optionalopen_graph?: {}

      Open Graph protocol metadata

    • Optionaltwitter_card?: {}

      Twitter Card metadata

    • Optionaljson_ld?: {}[]

      JSON-LD structured data (schema.org)

    provenance?: Provenance
    identifiers?: {
        apple_podcast_id?: string;
        spotify_collection_id?: string;
        podcast_guid?: string;
        youtube_video_id?: string;
        rss_url?: string;
    }

    Platform-specific identifiers for this artifact

    Type Declaration

    • Optionalapple_podcast_id?: string

      Apple Podcasts ID

    • Optionalspotify_collection_id?: string

      Spotify collection ID

    • Optionalpodcast_guid?: string

      Podcast GUID (from RSS feed)

    • Optionalyoutube_video_id?: string

      YouTube video ID

    • Optionalrss_url?: string

      RSS feed URL