Overview
TikTok Ads data synced to V4MOS.AI, through the integration's own endpoints
The V4MOS.AI TikTok Ads API gives you the raw records synced from the TikTok Ads accounts connected to your organization: ad accounts, campaigns, ad groups, ads and their daily performance reports. Rows come as they were synced, with the warehouse column names (snake_case), so you can load them straight into your BI. All endpoints use the /v1/tiktok-ads prefix and the same authentication, pagination and response format.
Getting started
Base URL: https://data.v4mos.ai. Every call requires your API credentials and the organizationId — see Authentication.
- Connect TikTok Ads in app.v4mos.ai (Connected accounts) and wait for the first sync.
- Call any endpoint below with your
organizationId, for exampleGET /v1/tiktok-ads/ad-accounts?organizationId=…. - Every row carries
integration_idandintegration_name: the connected account it came from. To read a single account, pass that value asintegrationId.
Available endpoints
- getAd accounts
/v1/tiktok-ads/ad-accountsOne row per advertiser account: company, currency, timezone, status and balance. - getCampaigns
/v1/tiktok-ads/campaignsOne row per campaign: objective, budget, bidding and status settings. - getAd groups
/v1/tiktok-ads/ad-groupsOne row per ad group: optimization goal, billing event, bid, budget, placements and schedule. - getAds
/v1/tiktok-ads/adsOne row per ad: format, creative type, landing page, call to action and status. - getCampaign daily report
/v1/tiktok-ads/campaigns-daily-reportOne row per campaign per day: spend, impressions, clicks, conversions, results and video views. - getAd group daily report
/v1/tiktok-ads/ad-groups-daily-reportOne row per ad group per day: spend, impressions, clicks, conversions, results and video views. - getAd daily report
/v1/tiktok-ads/ads-daily-reportOne row per ad per day: spend, impressions, clicks, conversions, results and video views. - getAd page events daily report
/v1/tiktok-ads/ads-page-events-daily-reportOne row per ad per day with website events tracked by the TikTok pixel: payments, registrations, product views, add to cart, checkouts and…
Resources
| Endpoint | What one row is | dateFrom / dateTo filter |
|---|---|---|
GET /v1/tiktok-ads/ad-accounts | One row per advertiser account: company, currency, timezone, status and balance. | — |
GET /v1/tiktok-ads/campaigns | One row per campaign: objective, budget, bidding and status settings. | — |
GET /v1/tiktok-ads/ad-groups | One row per ad group: optimization goal, billing event, bid, budget, placements and schedule. | — |
GET /v1/tiktok-ads/ads | One row per ad: format, creative type, landing page, call to action and status. | — |
GET /v1/tiktok-ads/campaigns-daily-report | One row per campaign per day: spend, impressions, clicks, conversions, results and video views. | stat_time_day |
GET /v1/tiktok-ads/ad-groups-daily-report | One row per ad group per day: spend, impressions, clicks, conversions, results and video views. | stat_time_day |
GET /v1/tiktok-ads/ads-daily-report | One row per ad per day: spend, impressions, clicks, conversions, results and video views. | stat_time_day |
GET /v1/tiktok-ads/ads-page-events-daily-report | One row per ad per day with website events tracked by the TikTok pixel: payments, registrations, product views, add to cart, checkouts and wishlist adds, with their values. | stat_time_day |
Pagination and filters
page(default 1) andlimit(default 500, max 5000).meta.hasNextPagesays whether another page exists; rows come in a stable order, so walk the pages until it isfalse.dateFrom/dateTo(YYYY-MM-DD, inclusive) filter by the date column shown in the table above. Resources without one reject them.integrationIdkeeps the rows of one connected account.- Answers are cached for 30 minutes and the data is synced once a day — see Data sync.
Response format
{
"data": [{ "...": "one object per row, with the columns listed on each endpoint" }],
"meta": {
"page": 1,
"limit": 500,
"hasNextPage": true,
"hasPreviousPage": false
}
}Amounts and large counters (fields with format: decimal or format: int64 in each endpoint schema) come as strings, e.g. "125.50", so no precision is lost. Convert them to a decimal type on your side.