@adcp/sdk API Reference - v14.0.0-beta.6
    Preparing search index...

    Type Alias RequestProposalsResponse

    RequestProposalsResponse:
        | {
            adcp_version?: string;
            outcome: "proposed";
            reason?: never;
            suggestions?: never;
            proposals: [
                CanonicalProposal & { proposal_status: "draft"; expires_at: string },
                ...(CanonicalProposal & { proposal_status: "draft"; expires_at: string })[],
            ];
            products: [CanonicalProduct, ...CanonicalProduct[]];
            incomplete?: [
                {
                    scope: | "products"
                    | "pricing"
                    | "forecast"
                    | "proposals"
                    | "wholesale_feed";
                    description: string;
                    estimated_wait?: Duration;
                },
                ...{
                    scope: | "products"
                    | "pricing"
                    | "forecast"
                    | "proposals"
                    | "wholesale_feed";
                    description: string;
                    estimated_wait?: Duration;
                }[],
            ];
            purchase_continuation?: never;
            targeting_resolution?: ProductDiscoveryTargetingResolution;
            status?: "completed";
            task_id?: never;
            message?: string;
            errors?: TaskErrorDetail[];
            context?: ContextObject;
            ext?: ExtensionObject;
            replayed?: true;
        }
        | {
            adcp_version?: string;
            outcome: "products_available";
            reason?: never;
            suggestions?: never;
            proposals?: never;
            products: [CanonicalProduct, ...CanonicalProduct[]];
            incomplete?: [
                {
                    scope: | "products"
                    | "pricing"
                    | "forecast"
                    | "proposals"
                    | "wholesale_feed";
                    description: string;
                    estimated_wait?: Duration;
                },
                ...{
                    scope: | "products"
                    | "pricing"
                    | "forecast"
                    | "proposals"
                    | "wholesale_feed";
                    description: string;
                    estimated_wait?: Duration;
                }[],
            ];
            purchase_continuation: | {
                kind: "listed_purchase";
                product_ids: [string, ...string[]];
                cache_scope: "account";
                feed_version: string;
                pricing_version?: string;
            }
            | {
                kind: "legacy_create";
                continuation_token: string;
                continuation_expires_at: string;
                source_adcp_version: "2.5"
                | "3.0"
                | "3.1";
                product_ids: [string, ...string[]];
                losses: [
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    ...(
                        | "feed_version_not_atomic"
                        | "pricing_version_not_atomic"
                        | "mutation_idempotency_not_guaranteed"
                    )[],
                ];
                requires_explicit_acceptance: true;
            };
            targeting_resolution?: ProductDiscoveryTargetingResolution;
            status?: "completed";
            task_id?: never;
            message?: string;
            errors?: TaskErrorDetail[];
            context?: ContextObject;
            ext?: ExtensionObject;
            replayed?: true;
        }
        | {
            adcp_version?: string;
            outcome: "rejected";
            reason: string;
            suggestions?: [string, ...string[]];
            proposals?: never;
            products?: never;
            incomplete?: never;
            purchase_continuation?: never;
            targeting_resolution?: ProductDiscoveryTargetingResolution;
            status?: "completed";
            task_id?: never;
            message?: string;
            errors?: TaskErrorDetail[];
            context?: ContextObject;
            ext?: ExtensionObject;
            replayed?: true;
        }
        | {
            adcp_version?: string;
            outcome?: "proposed"
            | "products_available"
            | "rejected";
            reason?: string;
            suggestions?: [string, ...string[]];
            proposals?: [
                CanonicalProposal & { proposal_status: "draft"; expires_at: string },
                ...(CanonicalProposal & { proposal_status: "draft"; expires_at: string })[],
            ];
            products?: [CanonicalProduct, ...CanonicalProduct[]];
            incomplete?: [
                {
                    scope: | "products"
                    | "pricing"
                    | "forecast"
                    | "proposals"
                    | "wholesale_feed";
                    description: string;
                    estimated_wait?: Duration;
                },
                ...{
                    scope: | "products"
                    | "pricing"
                    | "forecast"
                    | "proposals"
                    | "wholesale_feed";
                    description: string;
                    estimated_wait?: Duration;
                }[],
            ];
            purchase_continuation?: | {
                kind: "listed_purchase";
                product_ids: [string, ...string[]];
                cache_scope: "account";
                feed_version: string;
                pricing_version?: string;
            }
            | {
                kind: "legacy_create";
                continuation_token: string;
                continuation_expires_at: string;
                source_adcp_version: "2.5"
                | "3.0"
                | "3.1";
                product_ids: [string, ...string[]];
                losses: [
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    ...(
                        | "feed_version_not_atomic"
                        | "pricing_version_not_atomic"
                        | "mutation_idempotency_not_guaranteed"
                    )[],
                ];
                requires_explicit_acceptance: true;
            };
            targeting_resolution?: ProductDiscoveryTargetingResolution;
            status: "submitted";
            task_id: string;
            message?: string;
            errors?: TaskErrorDetail[];
            context?: ContextObject;
            ext?: ExtensionObject;
            replayed?: true;
        }

    One or more immutable draft media-plan proposals and compact canonical products referenced by their purchases. Products always carry product_id and name and never carry legacy named-format identifiers. During the AdCP 3.x compatibility window, an SDK projecting a valid products-only get_products brief result may instead return the deprecated products_available outcome with an explicit purchase continuation. Native 3.2 sellers MUST NOT use that compatibility outcome, and adapters MUST NOT fabricate a proposal, terms digest, or feed version.

    Type Declaration

    • {
          adcp_version?: string;
          outcome: "proposed";
          reason?: never;
          suggestions?: never;
          proposals: [
              CanonicalProposal & { proposal_status: "draft"; expires_at: string },
              ...(CanonicalProposal & { proposal_status: "draft"; expires_at: string })[],
          ];
          products: [CanonicalProduct, ...CanonicalProduct[]];
          incomplete?: [
              {
                  scope: | "products"
                  | "pricing"
                  | "forecast"
                  | "proposals"
                  | "wholesale_feed";
                  description: string;
                  estimated_wait?: Duration;
              },
              ...{
                  scope: | "products"
                  | "pricing"
                  | "forecast"
                  | "proposals"
                  | "wholesale_feed";
                  description: string;
                  estimated_wait?: Duration;
              }[],
          ];
          purchase_continuation?: never;
          targeting_resolution?: ProductDiscoveryTargetingResolution;
          status?: "completed";
          task_id?: never;
          message?: string;
          errors?: TaskErrorDetail[];
          context?: ContextObject;
          ext?: ExtensionObject;
          replayed?: true;
      }
      • Optionaladcp_version?: string

        Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

      • outcome: "proposed"
      • Optionalreason?: never
      • Optionalsuggestions?: never
      • proposals: [
            CanonicalProposal & { proposal_status: "draft"; expires_at: string },
            ...(CanonicalProposal & { proposal_status: "draft"; expires_at: string })[],
        ]

        1

      • products: [CanonicalProduct, ...CanonicalProduct[]]

        1

      • Optionalincomplete?: [
            {
                scope: | "products"
                | "pricing"
                | "forecast"
                | "proposals"
                | "wholesale_feed";
                description: string;
                estimated_wait?: Duration;
            },
            ...{
                scope: | "products"
                | "pricing"
                | "forecast"
                | "proposals"
                | "wholesale_feed";
                description: string;
                estimated_wait?: Duration;
            }[],
        ]

        Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.

        1

      • Optionalpurchase_continuation?: never
      • Optionaltargeting_resolution?: ProductDiscoveryTargetingResolution
      • Optionalstatus?: "completed"
      • Optionaltask_id?: never
      • Optionalmessage?: string

        2000

      • Optionalerrors?: TaskErrorDetail[]
      • Optionalcontext?: ContextObject
      • Optionalext?: ExtensionObject
      • Optionalreplayed?: true
    • {
          adcp_version?: string;
          outcome: "products_available";
          reason?: never;
          suggestions?: never;
          proposals?: never;
          products: [CanonicalProduct, ...CanonicalProduct[]];
          incomplete?: [
              {
                  scope: | "products"
                  | "pricing"
                  | "forecast"
                  | "proposals"
                  | "wholesale_feed";
                  description: string;
                  estimated_wait?: Duration;
              },
              ...{
                  scope: | "products"
                  | "pricing"
                  | "forecast"
                  | "proposals"
                  | "wholesale_feed";
                  description: string;
                  estimated_wait?: Duration;
              }[],
          ];
          purchase_continuation: | {
              kind: "listed_purchase";
              product_ids: [string, ...string[]];
              cache_scope: "account";
              feed_version: string;
              pricing_version?: string;
          }
          | {
              kind: "legacy_create";
              continuation_token: string;
              continuation_expires_at: string;
              source_adcp_version: "2.5"
              | "3.0"
              | "3.1";
              product_ids: [string, ...string[]];
              losses: [
                  | "feed_version_not_atomic"
                  | "pricing_version_not_atomic"
                  | "mutation_idempotency_not_guaranteed",
                  | "feed_version_not_atomic"
                  | "pricing_version_not_atomic"
                  | "mutation_idempotency_not_guaranteed",
                  ...(
                      | "feed_version_not_atomic"
                      | "pricing_version_not_atomic"
                      | "mutation_idempotency_not_guaranteed"
                  )[],
              ];
              requires_explicit_acceptance: true;
          };
          targeting_resolution?: ProductDiscoveryTargetingResolution;
          status?: "completed";
          task_id?: never;
          message?: string;
          errors?: TaskErrorDetail[];
          context?: ContextObject;
          ext?: ExtensionObject;
          replayed?: true;
      }
      • Optionaladcp_version?: string

        Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

      • outcome: "products_available"
      • Optionalreason?: never
      • Optionalsuggestions?: never
      • Optionalproposals?: never
      • products: [CanonicalProduct, ...CanonicalProduct[]]

        1

      • Optionalincomplete?: [
            {
                scope: | "products"
                | "pricing"
                | "forecast"
                | "proposals"
                | "wholesale_feed";
                description: string;
                estimated_wait?: Duration;
            },
            ...{
                scope: | "products"
                | "pricing"
                | "forecast"
                | "proposals"
                | "wholesale_feed";
                description: string;
                estimated_wait?: Duration;
            }[],
        ]

        Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.

        1

      • purchase_continuation:
            | {
                kind: "listed_purchase";
                product_ids: [string, ...string[]];
                cache_scope: "account";
                feed_version: string;
                pricing_version?: string;
            }
            | {
                kind: "legacy_create";
                continuation_token: string;
                continuation_expires_at: string;
                source_adcp_version: "2.5"
                | "3.0"
                | "3.1";
                product_ids: [string, ...string[]];
                losses: [
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    ...(
                        | "feed_version_not_atomic"
                        | "pricing_version_not_atomic"
                        | "mutation_idempotency_not_guaranteed"
                    )[],
                ];
                requires_explicit_acceptance: true;
            }

        Deprecated AdCP 3.x projection instruction for purchasing products returned without a proposal. This is coordinator state, not a claim that the established seller implements a compact task. A native 3.2 seller MUST NOT emit it.

      • Optionaltargeting_resolution?: ProductDiscoveryTargetingResolution
      • Optionalstatus?: "completed"
      • Optionaltask_id?: never
      • Optionalmessage?: string

        2000

      • Optionalerrors?: TaskErrorDetail[]
      • Optionalcontext?: ContextObject
      • Optionalext?: ExtensionObject
      • Optionalreplayed?: true
    • {
          adcp_version?: string;
          outcome: "rejected";
          reason: string;
          suggestions?: [string, ...string[]];
          proposals?: never;
          products?: never;
          incomplete?: never;
          purchase_continuation?: never;
          targeting_resolution?: ProductDiscoveryTargetingResolution;
          status?: "completed";
          task_id?: never;
          message?: string;
          errors?: TaskErrorDetail[];
          context?: ContextObject;
          ext?: ExtensionObject;
          replayed?: true;
      }
      • Optionaladcp_version?: string

        Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

      • outcome: "rejected"
      • reason: string

        1

      • Optionalsuggestions?: [string, ...string[]]

        1

      • Optionalproposals?: never
      • Optionalproducts?: never
      • Optionalincomplete?: never
      • Optionalpurchase_continuation?: never
      • Optionaltargeting_resolution?: ProductDiscoveryTargetingResolution
      • Optionalstatus?: "completed"
      • Optionaltask_id?: never
      • Optionalmessage?: string

        2000

      • Optionalerrors?: TaskErrorDetail[]
      • Optionalcontext?: ContextObject
      • Optionalext?: ExtensionObject
      • Optionalreplayed?: true
    • {
          adcp_version?: string;
          outcome?: "proposed" | "products_available" | "rejected";
          reason?: string;
          suggestions?: [string, ...string[]];
          proposals?: [
              CanonicalProposal & { proposal_status: "draft"; expires_at: string },
              ...(CanonicalProposal & { proposal_status: "draft"; expires_at: string })[],
          ];
          products?: [CanonicalProduct, ...CanonicalProduct[]];
          incomplete?: [
              {
                  scope: | "products"
                  | "pricing"
                  | "forecast"
                  | "proposals"
                  | "wholesale_feed";
                  description: string;
                  estimated_wait?: Duration;
              },
              ...{
                  scope: | "products"
                  | "pricing"
                  | "forecast"
                  | "proposals"
                  | "wholesale_feed";
                  description: string;
                  estimated_wait?: Duration;
              }[],
          ];
          purchase_continuation?: | {
              kind: "listed_purchase";
              product_ids: [string, ...string[]];
              cache_scope: "account";
              feed_version: string;
              pricing_version?: string;
          }
          | {
              kind: "legacy_create";
              continuation_token: string;
              continuation_expires_at: string;
              source_adcp_version: "2.5"
              | "3.0"
              | "3.1";
              product_ids: [string, ...string[]];
              losses: [
                  | "feed_version_not_atomic"
                  | "pricing_version_not_atomic"
                  | "mutation_idempotency_not_guaranteed",
                  | "feed_version_not_atomic"
                  | "pricing_version_not_atomic"
                  | "mutation_idempotency_not_guaranteed",
                  ...(
                      | "feed_version_not_atomic"
                      | "pricing_version_not_atomic"
                      | "mutation_idempotency_not_guaranteed"
                  )[],
              ];
              requires_explicit_acceptance: true;
          };
          targeting_resolution?: ProductDiscoveryTargetingResolution;
          status: "submitted";
          task_id: string;
          message?: string;
          errors?: TaskErrorDetail[];
          context?: ContextObject;
          ext?: ExtensionObject;
          replayed?: true;
      }
      • Optionaladcp_version?: string

        Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

      • Optionaloutcome?: "proposed" | "products_available" | "rejected"
      • Optionalreason?: string

        1

      • Optionalsuggestions?: [string, ...string[]]

        1

      • Optionalproposals?: [
            CanonicalProposal & { proposal_status: "draft"; expires_at: string },
            ...(CanonicalProposal & { proposal_status: "draft"; expires_at: string })[],
        ]

        1

      • Optionalproducts?: [CanonicalProduct, ...CanonicalProduct[]]

        1

      • Optionalincomplete?: [
            {
                scope: | "products"
                | "pricing"
                | "forecast"
                | "proposals"
                | "wholesale_feed";
                description: string;
                estimated_wait?: Duration;
            },
            ...{
                scope: | "products"
                | "pricing"
                | "forecast"
                | "proposals"
                | "wholesale_feed";
                description: string;
                estimated_wait?: Duration;
            }[],
        ]

        Usable partial discovery result retained from the established get_products response. Absence means the source response did not declare an incomplete scope; it does not authorize an adapter to infer missing proposal terms.

        1

      • Optionalpurchase_continuation?:
            | {
                kind: "listed_purchase";
                product_ids: [string, ...string[]];
                cache_scope: "account";
                feed_version: string;
                pricing_version?: string;
            }
            | {
                kind: "legacy_create";
                continuation_token: string;
                continuation_expires_at: string;
                source_adcp_version: "2.5"
                | "3.0"
                | "3.1";
                product_ids: [string, ...string[]];
                losses: [
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    | "feed_version_not_atomic"
                    | "pricing_version_not_atomic"
                    | "mutation_idempotency_not_guaranteed",
                    ...(
                        | "feed_version_not_atomic"
                        | "pricing_version_not_atomic"
                        | "mutation_idempotency_not_guaranteed"
                    )[],
                ];
                requires_explicit_acceptance: true;
            }

        Deprecated AdCP 3.x projection instruction for purchasing products returned without a proposal. This is coordinator state, not a claim that the established seller implements a compact task. A native 3.2 seller MUST NOT emit it.

      • Optionaltargeting_resolution?: ProductDiscoveryTargetingResolution
      • status: "submitted"
      • task_id: string

        1

      • Optionalmessage?: string

        2000

      • Optionalerrors?: TaskErrorDetail[]
      • Optionalcontext?: ContextObject
      • Optionalext?: ExtensionObject
      • Optionalreplayed?: true