VidMob Media API

The Media API from VidMob — 5 operation(s) for media.

OpenAPI Specification

vidmob-media-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vidmob Media API
  version: '2'
  description: 'Operations tagged Media across 2 of this provider''s published API definitions: vidmob-creative-aperture-openapi.json, vidmob-creative-scoring-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://public-api.vidmob.com
security:
- sec0: []
tags:
- name: Media
paths:
  /v1/media/aperture/{jobId}:
    servers:
    - url: https://public-api.vidmob.com
    get:
      summary: Get Creative Tags Job Status
      description: This endpoint retrieves the status of a Creative Tags  Job using the provided jobId. It returns details about the job, including its status, associated media, and processing results.
      operationId: get-creative-aperture-job-status
      parameters:
      - name: jobId
        in: path
        description: The unique job identifier to retrieve the job status.
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Response (Processing State):
                  value: "{\n    \"status\": \"OK\",\n    \"result\": {\n      \"job_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n      \"status\": \"PROCESSING\",\n      \"date_created\": \"2025-02-01T10:30:00Z\",\n      \"message\": \"Job is in progress. Processed 4 out of 12 media.\",\n      \"creativeIdentifiers\": [\n        \"creative_001\", \"creative_002\"\n      ],\n      \"clientTags\": {\n          \"brand\": \"ExampleBrand\",\n          \"market\": \"US\",\n          \"channels\": \"meta, dv360\"\n      }\n    }\n}\n"
                Response (Completed State):
                  value: "{\n    \"status\": \"OK\",\n    \"result\": {\n      \"job_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n      \"status\": \"COMPLETED\",\n      \"date_created\": \"2025-02-01T10:30:00Z\",\n      \"date_updated\": \"2025-02-01T11:15:45Z\",\n      \"download_url_csv\": \"https://example.com/downloads/report_123.csv\",\n      \"download_url_json\": \"https://example.com/downloads/report_123.json\",\n      \"creativeIdentifiers\": [\n        \"creative_001\", \"creative_002\"\n      ],\n      \"clientTags\": {\n          \"brand\": \"ExampleBrand\",\n          \"market\": \"US\",\n          \"channels\": \"meta, dv360\"\n      }\n    }\n}"
                Response (Failed State):
                  value: "{\n    \"status\": \"OK\",\n    \"result\": {\n      \"job_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n      \"status\": \"FAILED\",\n      \"date_created\": \"2025-02-01T10:30:00Z\",\n      \"date_updated\": \"2025-02-01T11:15:45Z\",\n      \"errors\": {\n        \"creative_002\": \"Failed to process during validation.\",\n        \"creative_003\": \"Media format not supported.\"\n      },\n      \"creativeIdentifiers\": [\n        \"creative_001\", \"creative_002\", \"creative_003\"\n      ],\n      \"clientTags\": {\n          \"brand\": \"ExampleBrand\",\n          \"market\": \"US\",\n          \"channels\": \"meta, dv360\"\n      }\n    }\n}"
              schema:
                oneOf:
                - title: Response (Processing State)
                  type: object
                  properties:
                    status:
                      type: string
                      example: OK
                    result:
                      type: object
                      properties:
                        job_id:
                          type: string
                          example: 123e4567-e89b-12d3-a456-426614174000
                        status:
                          type: string
                          example: PROCESSING
                        date_created:
                          type: string
                          example: '2025-02-01T10:30:00Z'
                        message:
                          type: string
                          example: Job is in progress. Processed 4 out of 12 media.
                        creativeIdentifiers:
                          type: array
                          items:
                            type: string
                            example: creative_001
                        clientTags:
                          type: object
                          properties:
                            brand:
                              type: string
                              example: ExampleBrand
                            market:
                              type: string
                              example: US
                            channels:
                              type: string
                              example: meta, dv360
                - title: Response (Completed State)
                  type: object
                  properties:
                    status:
                      type: string
                      example: OK
                    result:
                      type: object
                      properties:
                        job_id:
                          type: string
                          example: 123e4567-e89b-12d3-a456-426614174000
                        status:
                          type: string
                          example: COMPLETED
                        date_created:
                          type: string
                          example: '2025-02-01T10:30:00Z'
                        date_updated:
                          type: string
                          example: '2025-02-01T11:15:45Z'
                        download_url_csv:
                          type: string
                          example: https://example.com/downloads/report_123.csv
                        download_url_json:
                          type: string
                          example: https://example.com/downloads/report_123.json
                        creativeIdentifiers:
                          type: array
                          items:
                            type: string
                            example: creative_001
                        clientTags:
                          type: object
                          properties:
                            brand:
                              type: string
                              example: ExampleBrand
                            market:
                              type: string
                              example: US
                            channels:
                              type: string
                              example: meta, dv360
                - title: Response (Failed State)
                  type: object
                  properties:
                    status:
                      type: string
                      example: OK
                    result:
                      type: object
                      properties:
                        job_id:
                          type: string
                          example: 123e4567-e89b-12d3-a456-426614174000
                        status:
                          type: string
                          example: FAILED
                        date_created:
                          type: string
                          example: '2025-02-01T10:30:00Z'
                        date_updated:
                          type: string
                          example: '2025-02-01T11:15:45Z'
                        errors:
                          type: object
                          properties:
                            creative_002:
                              type: string
                              example: Failed to process during validation.
                            creative_003:
                              type: string
                              example: Media format not supported.
                        creativeIdentifiers:
                          type: array
                          items:
                            type: string
                            example: creative_001
                        clientTags:
                          type: object
                          properties:
                            brand:
                              type: string
                              example: ExampleBrand
                            market:
                              type: string
                              example: US
                            channels:
                              type: string
                              example: meta, dv360
        '401':
          description: '401'
          content:
            application/json:
              examples:
                Unauthorized:
                  value: "{\n  \"statusCode\": 401,\n  \"message\": \"Request is Unauthorized\",\n  \"error\": \"Unauthorized\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 401
                    default: 0
                  message:
                    type: string
                    example: Request is Unauthorized
                  error:
                    type: string
                    example: Unauthorized
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Response (Job Not Found):
                  value: "{\n    \"status\": \"ERROR\",\n    \"traceId\": \"242933324125066912\",\n    \"error\": {\n        \"identifier\": \"example.api.notfoundexception\",\n        \"type\": \"NOTFOUNDEXCEPTION\",\n        \"system\": \"CreativeApertureService\",\n        \"message\": \"Job with id 3b925ba0-6ea2-48ca-893b-9d181fe0c5981 not found\"\n    }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ERROR
                  traceId:
                    type: string
                    example: '242933324125066912'
                  error:
                    type: object
                    properties:
                      identifier:
                        type: string
                        example: example.api.notfoundexception
                      type:
                        type: string
                        example: NOTFOUNDEXCEPTION
                      system:
                        type: string
                        example: CreativeApertureService
                      message:
                        type: string
                        example: Job with id 3b925ba0-6ea2-48ca-893b-9d181fe0c5981 not found
      deprecated: false
      tags:
      - Media
  /v1/media/aperture:
    servers:
    - url: https://public-api.vidmob.com
    post:
      summary: Create Creative Tags Job
      description: This endpoint allows users to create a new Creative Tags job. It accepts a list of creative assets along with client tags and returns a job_id that can be used to track the job’s status.
      operationId: create-creative-aperture-job
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - creatives
              - clientTags
              properties:
                creatives:
                  type: array
                  description: List of creative assets, each containing an id and a url. Supports up to 200 creatives.
                clientTags:
                  type: string
                  description: Metadata containing client-related tags such as brand, market, and channels.
                  format: json
            examples:
              Example Request Body:
                value:
                  creatives:
                  - id: creative_001
                    url: https://example.com/assets/image1.png
                  - id: creative_002
                    url: https://example.com/assets/image2.png
                  clientTags:
                    brand: ExampleBrand
                    market: US
                    channels: meta, dv360
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Response (Successful Job Creation):
                  value: "{\n    \"status\": \"OK\",\n    \"result\": {\n      \"job_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n      \"status\": \"QUEUED\",\n      \"date_created\": \"2025-02-01T10:30:00Z\",\n      \"creativeIdentifiers\": [\n        \"creative_001\", \"creative_002\"\n      ],\n      \"clientTags\": {\n          \"brand\": \"ExampleBrand\",\n          \"market\": \"US\",\n          \"channels\": \"meta, dv360\"\n      }\n    }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: OK
                  result:
                    type: object
                    properties:
                      job_id:
                        type: string
                        example: 123e4567-e89b-12d3-a456-426614174000
                      status:
                        type: string
                        example: QUEUED
                      date_created:
                        type: string
                        example: '2025-02-01T10:30:00Z'
                      creativeIdentifiers:
                        type: array
                        items:
                          type: string
                          example: creative_001
                      clientTags:
                        type: object
                        properties:
                          brand:
                            type: string
                            example: ExampleBrand
                          market:
                            type: string
                            example: US
                          channels:
                            type: string
                            example: meta, dv360
        '400':
          description: '400'
          content:
            application/json:
              examples:
                creatives must contain at least 1 elements:
                  value: "{\n    \"status\": \"ERROR\",\n    \"traceId\": \"6697071182135860597\",\n    \"error\": {\n        \"identifier\": \"vidmob.api-bff.badrequestexception\",\n        \"type\": \"BADREQUESTEXCEPTION\",\n        \"system\": \"api-bff\",\n        \"message\": [\n            \"creatives must contain at least 1 elements\"\n        ]\n    }\n}"
                creatives must contain no more than 200 elements:
                  value: "{\n    \"status\": \"ERROR\",\n    \"traceId\": \"7914867384350912708\",\n    \"error\": {\n        \"identifier\": \"vidmob.api-bff.badrequestexception\",\n        \"type\": \"BADREQUESTEXCEPTION\",\n        \"system\": \"api-bff\",\n        \"message\": [\n            \"creatives must contain no more than 200 elements\"\n        ]\n    }\n}"
                clientTags must be an object:
                  value: "{\n    \"status\": \"ERROR\",\n    \"traceId\": \"6617476226808560828\",\n    \"error\": {\n        \"identifier\": \"vidmob.api-bff.badrequestexception\",\n        \"type\": \"BADREQUESTEXCEPTION\",\n        \"system\": \"api-bff\",\n        \"message\": [\n            \"clientTags must be an object\"\n        ]\n    }\n}"
              schema:
                oneOf:
                - title: creatives must contain at least 1 elements
                  type: object
                  properties:
                    status:
                      type: string
                      example: ERROR
                    traceId:
                      type: string
                      example: '6697071182135860597'
                    error:
                      type: object
                      properties:
                        identifier:
                          type: string
                          example: vidmob.api-bff.badrequestexception
                        type:
                          type: string
                          example: BADREQUESTEXCEPTION
                        system:
                          type: string
                          example: api-bff
                        message:
                          type: array
                          items:
                            type: string
                            example: creatives must contain at least 1 elements
                - title: creatives must contain no more than 200 elements
                  type: object
                  properties:
                    status:
                      type: string
                      example: ERROR
                    traceId:
                      type: string
                      example: '7914867384350912708'
                    error:
                      type: object
                      properties:
                        identifier:
                          type: string
                          example: vidmob.api-bff.badrequestexception
                        type:
                          type: string
                          example: BADREQUESTEXCEPTION
                        system:
                          type: string
                          example: api-bff
                        message:
                          type: array
                          items:
                            type: string
                            example: creatives must contain no more than 200 elements
                - title: clientTags must be an object
                  type: object
                  properties:
                    status:
                      type: string
                      example: ERROR
                    traceId:
                      type: string
                      example: '6617476226808560828'
                    error:
                      type: object
                      properties:
                        identifier:
                          type: string
                          example: vidmob.api-bff.badrequestexception
                        type:
                          type: string
                          example: BADREQUESTEXCEPTION
                        system:
                          type: string
                          example: api-bff
                        message:
                          type: array
                          items:
                            type: string
                            example: clientTags must be an object
        '401':
          description: '401'
          content:
            application/json:
              examples:
                Unauthorized:
                  value: "{\n  \"statusCode\": 401,\n  \"message\": \"Request is Unauthorized\",\n  \"error\": \"Unauthorized\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 401
                    default: 0
                  message:
                    type: string
                    example: Request is Unauthorized
                  error:
                    type: string
                    example: Unauthorized
      deprecated: false
      tags:
      - Media
  /v1/media:
    servers:
    - url: https://public-api.vidmob.com
    post:
      summary: Upload Media For Scoring
      description: Lets you upload single media asset for scoring against your criteria.
      operationId: upload-media-for-scoring
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - url
              properties:
                id:
                  type: string
                  description: Media asset ID
                url:
                  type: string
                  description: Media file download URL
                brands:
                  type: array
                  description: List of brands
                  items:
                    type: string
                markets:
                  type: array
                  description: List of markets
                  items:
                    type: string
                source:
                  type: string
                  description: Source of media
                version:
                  type: string
                  description: Media version
                name:
                  type: string
                  description: Media name
                description:
                  type: string
                  description: Media description
                channels:
                  type: array
                  description: List of channels to score media for
                  items:
                    type: string
                workspaceId:
                  type: integer
                  description: ID of workspace to include scoring criteria from
                  format: int32
      responses:
        '201':
          description: '201'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"status\": \"OK\",\n    \"result\": {\n        \"uniqueId\": \"example-unique-id\"\n    }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: OK
                  result:
                    type: object
                    properties:
                      uniqueId:
                        type: string
                        example: example-unique-id
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"ERROR\",\n  \"traceId\": \"example-trace-id\",\n  \"error\": {\n    \"identifier\": \"vidmob.scoring.badrequestexception\",\n    \"type\": \"BADREQUESTEXCEPTION\",\n    \"system\": \"scoring\",\n    \"message\": \"Example message\"\n  }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ERROR
                  traceId:
                    type: string
                    example: example-trace-id
                  error:
                    type: object
                    properties:
                      identifier:
                        type: string
                        example: vidmob.scoring.badrequestexception
                      type:
                        type: string
                        example: BADREQUESTEXCEPTION
                      system:
                        type: string
                        example: scoring
                      message:
                        type: string
                        example: Example message
        '401':
          description: '401'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"statusCode\": 401,\n  \"message\": \"Request is Unauthorized\",\n  \"error\": \"Unauthorized\"\n}"
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 401
                    default: 0
                  message:
                    type: string
                    example: Request is Unauthorized
                  error:
                    type: string
                    example: Unauthorized
        '409':
          description: '409'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"status\": \"ERROR\",\n    \"traceId\": \"7788004045100701669\",\n    \"error\": {\n        \"identifier\": \"vidmob.api-bff.conflictexception\",\n        \"type\": \"CONFLICTEXCEPTION\",\n        \"system\": \"scoring\",\n        \"message\": \"A media entry with id 'example-media-id' and version 'example-version' already exists\"\n    }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ERROR
                  traceId:
                    type: string
                    example: '7788004045100701669'
                  error:
                    type: object
                    properties:
                      identifier:
                        type: string
                        example: vidmob.api-bff.conflictexception
                      type:
                        type: string
                        example: CONFLICTEXCEPTION
                      system:
                        type: string
                        example: scoring
                      message:
                        type: string
                        example: A media entry with id 'example-media-id' and version 'example-version' already exists
      deprecated: false
      tags:
      - Media
  /v1/media/{mediaId}/status:
    servers:
    - url: https://public-api.vidmob.com
    get:
      summary: Get Media Scoring Status
      description: Provides a way to check media scoring status.
      operationId: get-media-scoring-status
      parameters:
      - name: mediaId
        in: path
        description: ID that identifies the media
        schema:
          type: string
        required: true
      - name: source
        in: query
        description: Specifies the media source
        schema:
          type: string
      - name: version
        in: query
        description: Specifies the media version
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"status\": \"OK\",\n    \"result\": {\n        \"uniqueId\": \"example-media-unique-id\",\n        \"source\": \"example-media-version\",\n        \"id\": \"example-media-id\",\n        \"version\": \"example-media-version\",\n        \"status\": \"One of [COMPLETE, PROCESSING, UNSUPPORTED, FAILED, ERROR]\"\n    }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: OK
                  result:
                    type: object
                    properties:
                      uniqueId:
                        type: string
                        example: example-media-unique-id
                      source:
                        type: string
                        example: example-media-version
                      id:
                        type: string
                        example: example-media-id
                      version:
                        type: string
                        example: example-media-version
                      status:
                        type: string
                        example: One of [COMPLETE, PROCESSING, UNSUPPORTED, FAILED, ERROR]
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"ERROR\",\n  \"traceId\": \"example-trace-id\",\n  \"error\": {\n    \"identifier\": \"vidmob.scoring.badrequestexception\",\n    \"type\": \"BADREQUESTEXCEPTION\",\n    \"system\": \"scoring\",\n    \"message\": \"Example message\"\n  }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ERROR
                  traceId:
                    type: string
                    example: example-trace-id
                  error:
                    type: object
                    properties:
                      identifier:
                        type: string
                        example: vidmob.scoring.badrequestexception
                      type:
                        type: string
                        example: BADREQUESTEXCEPTION
                      system:
                        type: string
                        example: scoring
                      message:
                        type: string
                        example: Example message
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"status\": \"ERROR\",\n  \"traceId\": \"example-trace-id\",\n  \"error\": {\n    \"identifier\": \"vidmob.scoring.notfoundexception\",\n    \"type\": \"NOTFOUNDEXCEPTION\",\n    \"system\": \"scoring\",\n    \"message\": \"No API media record found for external media ID: example-media-id with source: example-source and version: example-version\"\n  }\n}"
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ERROR
                  traceId:
                    type: string
                    example: example-trace-id
                  error:
                    type: object
                    properties:
                      identifier:
                        type: string
                        example: vidmob.scoring.notfoundexception
                      type:
                        type: string
                        example: NOTFOUNDEXCEPTION
                      system:
                        type: string
                        example: scoring
                      message:
                        type: string
                        example: 'No API media record found for external media ID: example-media-id with source: example-source and version: example-version'
      deprecated: false
      tags:
      - Media
  /v1/media/updated-scores:
    servers:
    - url: https://public-api.vidmob.com
    get:
      description: ''
      operationId: get_v1mediaupdated-scores
      responses:
        '200':
          description: ''
      parameters:
      - in: query
        name: param
        schema:
          type: number
        description: workspaceId
        required: true
      - in: query
        name: param1
        schema:
          type: string
        description: updatedSince
      - in: query
        name: param2
        schema:
          type: number
          default: '10'
        description: perPage
      - in: query
        name: param3
        schema:
          type: number
          default: '0'
        description: offset
      tags:
      - Media
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer
x-refined-from:
- vidmob-creative-aperture-openapi.json
- vidmob-creative-scoring-openapi.json
x-readme:
  headers: []
  explorer-enabled: true
  proxy-enabled: true
x-readme-fauxas: true