---
title: "Create Ad Platform"
method: POST
path: "/ad_platforms"
---

# Create Ad Platform

`POST /ad_platforms`

## Headers

- `Authorization` string, nullable
- `X-User-Id` string, nullable
- `X-Posthog-Session-Id` string

## Cookies

- `session_id` string, nullable

## Request body

- CreateAdPlatformSchema
  - `name` string, required
  - `config` union, required
    - AmazonAdsPlatformConfig
      - `app` 'amazon'
      - `access_token` string, password, required
      - `refresh_token` string, password, required
      - `profile_id` string, required
      - `timezone` string, required
      - `region` 'NA' | 'EU' | 'FE', required
    - AppLovinAdPlatformConfig
      - `app` 'applovin'
      - `api_key` string, password, required
    - AttentiveAdPlatformConfig
      - `app` 'attentive'
      - `sftp_host` string
      - `sftp_username` string, required
      - `sftp_password` EncryptedStr, required
        - `enc` string, password, required
      - `currency` string
    - BingAdsPlatformConfig
      - `app` 'bing'
      - `refresh_token` string, password, required
      - `account_id` integer, required
      - `customer_id` integer, required
      - `conversion_events` string[], nullable
      - `oauth_version` 1 | 2
    - CriteoAdPlatformConfig
      - `app` 'criteo'
      - `refresh_token` string, password, required
      - `advertiser_id` string, required
      - `currency` string
    - DummyAdPlatformConfig
      - `app` 'dummy'
      - `trigger_error` boolean, nullable
      - `sleep` integer
      - `secret` string, password, nullable
    - FacebookAdPlatformConfig
      - `app` 'fb'
      - `access_token` string, password, required
      - `ad_account_id` string, required
      - `hourly_breakdown` boolean
    - KlaviyoAdPlatformConfig
      - `app` 'klaviyo'
      - `conversion_source_category` 'api' | 'integration'
      - `relevant_conversion_metrics` KlaviyoConversionMetric[]
        - `id` string, required
        - `name` string, required
        - `source` string, required
      - `refresh_token` string, password, required
    - GoogleAdsAdPlatformConfig
      - `app` 'google_ads'
      - `refresh_token` string, password, required
      - `customer_id` string, required
      - `manager_customer_id` string, nullable
    - GoogleSheetsAdPlatformConfig
      - `app` 'google_sheets'
      - `refresh_token` string, password, nullable
      - `spreadsheet_id` string, required
      - `sheet_name` string, nullable
      - `header_row` integer, nullable
      - `date_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `spend_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `channel_group_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `channel_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `campaign_name_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `adset_name_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `go_live_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `currency_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `conversion_columns` ConversionColumnPair[]
        - `conversions_column` union
          - DateColumn
            - `type` 'date'
            - `value` string, required
          - FixedString
            - `type` 'fixed'
            - `value` string, required
          - StringColumn
            - `type` 'string'
            - `value` string, required
          - BooleanColumn
            - `type` 'boolean'
            - `value` string, required
            - `true_comparison` string, nullable
          - NumberColumn
            - `type` 'number'
            - `value` string, required
          - SelectColumn
            - `type` 'select'
            - `value` string, required
        - `revenue_column` union
          - DateColumn
            - `type` 'date'
            - `value` string, required
          - FixedString
            - `type` 'fixed'
            - `value` string, required
          - StringColumn
            - `type` 'string'
            - `value` string, required
          - BooleanColumn
            - `type` 'boolean'
            - `value` string, required
            - `true_comparison` string, nullable
          - NumberColumn
            - `type` 'number'
            - `value` string, required
          - SelectColumn
            - `type` 'select'
            - `value` string, required
    - ImpactAdPlatformConfig
      - `app` 'impact'
      - `account_sid` string, required
      - `auth_token` string, password, required
    - OutbrainAdPlatformConfig
      - `app` 'outbrain'
      - `username` string, required
      - `password` EncryptedStr, required
        - `enc` string, password, required
      - `ad_account_id` string, required
      - `conversion_events` string[], required
      - `api_token` string, password, nullable
    - PinterestAdPlatformConfig
      - `app` 'pinterest'
      - `refresh_token` string, password, required
      - `ad_account_id` string, required
    - RedditAdPlatformConfig
      - `app` 'reddit'
      - `refresh_token` string, password, required
      - `ad_account_id` string, required
    - SnapchatAdPlatformConfig
      - `app` 'snapchat'
      - `refresh_token` string, password, required
      - `ads_account_id` string, required
      - `profile_id` string, nullable
      - `organization_id` string, nullable
    - TaboolaAdPlatformConfig
      - `app` 'taboola'
      - `refresh_token` string, password, required
      - `account_id` string, required
    - TiktokAdPlatformConfig
      - `app` 'tiktok'
      - `access_token` string, password, required
      - `ad_account_id` string, required
    - TapjoyAdPlatformConfig
      - `app` 'tapjoy'
      - `reporting_api_key` string, password, required
    - OpenAIAdsAdPlatformConfig
      - `app` 'openai_ads'
      - `api_key` string, password, required
    - NorthbeamAdPlatformConfig
      - `app` 'northbeam'
      - `api_key` string, password, required
      - `client_id` string, required
      - `currency` string
      - `timezone` string
      - `breakdown_values` object
  - `version` integer, nullable

## Response `200`

Successful Response

- AdPlatformResponseSchema
  - `name` string, required
  - `config` union, required
    - AmazonAdsPlatformConfig
      - `app` 'amazon'
      - `access_token` string, password, required
      - `refresh_token` string, password, required
      - `profile_id` string, required
      - `timezone` string, required
      - `region` 'NA' | 'EU' | 'FE', required
    - AppLovinAdPlatformConfig
      - `app` 'applovin'
      - `api_key` string, password, required
    - AttentiveAdPlatformConfig
      - `app` 'attentive'
      - `sftp_host` string
      - `sftp_username` string, required
      - `sftp_password` EncryptedStr, required
        - `enc` string, password, required
      - `currency` string
    - BingAdsPlatformConfig
      - `app` 'bing'
      - `refresh_token` string, password, required
      - `account_id` integer, required
      - `customer_id` integer, required
      - `conversion_events` string[], nullable
      - `oauth_version` 1 | 2
    - CriteoAdPlatformConfig
      - `app` 'criteo'
      - `refresh_token` string, password, required
      - `advertiser_id` string, required
      - `currency` string
    - DummyAdPlatformConfig
      - `app` 'dummy'
      - `trigger_error` boolean, nullable
      - `sleep` integer
      - `secret` string, password, nullable
    - FacebookAdPlatformConfig
      - `app` 'fb'
      - `access_token` string, password, required
      - `ad_account_id` string, required
      - `hourly_breakdown` boolean
    - KlaviyoAdPlatformConfig
      - `app` 'klaviyo'
      - `conversion_source_category` 'api' | 'integration'
      - `relevant_conversion_metrics` KlaviyoConversionMetric[]
        - `id` string, required
        - `name` string, required
        - `source` string, required
      - `refresh_token` string, password, required
    - GoogleAdsAdPlatformConfig
      - `app` 'google_ads'
      - `refresh_token` string, password, required
      - `customer_id` string, required
      - `manager_customer_id` string, nullable
    - GoogleSheetsAdPlatformConfig
      - `app` 'google_sheets'
      - `refresh_token` string, password, nullable
      - `spreadsheet_id` string, required
      - `sheet_name` string, nullable
      - `header_row` integer, nullable
      - `date_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `spend_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `channel_group_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `channel_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `campaign_name_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `adset_name_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `go_live_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `currency_column` union
        - DateColumn
          - `type` 'date'
          - `value` string, required
        - FixedString
          - `type` 'fixed'
          - `value` string, required
        - StringColumn
          - `type` 'string'
          - `value` string, required
        - BooleanColumn
          - `type` 'boolean'
          - `value` string, required
          - `true_comparison` string, nullable
        - NumberColumn
          - `type` 'number'
          - `value` string, required
        - SelectColumn
          - `type` 'select'
          - `value` string, required
      - `conversion_columns` ConversionColumnPair[]
        - `conversions_column` union
          - DateColumn
            - `type` 'date'
            - `value` string, required
          - FixedString
            - `type` 'fixed'
            - `value` string, required
          - StringColumn
            - `type` 'string'
            - `value` string, required
          - BooleanColumn
            - `type` 'boolean'
            - `value` string, required
            - `true_comparison` string, nullable
          - NumberColumn
            - `type` 'number'
            - `value` string, required
          - SelectColumn
            - `type` 'select'
            - `value` string, required
        - `revenue_column` union
          - DateColumn
            - `type` 'date'
            - `value` string, required
          - FixedString
            - `type` 'fixed'
            - `value` string, required
          - StringColumn
            - `type` 'string'
            - `value` string, required
          - BooleanColumn
            - `type` 'boolean'
            - `value` string, required
            - `true_comparison` string, nullable
          - NumberColumn
            - `type` 'number'
            - `value` string, required
          - SelectColumn
            - `type` 'select'
            - `value` string, required
    - ImpactAdPlatformConfig
      - `app` 'impact'
      - `account_sid` string, required
      - `auth_token` string, password, required
    - OutbrainAdPlatformConfig
      - `app` 'outbrain'
      - `username` string, required
      - `password` EncryptedStr, required
        - `enc` string, password, required
      - `ad_account_id` string, required
      - `conversion_events` string[], required
      - `api_token` string, password, nullable
    - PinterestAdPlatformConfig
      - `app` 'pinterest'
      - `refresh_token` string, password, required
      - `ad_account_id` string, required
    - RedditAdPlatformConfig
      - `app` 'reddit'
      - `refresh_token` string, password, required
      - `ad_account_id` string, required
    - SnapchatAdPlatformConfig
      - `app` 'snapchat'
      - `refresh_token` string, password, required
      - `ads_account_id` string, required
      - `profile_id` string, nullable
      - `organization_id` string, nullable
    - TaboolaAdPlatformConfig
      - `app` 'taboola'
      - `refresh_token` string, password, required
      - `account_id` string, required
    - TiktokAdPlatformConfig
      - `app` 'tiktok'
      - `access_token` string, password, required
      - `ad_account_id` string, required
    - TapjoyAdPlatformConfig
      - `app` 'tapjoy'
      - `reporting_api_key` string, password, required
    - OpenAIAdsAdPlatformConfig
      - `app` 'openai_ads'
      - `api_key` string, password, required
    - NorthbeamAdPlatformConfig
      - `app` 'northbeam'
      - `api_key` string, password, required
      - `client_id` string, required
      - `currency` string
      - `timezone` string
      - `breakdown_values` object
  - `version` integer, nullable
  - `id` integer, required
  - `status` 'starting' | 'running' | 'healthy' | 'unhealthy' | 'deferred' | 'cancelled'
  - `current_progress` number, nullable
  - `active` boolean, required
  - `last_failure` AdSpendPullerFailure
    - `type` 'authentication_error' | 'connection_error' | 'response_error' | 'configuration_error' | 'unknown_error' | 'invalid_ad', required
    - `description` string, nullable
    - `status_code` union
      - integer
      - string
    - `message` string, nullable
  - `creator` AccountSchema
    - `id` integer, required
    - `email` string, required
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `profile_picture_url` string, nullable
  - `created_at` string, date-time, required
  - `ad_metadata_failure` AdSpendPullerFailure
    - `type` 'authentication_error' | 'connection_error' | 'response_error' | 'configuration_error' | 'unknown_error' | 'invalid_ad', required
    - `description` string, nullable
    - `status_code` union
      - integer
      - string
    - `message` string, nullable
  - `ad_metadata_job_last_run` string, date-time, nullable
  - `ad_spend_tasks` JobTaskResponseSchema[]
    - `id` integer, required
    - `status` 'starting' | 'running' | 'healthy' | 'unhealthy' | 'deferred' | 'cancelled'
    - `current_progress` number, nullable
    - `last_failure` AdSpendPullerFailure
      - `type` 'authentication_error' | 'connection_error' | 'response_error' | 'configuration_error' | 'unknown_error' | 'invalid_ad', required
      - `description` string, nullable
      - `status_code` union
        - integer
        - string
      - `message` string, nullable
    - `interval_seconds` integer, nullable
    - `cursor` string, nullable
    - `config` union, required
      - AdSpendTaskConfig
        - `type` 'ad_spend'
        - `lookback_interval_seconds` integer, nullable
        - `backdate_interval_seconds` integer, nullable
      - AdMetadataTaskConfig
        - `type` 'ad_metadata'
  - `ad_metadata_tasks` JobTaskResponseSchema[]
    - `id` integer, required
    - `status` 'starting' | 'running' | 'healthy' | 'unhealthy' | 'deferred' | 'cancelled'
    - `current_progress` number, nullable
    - `last_failure` AdSpendPullerFailure
      - `type` 'authentication_error' | 'connection_error' | 'response_error' | 'configuration_error' | 'unknown_error' | 'invalid_ad', required
      - `description` string, nullable
      - `status_code` union
        - integer
        - string
      - `message` string, nullable
    - `interval_seconds` integer, nullable
    - `cursor` string, nullable
    - `config` union, required
      - AdSpendTaskConfig
        - `type` 'ad_spend'
        - `lookback_interval_seconds` integer, nullable
        - `backdate_interval_seconds` integer, nullable
      - AdMetadataTaskConfig
        - `type` 'ad_metadata'

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/runconverge/apis/fastapi.md) · [All operations](https://skmtc.dev/runconverge/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/runconverge/fastapi/revisions/1452e350bd1d/schema)
