CreatorIQ Brand Safety API

SafeIQ brand safety timeline API

Operations 2

GET /brand-safety/v1/posts List brand safety posts #
GET /brand-safety/v1/posts/{post_id} Get brand safety post details #

Documentation

📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/6e239b2598043-creator-iq-crm-publishers-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/550a4dd4b1c4c-creator-iq-crm-publishers-api-v2
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/23bf95a24efdc-creator-iq-campaign-ap-is
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/1782008e04401-creator-iq-crm-campaigns-api-v2
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/7e7ec9da4e860-creator-iq-reporting-ap-is
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/01ce2c98ffb66-creator-iq-social-account-ap-is
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/eb8bcd088eeca-creator-iq-crm-lists-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/38b54f6883f05-creator-iq-crm-onesheets-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/4959b70086ddd-creator-iq-crm-publishers-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/cd253b6f9f728-creator-iq-divisions-ap-is
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/ff893196191a0-creator-iq-ecommerce-ap-is
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/f8d0b276f1a9d-creator-iq-crm-link-tracking-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/0a94acde695e7-conversion-metrics-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/62c9deaa94659-creator-iq-safe-iq-brand-safety-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/ce6e15986dd02-creator-iq-brand-safety-draft
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/2359b1f62de77-creator-iq-payments-api
📖
Documentation
https://apidocs.creatoriq.com/docs/ciq-api-documentation/052262c05afe6-overview

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/creatoriq-brand-safety-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

creatoriq-brand-safety-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: CreatorIQ SafeIQ Brand Safety API
  description: 'SafeIQ brand safety timeline API for retrieving a historical, paginated collection of posts where brand safety issues were detected. Works together with the SafeIQ brand safety webhook: the webhook delivers notifications, and this REST API provides full details and reconciliation.'
  termsOfService: https://www.creatoriq.com/legal/terms-of-use
  contact:
    name: CreatorIQ
    url: https://www.creatoriq.com/
    email: support@creatoriq.com
  license:
    url: https://www.apache.org/licenses/LICENSE-2.0.html
    name: Apache 2.0
servers:
- url: https://apis.creatoriq.com
  description: Live
security:
- apiKey: []
tags:
- name: Brand Safety
  description: SafeIQ brand safety timeline API
paths:
  /brand-safety/v1/posts:
    get:
      tags:
      - Brand Safety
      summary: List brand safety posts
      description: Returns a paginated collection of posts where brand safety issues were detected. Supports filtering by creator, detection date, publish date, platform, and severity. Access is implicitly scoped to the authenticated partner and division.
      operationId: listBrandSafetyPosts
      parameters:
      - name: creator_id
        in: query
        description: Filters posts by creator.
        required: false
        schema:
          type: string
          examples:
          - '20985049'
        examples:
          default:
            value: '20985049'
      - name: detected_after
        in: query
        description: Returns posts where brand safety issues were detected after this timestamp. Recommended for incremental syncs.
        required: false
        schema:
          type: string
          format: date-time
          examples:
          - '2026-05-01T00:00:00Z'
        examples:
          default:
            value: '2026-05-01T00:00:00Z'
      - name: detected_before
        in: query
        description: Returns posts where brand safety issues were detected before this timestamp.
        required: false
        schema:
          type: string
          format: date-time
          examples:
          - '2026-06-01T00:00:00Z'
        examples:
          default:
            value: '2026-06-01T00:00:00Z'
      - name: published_after
        in: query
        description: Returns posts published on the social network after this timestamp.
        required: false
        schema:
          type: string
          format: date-time
          examples:
          - '2026-05-01T00:00:00Z'
        examples:
          default:
            value: '2026-05-01T00:00:00Z'
      - name: published_before
        in: query
        description: Returns posts published on the social network before this timestamp.
        required: false
        schema:
          type: string
          format: date-time
          examples:
          - '2026-06-01T00:00:00Z'
        examples:
          default:
            value: '2026-06-01T00:00:00Z'
      - name: platform
        in: query
        description: Filters by social platform, for example youtube, tiktok, instagram.
        required: false
        schema:
          type: string
          examples:
          - tiktok
        examples:
          default:
            value: tiktok
      - name: severity
        in: query
        description: Filters by severity. Accepts a comma-separated subset of high, medium, low.
        required: false
        schema:
          type: string
          examples:
          - high,medium
        examples:
          default:
            value: high,medium
      - name: limit
        in: query
        description: Number of posts to return.
        required: false
        schema:
          type: integer
          default: 100
          examples:
          - 100
        examples:
          default:
            value: 100
      - name: cursor
        in: query
        description: Pagination cursor returned from the previous response.
        required: false
        schema:
          type: string
          examples:
          - eyJuYW1lIjoiSm9yZGFuIExlZSIsImlkIjoiMTAwNSJ9
        examples:
          default:
            value: eyJuYW1lIjoiSm9yZGFuIExlZSIsImlkIjoiMTAwNSJ9
      responses:
        '200':
          $ref: '#/components/responses/BrandSafetyPostsCollection'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/Creator404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - apiKey: []
      servers:
      - url: https://apis.creatoriq.com
        description: Live
  /brand-safety/v1/posts/{post_id}:
    get:
      tags:
      - Brand Safety
      summary: Get brand safety post details
      description: Returns full details for a single post, including the complete array of brand safety issues. Webhook consumers use the api_details_link from the webhook payload to call this endpoint.
      operationId: getBrandSafetyPost
      parameters:
      - name: post_id
        in: path
        description: Public post identifier.
        required: true
        schema:
          type: string
          examples:
          - post_12345
        examples:
          default:
            value: post_12345
      responses:
        '200':
          $ref: '#/components/responses/BrandSafetyPostDetail'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - apiKey: []
      servers:
      - url: https://apis.creatoriq.com
        description: Live
components:
  schemas:
    BrandSafetyPost:
      type: object
      properties:
        object:
          const: post
          description: Object type.
          examples:
          - post
        id:
          type: string
          description: Public post identifier.
          examples:
          - post_12345
        creator_id:
          type: string
          description: Creator identifier.
          examples:
          - '20985049'
        social_account_id:
          type: string
          description: Social account identifier.
          examples:
          - abc123
        platform:
          type: string
          description: Social platform.
          examples:
          - youtube
        caption:
          type: string
          description: Post caption or text, if available.
          examples:
          - Check out my latest vlog...
        ai_summary:
          type: string
          description: AI-generated summary of the post content.
          examples:
          - A post set at a crowded outdoor festival with live music.
        links:
          $ref: '#/components/schemas/BrandSafetyLinks'
        published_at:
          type: string
          description: When the post was published on the social network.
          format: date-time
          readOnly: true
          examples:
          - '2026-05-19T07:00:00Z'
        issues:
          type: array
          description: Array of brand safety issue objects.
          items:
            $ref: '#/components/schemas/BrandSafetyIssue'
      required:
      - object
      - id
      - creator_id
      - platform
      - issues
    BrandSafetyPostsCollection:
      type: object
      properties:
        object:
          const: collection
          description: Object type.
          examples:
          - collection
        url:
          type: string
          description: Relative URL of the request that produced the collection.
          examples:
          - /brand-safety/v1/posts?creator_id=20985049
        data:
          type: array
          description: Posts in this page of the collection. Always present, never null.
          items:
            $ref: '#/components/schemas/BrandSafetyPost'
        has_more:
          type: boolean
          description: Whether more posts are available beyond this page.
          examples:
          - true
        next_cursor:
          type:
          - string
          - 'null'
          description: Cursor to pass as the cursor query parameter to fetch the next page.
          examples:
          - eyJuYW1lIjoiSm9yZGFuIExlZSIsImlkIjoiMTAwNSJ9
      required:
      - object
      - data
      - has_more
    BrandSafetyIssue:
      type: object
      properties:
        object:
          const: brand_safety_issue
          description: Object type.
          examples:
          - brand_safety_issue
        id:
          type: string
          description: Public issue identifier.
          examples:
          - issue_67890
        category:
          type: string
          description: Issue category, for example profanity, violence, adult_content.
          examples:
          - profanity
        severity:
          type: string
          enum:
          - high
          - medium
          - low
          description: Issue severity.
          examples:
          - high
        description:
          type: string
          description: Human-readable issue description.
          examples:
          - Strong language detected in the video audio.
        locations:
          type: array
          description: Locations where the issue was detected, such as timestamps or caption.
          examples:
          - - 01:23
            - 02:45
            - caption
          items:
            type: string
        detected_at:
          type: string
          description: When the issue was detected.
          format: date-time
          readOnly: true
          examples:
          - '2026-05-19T07:12:35Z'
      required:
      - object
      - id
      - category
      - severity
    BrandSafetyPostDetail:
      description: Full details for a single brand safety post.
      allOf:
      - $ref: '#/components/schemas/BrandSafetyPost'
      - type: object
        properties:
          last_issue_detected_at:
            type: string
            description: Timestamp of the most recently detected brand safety issue for the post.
            format: date-time
            readOnly: true
            examples:
            - '2026-05-19T07:12:35Z'
          highest_severity:
            type: string
            enum:
            - high
            - medium
            - low
            description: Highest issue severity detected for the post.
            examples:
            - high
          highest_severity_category:
            type: string
            description: Category associated with the highest-severity issue.
            examples:
            - profanity
          issue_count:
            type: integer
            description: Total number of issues detected for the post.
            examples:
            - 2
        required:
        - highest_severity
        - issue_count
    BrandSafetyLinks:
      type: object
      description: URLs associated with the post.
      properties:
        post_url:
          type: string
          description: Public post URL.
          examples:
          - https://youtube.com/watch?v=abc123
        thumbnail_url:
          type: string
          description: Thumbnail URL, if available.
          examples:
          - https://static-resources.creatoriq.com/instagram-stories/thumbs/3920090489626404416.jpg
        api_details_link:
          type: string
          description: API URL for retrieving full post details.
          examples:
          - https://apis.creatoriq.com/brand-safety/v1/posts/post_12345
  responses:
    '404':
      description: The requested post was not found.
    BrandSafetyPostDetail:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandSafetyPostDetail'
    BrandSafetyPostsCollection:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BrandSafetyPostsCollection'
    '500':
      description: Internal server error
    '400':
      description: Bad Request
    Creator404:
      description: No creator was found matching the supplied creator_id.
    '403':
      description: Access was denied due to insufficient access permissions.
    '401':
      description: The request could not be completed due to invalid API credentials.
  securitySchemes:
    bearerAuth:
      type: http
      description: 'Format: Authorization: Bearer {api_key}'
      scheme: bearer
    apiKey:
      type: apiKey
      name: x-api-key
      in: header