TikTok Ads
Ad groups
GET
One row per ad group: optimization goal, billing event, bid, budget, placements and schedule.
This resource has no date column: dateFrom and dateTo are rejected.
Rows are sorted by adgroup_id, integration_id, inserted_at and paginated with page/limit; meta.hasNextPage says whether another page exists.
Responses are cached for 30 minutes.
ClientIdAuthClientSecretAuthheader
x-client-id<token>Client ID
header
x-client-secret<token>Client secret
organizationId*stringOrganization that owns the connected accounts.
Format
uuidintegrationId?stringOne connected account of this integration (integration_id of the rows). Omit it to read every account of the organization.
Length
length <= 255page?integerPage number, starting at 1.
Range
1 <= value <= 1000000Default
1limit?integerRows per page (max 5000).
Range
1 <= value <= 5000Default
500One page of rows
application/json- response
data*array<>meta*curl -X GET "https://example.com/v1/tiktok-ads/ad-groups?organizationId=3f2b8c1e-5d4a-4e6f-9a7b-1c2d3e4f5a6b"{ "data": [ { "organization_id": "3f2b8c1e-5d4a-4e6f-9a7b-1c2d3e4f5a6b", "integration_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d", "user_id": "123456", "document_id": "123456", "integration_name": "example", "advertiser_id": "123456", "campaign_id": "123456", "campaign_name": "example", "adgroup_id": "123456", "adgroup_name": "example", "operation_status": "example", "secondary_status": "example", "optimization_goal": "example", "optimization_event": "example", "billing_event": "example", "bid_type": "example", "budget": "125.50", "budget_mode": "example", "placement_type": "example", "placements": "example", "schedule_start_time": "example", "schedule_end_time": "example", "create_time": "example", "modify_time": "example", "inserted_at": "2026-10-01T12:00:00.000Z" } ], "meta": { "page": 1, "limit": 500, "hasNextPage": false, "hasPreviousPage": false }}