{
  "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
}