> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adspo.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get creatives

> Returns a paginated list of creatives across the entire library, ordered by the specified sort.

Cursor-based pagination — pass `cursor` from the previous response as `cursor`. Cursors are tied to `order_by`; do not reuse a cursor when changing sort order.

Array filters (`country`, `language`) match creatives that include **any** of the provided values.




## OpenAPI

````yaml GET /v1/creatives
openapi: 3.1.0
info:
  title: Adspo API
  version: 1.0.0
  description: >
    The Adspo API gives you programmatic access to ad creative data across
    brands.


    ## Authentication


    All endpoints require an API key passed in the `x-api-key` header.


    ```

    x-api-key: YOUR_API_KEY

    ```


    ## Rate limits


    - **120 requests per minute** per key. Exceeding this returns `429`.

    - **Credits per billing period** vary by plan. Each request costs 1 credit.
    Exceeding your quota returns `429` with `resets_at` indicating when it
    resets
servers:
  - url: https://api.adspo.co
    description: Production
security:
  - apiKey: []
paths:
  /v1/creatives:
    get:
      summary: Get creatives
      description: >
        Returns a paginated list of creatives across the entire library, ordered
        by the specified sort.


        Cursor-based pagination — pass `cursor` from the previous response as
        `cursor`. Cursors are tied to `order_by`; do not reuse a cursor when
        changing sort order.


        Array filters (`country`, `language`) match creatives that include
        **any** of the provided values.
      operationId: getCreatives
      parameters:
        - name: order_by
          in: query
          description: Sort order for results.
          schema:
            type: string
            enum:
              - latest
              - oldest
              - longest_running
              - most_ads
            default: latest
        - name: cursor
          in: query
          description: Pagination cursor from a previous response.
          schema:
            type: string
        - name: category
          in: query
          description: Filter by brand category.
          schema:
            type: string
            enum:
              - Fashion & Apparel
              - Beauty & Cosmetics
              - Self Care & Hygiene
              - Health & Wellness
              - Home & Living
              - Software & Tech
              - Food & Beverages
              - Pet Supplies
              - Active & Sports
              - Outdoors & Travel
              - Jewelry & Accessories
              - Games & Hobbies
              - Other
        - name: start_date
          in: query
          description: >
            Filter creatives first seen on or after this date.

            Accepted formats: `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS`,
            `YYYY-MM-DDTHH:MM:SS`.

            A bare date (e.g. `2024-11-12`) is interpreted as `2024-11-12
            00:00:00`.
          schema:
            type: string
          example: '2024-11-12 00:00:00'
        - name: end_date
          in: query
          description: >
            Filter creatives last seen on or before this date.

            Accepted formats: `YYYY-MM-DD`, `YYYY-MM-DD HH:MM:SS`,
            `YYYY-MM-DDTHH:MM:SS`.

            To capture all creatives through a full day, use `YYYY-MM-DD
            23:59:59`.
          schema:
            type: string
          example: '2024-11-12 23:59:59'
        - name: is_active
          in: query
          description: Filter by whether the creative is currently running.
          schema:
            type: boolean
        - name: format
          in: query
          description: Filter by creative format.
          schema:
            type: string
            enum:
              - IMAGE
              - VIDEO
        - name: runtime_min
          in: query
          description: Minimum runtime in days.
          schema:
            type: integer
        - name: runtime_max
          in: query
          description: Maximum runtime in days.
          schema:
            type: integer
        - name: ad_count_min
          in: query
          description: Minimum number of ad variants using this creative.
          schema:
            type: integer
        - name: ad_count_max
          in: query
          description: Maximum number of ad variants using this creative.
          schema:
            type: integer
        - name: impression_order_min
          in: query
          description: >-
            Minimum impression order rank. Lower values indicate higher
            estimated impressions.
          schema:
            type: integer
        - name: impression_order_max
          in: query
          description: Maximum impression order rank.
          schema:
            type: integer
        - name: country
          in: query
          description: >-
            Comma-separated or repeated. Matches creatives shown in any of these
            countries.
          schema:
            type: string
          example: US
        - name: language
          in: query
          description: >-
            Comma-separated or repeated. Matches creatives in any of these
            languages.
          schema:
            type: string
          example: en
        - name: include_ads
          in: query
          description: >-
            Returns an `ads` array containing all Meta ads running the creative,
            including details such as `title`, `body_text`, `link_text`, etc.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: A page of creatives.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreativesResponse'
              example:
                count: 1
                next_cursor: null
                creatives:
                  - creative_id: f930d886d0fb9e86b9dd6c1200dab7ef
                    brand_id: '857986847394146'
                    brand_name: DRMTLGY
                    format: IMAGE
                    hd_url: >-
                      https://r2.adspo.co/creatives/images/original/f930d886d0fb9e86b9dd6c1200dab7ef.jpg
                    sd_url: >-
                      https://r2.adspo.co/creatives/images/resized/f930d886d0fb9e86b9dd6c1200dab7ef.jpg
                    is_active: false
                    start_date: '2026-03-16T07:00:00Z'
                    end_date: '2026-04-24T07:00:00Z'
                    runtime_days: 39
                    ad_count: 10
                    landing_pages:
                      - https://www.example.com
                    countries:
                      - AU
                      - GB
                      - NZ
                      - US
                    languages:
                      - en
                    impression_order: 11
                    variants: []
        '400':
          description: Invalid order_by, cursor, or category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit or quota exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreativesResponse:
      type: object
      properties:
        brand_id:
          type: string
          nullable: true
          description: >-
            Facebook Ad Library page ID. Only present on brand creatives
            responses.
        count:
          type: integer
          description: Number of creatives returned in this page.
        next_cursor:
          type: string
          nullable: true
          description: >-
            Pass this value as cursor to retrieve the next page. null when there
            are no more results.
        creatives:
          type: array
          items:
            $ref: '#/components/schemas/Creative'
    Error:
      type: object
      properties:
        error:
          type: string
    Creative:
      type: object
      properties:
        creative_id:
          type: string
          description: Unique identifier for this creative.
        brand_id:
          type: string
          description: Facebook Ad Library page ID of the brand running this creative.
        brand_name:
          type: string
          nullable: true
          description: Display name of the brand.
        format:
          type: string
          enum:
            - IMAGE
            - VIDEO
          description: Whether the creative uses a static image or video.
        hd_url:
          type: string
          description: >-
            High-resolution media URL. For videos the HD stream, for images the
            original.
        sd_url:
          type: string
          description: >-
            Lower-resolution media URL. For videos the SD stream, for images the
            resized version.
        is_active:
          type: boolean
          description: Whether the creative is currently running as an active ad.
        start_date:
          type: string
          format: date-time
          description: Date the creative was first observed in the Ad Library.
        end_date:
          type: string
          format: date-time
          nullable: true
          description: >-
            Date the creative was last observed. null if the creative is still
            active.
        runtime_days:
          type: integer
          description: >-
            Number of days between first_seen and last_seen (or today if still
            active).
        ad_count:
          type: integer
          description: Number of individual ad variants using this creative.
        landing_pages:
          type: array
          description: Destination URLs this creative links to.
          items:
            type: string
        countries:
          type: array
          description: Country codes where this creative has been shown.
          items:
            type: string
        languages:
          type: array
          description: Languages this creative has been served in.
          items:
            type: string
        impression_order:
          type: integer
          nullable: true
          description: >-
            Estimated impression rank among active ads for this brand (lower =
            more impressions).
        variants:
          type: array
          description: Alternate copies of this creative.
          items:
            type: object
            properties:
              creative_id:
                type: string
              hd_url:
                type: string
              sd_url:
                type: string
        hook:
          type: string
          nullable: true
          description: >-
            Opening line of the video transcript. null if unavailable or not a
            video creative.
        ads:
          type: array
          description: >-
            Individual ad variants for this creative. Only present when
            include_ads=true.
          items:
            $ref: '#/components/schemas/Ad'
    Ad:
      type: object
      properties:
        ad_archive_id:
          type: string
          description: Unique ID for this ad in the Facebook Ad Library.
        brand_id:
          type: string
          description: Facebook Ad Library page ID of the brand running this ad.
        creative_id:
          type: string
          description: ID of the parent creative this ad belongs to.
        ad_format:
          type: string
          enum:
            - IMAGE
            - VIDEO
            - DCO
          description: The format of the ad.
        is_active:
          type: boolean
          description: Whether this ad is currently running.
        start_date:
          type: string
          format: date-time
          description: Date this ad started running.
        end_date:
          type: string
          format: date-time
          nullable: true
          description: Date this ad stopped running. null if still active.
        title_text:
          type: string
          nullable: true
          description: Headline or title text of the ad.
        body_text:
          type: string
          nullable: true
          description: Main body copy of the ad.
        cta_text:
          type: string
          nullable: true
          description: Call-to-action button label.
        link_text:
          type: string
          nullable: true
          description: Display text shown on the destination link.
        link_url:
          type: string
          nullable: true
          description: Destination URL the ad links to.
        language:
          type: string
          description: Language this ad variant is served in.
        countries:
          type: array
          description: Country codes where this ad is running.
          items:
            type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Adspo API key.

````