Pixlee Content API

Consume approved UGC media from albums (with filters/sorts and pagination), ingest new content from a URL or file, and add or update products. API key in query plus HMAC-SHA1 signature for writes; responses wrap data under a `data` key.

OpenAPI Specification

pixlee-content-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Pixlee Albums Content API
  version: '2.0'
  description: Pixlee's Content API provides brands programmatic access to their Pixlee user-generated content (UGC), lets them consume approved media from albums with rich filtering and sorting, upload new content from a URL or a file, and add or update products. Pixlee is now part of Emplifi (Pixlee TurnTo). Authentication uses an ACCOUNT API KEY / ACCOUNT PRIVATE API KEY passed as the `api_key` query parameter; all POST (write) requests must additionally be signed with an HMAC-SHA1 `Signature` header computed from the JSON payload using the ACCOUNT SECRET KEY.
  contact:
    name: Pixlee TurnTo Developer Support (Emplifi)
    url: https://developers.pixlee.com/
  x-apievangelist-source: Reconstructed verbatim from the OpenAPI 3.1 fragments published on the Pixlee developer portal (ReadMe-hosted) reference pages at https://developers.pixlee.com/reference/*
servers:
- url: https://distillery.pixlee.co/api/v2
  description: Pixlee Content API v2 production (CDN-cached, 2 minute expiry)
security:
- api_key: []
tags:
- name: Content
  description: Consume approved media content from albums
paths:
  /albums/{album_id}/photos:
    get:
      tags:
      - Content
      summary: Get approved content from album
      description: Returns approved media content inside an album. Optionally, pass in formatted JSON to filter or sort the content. This is the most commonly used endpoint for consuming UGC.
      operationId: get-approved-content-from-album
      parameters:
      - name: album_id
        in: path
        required: true
        schema:
          type: integer
          format: int32
      - name: api_key
        in: query
        required: true
        schema:
          type: string
      - name: page
        in: query
        schema:
          type: integer
          format: int32
          default: 1
      - name: per_page
        in: query
        schema:
          type: integer
          format: int32
          default: 30
      - name: sort
        in: query
        description: 'JSON sort object. Applicable sorts: recency, approved_time, random, pixlee_shares, pixlee_likes, popularity, dynamic (with desc | asc).'
        schema:
          type: string
          format: json
      - name: filters
        in: query
        description: JSON filters object (intersecting clauses). See the Consuming Content guide for the full filter vocabulary (content_source, content_type, has_product, has_permission, in_categories, etc.).
        schema:
          type: string
          format: json
      responses:
        '200':
          description: Approved media content, paginated, under the `data` key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEnvelope'
components:
  schemas:
    ResponseEnvelope:
      type: object
      description: All response objects are accessible under the `data` key.
      properties:
        status:
          type: integer
        message:
          type: string
        data:
          type: object
  securitySchemes:
    api_key:
      type: apiKey
      in: query
      name: api_key
      description: Pixlee ACCOUNT API KEY (read) or ACCOUNT PRIVATE API KEY (write). Found under the API tab in Pixlee account settings.