Snapchat Media API

Media endpoints handle uploading and managing media assets such as images and videos used in creatives.

OpenAPI Specification

snapchat-media-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Snapchat Ads Ad Accounts Media API
  description: The Snapchat Ads API allows developers to programmatically create, manage, and optimize advertising campaigns on the Snapchat platform. It provides endpoints for managing organizations, ad accounts, campaigns, ad squads, ads, creatives, media, funding sources, audience segments, and measurement reporting. The API supports the full advertising lifecycle from campaign setup through reporting and optimization.
  version: '1.0'
  contact:
    name: Snap for Developers
    url: https://developers.snap.com
  termsOfService: https://snap.com/en-US/terms
servers:
- url: https://adsapi.snapchat.com/v1
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Media
  description: Media endpoints handle uploading and managing media assets such as images and videos used in creatives.
paths:
  /adaccounts/{ad_account_id}/media:
    get:
      operationId: listMedia
      summary: List All Media for an Ad Account
      description: Retrieves all media objects associated with the specified ad account.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/adAccountId'
      responses:
        '200':
          description: Successful retrieval of media
          content:
            application/json:
              schema:
                type: object
                properties:
                  request_status:
                    type: string
                  request_id:
                    type: string
                  media:
                    type: array
                    items:
                      type: object
                      properties:
                        media:
                          $ref: '#/components/schemas/Media'
        '401':
          description: Unauthorized
        '404':
          description: Ad account not found
    post:
      operationId: createMedia
      summary: Create a Media Object
      description: Creates a new media object under the specified ad account. The media object must be created before uploading the actual media file.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/adAccountId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                media:
                  type: array
                  items:
                    $ref: '#/components/schemas/Media'
      responses:
        '200':
          description: Media object created successfully
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /media/{media_id}/upload:
    post:
      operationId: uploadMedia
      summary: Upload Media Content
      description: Uploads the actual media file content to an existing media object. Supports images, videos, and playable media. Maximum chunk size is 32MB per request.
      tags:
      - Media
      parameters:
      - $ref: '#/components/parameters/mediaId'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The media file to upload (image, video, or ZIP for playable)
      responses:
        '200':
          description: Media uploaded successfully
        '400':
          description: Bad request - invalid file or exceeds size limit
        '401':
          description: Unauthorized
        '404':
          description: Media object not found
components:
  parameters:
    mediaId:
      name: media_id
      in: path
      required: true
      description: The unique identifier of the media object
      schema:
        type: string
    adAccountId:
      name: ad_account_id
      in: path
      required: true
      description: The unique identifier of the ad account
      schema:
        type: string
  schemas:
    Media:
      type: object
      description: A Media object represents an uploaded media asset such as an image, video, or playable content used in creatives.
      properties:
        id:
          type: string
          description: The unique identifier of the media object
        updated_at:
          type: string
          format: date-time
          description: Timestamp of last update
        created_at:
          type: string
          format: date-time
          description: Timestamp of creation
        name:
          type: string
          description: The name of the media object
        ad_account_id:
          type: string
          description: The ID of the parent ad account
        type:
          type: string
          description: The type of media
          enum:
          - IMAGE
          - VIDEO
          - PLAYABLE
        media_status:
          type: string
          description: The processing status of the media
          enum:
          - PENDING_UPLOAD
          - READY
          - ERROR
  securitySchemes:
    bearerAuth:
      type: oauth2
      description: OAuth 2.0 authorization. Access tokens are obtained via the authorization code flow and expire after 3600 seconds. Refresh tokens can be used to obtain new access tokens.
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.snapchat.com/accounts/oauth2/auth
          tokenUrl: https://accounts.snapchat.com/login/oauth2/access_token
          scopes:
            snapchat-marketing-api: Access to the Snapchat Marketing API
externalDocs:
  description: Snapchat Ads API Documentation
  url: https://developers.snap.com/api/marketing-api/Ads-API/introduction