{ "opencollection": "1.0.0", "info": { "name": "VideoAmp Public Inventories API", "version": "2026-07-31" }, "request": { "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://login.videoamp.com/authorize", "accessTokenUrl": "https://login.videoamp.com/oauth/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "items": [ { "info": { "name": "inventories", "type": "folder" }, "items": [ { "info": { "name": "List Inventories", "type": "http" }, "http": { "method": "GET", "url": "https://api.videoamp.dev/v1beta/inventories", "params": [ { "name": "orderBy", "value": "", "type": "query", "description": "This field specifies how to order the list results. If no value is provided, the results will be sorted by created_at descending order. Specify the order by providing a comma separated list of 'field_name direction' strings. Omitted direction defaults to asc. Example: 'created_at desc, display_name' Accepted Values: - 'currency_of_record' - 'display_name' - 'created_at' Accepted Sort: - 'desc' - 'asc'" }, { "name": "pageSize", "value": "", "type": "query", "description": "Query param pageSize specifies the number of results to include in a page of results. Defaults to 100 when omitted. Maximum value is 1000." }, { "name": "pageToken", "value": "", "type": "query", "description": "Query param 'pageToken' specifies the value of the next page to retrieve within a paginated set of results. Valid values can be found in paginated responses that include field 'next_page_token'. When requesting the next page, additional query parameters should NOT change between page requests." } ] }, "docs": "Returns a paginated list of inventory sets accessible to the caller.\n\n**Why**: Discover available inventory sets before creating campaigns or plans. Each inventory set defines the media universe (titles and placements) available for optimization.\n\n**When**: Call when building an inventory picker UI, searching for a specific inventory set by name, or discovering what inventory sets are available in your organization.\n\n**How**: All parameters are optional. Sort with `orderBy` (defaults to `created" }, { "info": { "name": "Get Inventory", "type": "http" }, "http": { "method": "GET", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set to retrieve. Returns 404 if the inventory does not exist or is not accessible to the caller." } ] }, "docs": "Returns the complete inventory set definition including all titles and dimension configuration.\n\n**Why**: Retrieve the full inventory set to inspect available titles, their custom parameters, and environment assignments. Required before creating plans to understand what media universe is available.\n\n**When**: Call when you need the full title list for a known inventory set — for example, to build rate card overrides or validate constraint title_filters. Use LIST for discovery, GET for full detai" }, { "info": { "name": "Update Inventory Dimension Names", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set to update." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates the dimension name labels for an inventory set's custom parameters.\n\n**Why**: Rename dimension labels to align with how your team describes the inventory (e.g., relabel CUSTOM_PARAM_1 as NETWORK).\n\n**When**: After initial inventory ingestion, before sharing the inventory set with downstream consumers.\n\n**How**: PATCH with the new `dimension_names` array. Existing labels are replaced entirely." }, { "info": { "name": "List Rate Cards", "type": "http" }, "http": { "method": "GET", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/rateCards", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set to list rate cards for." }, { "name": "advertiserId", "value": "", "type": "query", "description": "Filter by advertiser UUID. If not provided, only organization-level rate cards are returned." }, { "name": "orderBy", "value": "", "type": "query", "description": "Specify the order and direction of the list with values separated by commas. Omitted direction defaults to asc. Example: 'created_at desc' Accepted Values: - 'display_name' - 'created_at' - 'created_by' - 'updated_at' - 'updated_by' Accepted Sort: - 'desc' - 'asc'" }, { "name": "pageSize", "value": "", "type": "query", "description": "Query param pageSize specifies the number of results to include in a page of results." }, { "name": "pageToken", "value": "", "type": "query", "description": "Query param 'pageToken' specifies the value of the next page to retrieve within a paginated set of results. Valid values can be found in paginated responses that include field 'next_page_token'. When requesting the next page, additional query parameters should NOT change between page requests." } ] }, "docs": "Returns a paginated list of rate cards for an inventory set.\n\n**Why**: Discover available rate cards before creating a plan. Plans reference rate cards by ID to provide default rates for optimization.\n\n**When**: Call when building a rate card picker UI or checking what rates are available for a specific inventory set.\n\n**How**: Supply the inventory set UUID as a path parameter. Optionally filter by `advertiser_id` to see advertiser-scoped rate cards (omit to see organization-level cards only). S" }, { "info": { "name": "Create Rate Card", "type": "http" }, "http": { "method": "POST", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/rateCards", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set this rate card belongs to." }, { "name": "validateOnly", "value": "", "type": "query", "description": "When true, validates Kantar rates are within the acceptable range ($1.00–$10,000.00) without creating the rate card. Returns 200 if all rates are valid, or 400 with per-title violation details if any rate is out of range. (default true)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a new rate card with rates for an inventory set.\n\n**Why**: Define pricing for inventory titles before creating a plan. Plans require rates (via rate card or inline overrides) to calculate budget allocations.\n\n**When**: Call after creating an inventory set and before creating plans. Use `validate_only=true` to pre-validate Kantar rate ranges without persisting.\n\n**How**: Submit the rate card in the request body with `display_name` and at least one of: `rates` (array of title_id/rate_type/" }, { "info": { "name": "Get Rate Card", "type": "http" }, "http": { "method": "GET", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/rateCards/:rateCardId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set." }, { "name": "rateCardId", "value": "", "type": "path", "description": "UUID of the rate card." } ] }, "docs": "Returns a rate card with its rates.\n\n**Why**: Retrieve the full rate card to inspect rates before using it in a plan or to verify it was created correctly.\n\n**When**: Call when you need the complete rate details for a specific rate card. Use LIST for discovery.\n\n**How**: Supply the inventory set UUID and rate card UUID as path parameters. Returns 404 if not found or not accessible to the caller — these cases are intentionally indistinguishable." }, { "info": { "name": "Update Rate Card", "type": "http" }, "http": { "method": "PATCH", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/rateCards/:rateCardId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set." }, { "name": "rateCardId", "value": "", "type": "path", "description": "UUID of the rate card to update." } ], "body": { "type": "json", "data": "{}" } }, "docs": "Updates an existing rate card.\n\n**Why**: Adjust rates, change advertiser scope, or update the display name of an existing rate card.\n\n**When**: When rates need correction or the rate card should be reassigned to a different advertiser.\n\n**How**: PATCH with the updated `rate_card` body. Supports partial updates. If `rates` are provided, existing rates are replaced entirely; if omitted, existing rates are kept. `advertiser_id` is always overridden from the request — include the current value to pr" }, { "info": { "name": "Delete Rate Card", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/rateCards/:rateCardId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set." }, { "name": "rateCardId", "value": "", "type": "path", "description": "UUID of the rate card." } ] }, "docs": "Deletes a rate card and its rates. This action cannot be undone.\n\n**Why**: Remove rate cards that are no longer needed or were created in error.\n\n**When**: Call when a rate card is obsolete. Existing plans that reference this rate card are not affected — their rates are stored independently.\n\n**How**: Supply the inventory set UUID and rate card UUID as path parameters. Returns 204 on success. Returns 404 if either does not exist or is not accessible." }, { "info": { "name": "List Custom Reach Curves", "type": "http" }, "http": { "method": "GET", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/reachCurves", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set to list reach curves for." }, { "name": "orderBy", "value": "", "type": "query", "description": "Specify the order and direction of the list with values separated by commas. Omitted direction defaults to asc. Example: 'created_at desc' Accepted Values: - 'created_at' - 'status' Accepted Sort: - 'desc' - 'asc'" }, { "name": "pageSize", "value": "", "type": "query", "description": "Query param pageSize specifies the number of results to include in a page of results." }, { "name": "pageToken", "value": "", "type": "query", "description": "Query param 'pageToken' specifies the value of the next page to retrieve within a paginated set of results. Valid values can be found in paginated responses that include field 'next_page_token'. When requesting the next page, additional query parameters should NOT change between page requests." } ] }, "docs": "Returns a paginated list of custom reach curves for an inventory set.\n\n**Why**: Discover existing custom reach curves and their processing status before creating plans or to audit what curves have been uploaded.\n\n**When**: Call to find available reach curves for a specific inventory set, or to monitor processing status across multiple curves.\n\n**How**: Supply the inventory set UUID as a path parameter. Sort with `orderBy` (created_at or status). Paginate with `pageSize`/`pageToken`. Use GET for " }, { "info": { "name": "Create Custom Reach Curve", "type": "http" }, "http": { "method": "POST", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/reachCurves", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set this reach curve belongs to." }, { "name": "validateOnly", "value": "", "type": "query", "description": "When true, validates the required fields, title IDs, and audience accessibility without creating the reach curve. Returns 200 if valid, 400 with details if not. (default true)" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Creates a custom reach curve for use in media plan optimization. The curve is processed asynchronously — poll via GET to check status.\n\n**Why**: Provide custom audience reach data for Digital inventory titles when default forecasted reach curves are unavailable or need to be overridden.\n\n**When**: Call after creating an inventory set and before creating plans that need custom reach data. Only Digital environment titles are supported. Use `validate_only=true` to pre-validate inputs.\n\n**How**: Sub" }, { "info": { "name": "Get Custom Reach Curve", "type": "http" }, "http": { "method": "GET", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/reachCurves/:reachCurveId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set." }, { "name": "reachCurveId", "value": "", "type": "path", "description": "UUID of the reach curve." } ] }, "docs": "Returns the full details of a custom reach curve including status and errors.\n\n**Why**: Check the processing status of a reach curve after creation, or retrieve the complete curve data including any errors on FAILED curves.\n\n**When**: Poll after creation to check if ingestion completed (QUEUED → READY/FAILED). Also use to inspect error details when status is FAILED.\n\n**How**: Supply the inventory set UUID and reach curve UUID as path parameters. Returns 404 if not found or not accessible to the " }, { "info": { "name": "Delete Custom Reach Curve", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.videoamp.dev/v1beta/inventories/:inventoryId/reachCurves/:reachCurveId", "params": [ { "name": "inventoryId", "value": "", "type": "path", "description": "UUID of the inventory set." }, { "name": "reachCurveId", "value": "", "type": "path", "description": "UUID of the reach curve." } ] }, "docs": "Deletes a custom reach curve. This action cannot be undone.\n\n**Why**: Remove reach curves that are no longer needed, were created in error, or have been superseded by updated data.\n\n**When**: Call when a reach curve is obsolete. Existing plans that were optimized using this curve are not affected.\n\n**How**: Supply the inventory set UUID and reach curve UUID as path parameters. Returns 204 on success. Returns 404 if either does not exist or is not accessible." } ] } ], "bundled": true }