openapi: 3.2.0 info: title: SpringServe UI API (V0) Videos API version: 0.1.0 description: "> **_NOTE:_** This document covers the v0 API (`/api/v0`). You can find additional documentation on the v0 API (`/api/v0`) on the \n[Magnite Help Center](https://help.magnite.com/), which is broken into sections for endpoints relevant to \n[SpringServe](https://help.magnite.com/help/api-documentation) and [Clearline](https://help.magnite.com/help/api-documentation-06dd4d3). \nYou can also find V1 swagger documentation by selecting ‘SpringServe API V1’ from the dropdown at the top right corner \nof this page. Please note we are in the process of creating V1 endpoints for all existing V0 endpoints, but while that work \nis in progress not all endpoints will be supported on V1. We advise reviewing both swagger pages to determine what \nis supported in each version.\n\n# Authentication\nWhen using this API documentation server, by default it will authenticate API calls using cookie-based authentication agains the selected server. If you are properly logged into the SpringServe server and your session is still active, then the API calls should automatically authenticate. \n\nOutside of this API documentation server you should use either Token Based or Bearer authentication. You may also these authentication methods on this server as well,\n which will take precedence over any cookie/session based authentication.\n### Token Based Authentication\nUse the [POST /api/v0/auth](#/Auth/auth_post) endpoint to generate an API token that is then passed in the `Authorization: ` header\n\n### Bearer Authentication\nUse the [POST /api/v0/auth](#/Auth/auth_post) endpoint to authenticate and get a bearer token that is then passed in the `Authorization: Bearer ` header\n\n# Active Account Context\nA given request always runs in the context of currently active account for the authenticated user making\nthe request. The active account can be determined via the [GET /api/v0/accounts/current](#/Accounts/accounts_current_get)\nendpoint and updated via [POST /api/v0/accounts/{id}/set_current](#/Accounts/accounts_id_set_current_post).\nThe active account can also be overridden for an authenticated request by passing the `x-auth-context` header.\n\n# V0 List Resource Functionality\nV0 list endpoints support pagination via the `page` (first page is page 1) and `per` (how many results\nper page) query parameters. Some endpoints also support filtering by `ids[]` (repeated query param, e.g. ids[]=1&ids[]=2).\n" servers: - url: https://console.springserve.com/api/v0 description: SpringServe console. Added by API Evangelist from the published documentation (springserve.atlassian.net/wiki/spaces/SSD/pages/1573617663/API+-+Getting+Started, "Base Url https://console.springserve.com/"); the document Magnite serves declares no servers[] block because the Swagger UI infers the host from window.location. - url: https://console.clearline.magnite.com/api/v0 description: ClearLine console. The identical contract is served from ClearLine's own host; base URL published at springserve.atlassian.net/wiki/spaces/CLD/pages/3649929217/Clearline+API+SDK. security: - api_key: [] - bearer_token: [] tags: - name: Videos paths: /api/v0/videos: get: summary: Index description: List video creatives. Supports pagination via page, per, and ids params. parameters: - $ref: ref/params.yaml#/components/parameters/pageParam - $ref: ref/params.yaml#/components/parameters/perParam - $ref: ref/params.yaml#/components/parameters/idsParam responses: '200': description: List of video creatives content: application/json: schema: $ref: ref/schemas.yaml#/components/schemas/ListResponse tags: - Videos operationId: videos_get post: summary: Create description: Create a video creative (from Clearline Demand Tag, Video Creative API docs) requestBody: content: application/json: schema: type: object examples: simple: $ref: '#/components/examples/video_creative_create_simple' full: $ref: '#/components/examples/video_creative_create_full' required: true responses: '201': description: Created video creative content: application/json: schema: type: object example: id: 1832 account_id: 1 name: videofile.mp4 height: 1080 width: 1920 duration_seconds: 14 video_file_name: VIDEO FILE API DOCS video_content_type: video/mp4 video_file_size: 6737024 video_updated_at: '2018-08-20T21:25:27.235Z' video_remote_url: null tags: - Videos operationId: videos_post /api/v0/videos/{id}: get: summary: Show description: Get a Video Creative parameters: - name: id in: path required: true schema: type: string responses: '200': description: Video creative details content: application/json: schema: type: object example: id: 1832 account_id: 1 name: videofile.mp4 height: 1080 width: 1920 duration_seconds: 14 video_file_name: VIDEO FILE API DOCS video_content_type: video/mp4 video_file_size: 6737024 video_updated_at: '2018-08-20T21:25:27.235Z' video_remote_url: null tags: - Videos operationId: videos_id_get put: summary: Update description: Update a video creative parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: type: object examples: simple: $ref: '#/components/examples/video_creative_update_simple' full: $ref: '#/components/examples/video_creative_update_full' responses: '200': description: Updated video creative content: application/json: schema: type: object tags: - Videos operationId: videos_id_put delete: summary: Destroy description: Delete a video creative parameters: - name: id in: path required: true schema: type: string responses: '204': description: No content tags: - Videos operationId: videos_id_delete components: examples: video_creative_create_full: summary: Full value: name: Video Creative Name demand_partner_id: 1 creative_remote_url: https://example.com/video.mp4 creative_landing_page_url: https://example.com/landing code: video-code secondary_code: video-secondary advertiser_domain: example.com iab_tier_1_category_codes: - IAB1 iab_tier_2_category_codes: - IAB1-1 line_item_demand_tag_ids: - 1 country_source: list country_list_ids: - 1 state_source: list state_list_ids: - 1 city_source: list city_list_ids: - 1 metro_area_source: list metro_area_list_ids: - 1 postal_code_source: list postal_code_list_ids: - 1 key_value_targeting: true budget_timezone: America/New_York start_date: '2026-01-01' end_date: '2026-12-31' flight_dates_timezone: America/New_York tag_pixels: - pixel_type: AdImpression pixel_url: https://pixel.example.com/imp pixel_format: image active: true video_creative_update_simple: summary: Simple value: name: Video Creative Name active: true video_creative_create_simple: summary: Simple value: name: Video Creative Name demand_partner_id: 1 creative_remote_url: https://example.com/video.mp4 video_creative_update_full: summary: Full value: name: Video Creative Name creative_landing_page_url: https://example.com/landing code: video-code secondary_code: video-secondary advertiser_domain: example.com iab_tier_1_category_codes: - IAB1 iab_tier_2_category_codes: - IAB1-1 line_item_demand_tag_ids: - 1 country_source: list country_list_ids: - 1 state_source: list state_list_ids: - 1 city_source: list city_list_ids: - 1 metro_area_source: list metro_area_list_ids: - 1 postal_code_source: list postal_code_list_ids: - 1 key_value_targeting: true budget_timezone: America/New_York start_date: '2026-01-01' end_date: '2026-12-31' flight_dates_timezone: America/New_York tag_pixels: - pixel_type: AdImpression pixel_url: https://pixel.example.com/imp pixel_format: image active: true securitySchemes: api_key: type: apiKey in: header name: Authorization description: SpringServe authorization token based authentication. bearer_token: type: http scheme: bearer bearerFormat: JWT description: SpringServe authorization bearer token based authentication. This key is included in the response from the /api/v0/auth and /api/v1/auth endpoints. This key will be automatically set if you run the example for /api/v0/auth or /api/v1/auth x-servers-added-by: https://apievangelist.com — not present in the upstream document; see openapi/_original/ for the verbatim spec.