openapi: 3.2.0 info: title: Adsmom Insights · TikTok API description: Stable REST API for tracked ad intelligence across Meta, TikTok, and Google. Authenticate with OAuth 2.0 client_credentials. version: '1.0' contact: {} servers: - url: / tags: - name: Insights · TikTok paths: /api/v1/insights/tiktok/advertisers: get: operationId: listTiktokAdvertisers parameters: [] responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/Advertiser' security: - oauth: [] summary: List your tracked TikTok advertisers tags: - Insights · TikTok post: operationId: trackTiktokAdvertiser parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TiktokTrackBody' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/TrackedAdvertiser' security: - oauth: [] summary: Track a TikTok advertiser tags: - Insights · TikTok /api/v1/insights/tiktok/advertisers/{id_token}: get: operationId: getTiktokAdvertiser parameters: - name: id_token required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Advertiser' security: - oauth: [] summary: Get a tracked TikTok advertiser tags: - Insights · TikTok delete: operationId: untrackTiktokAdvertiser parameters: - name: id_token required: true in: path schema: type: string responses: '204': description: '' security: - oauth: [] summary: Untrack a TikTok advertiser tags: - Insights · TikTok /api/v1/insights/tiktok/advertisers/{id_token}/summary: get: operationId: getTiktokAdvertiserSummary parameters: - name: id_token required: true in: path schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/AdvertiserInsight' security: - oauth: [] summary: AI insight summary for a tracked TikTok advertiser tags: - Insights · TikTok /api/v1/insights/tiktok/advertisers/{id_token}/reports/weekly: get: operationId: getTiktokAdvertiserWeeklyReport parameters: - name: id_token required: true in: path schema: type: string - name: week_start required: false in: query description: Week start date (ISO 8601). Omit for the latest report. schema: type: string responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/WeeklyReport' security: - oauth: [] summary: Weekly report for a tracked TikTok advertiser tags: - Insights · TikTok components: schemas: AdvertiserInsight: type: object properties: gid: type: string example: gid://adsmom/tiktok/advertiser/7100 id_token: type: string example: tiktok.advertiser.7100 platform: type: string enum: - meta - tiktok - google - linkedin status: type: string description: Generation status (e.g. completed, pending). generated_at: type: - string - 'null' total_ads_analyzed: type: - number - 'null' page_summary: type: - object - 'null' description: AI-generated; structure may evolve. ad_analysis: type: - object - 'null' description: AI-generated; structure may evolve. initial_assessment: type: - object - 'null' description: AI-generated; structure may evolve. recommendations: type: - object - 'null' description: AI-generated; structure may evolve. required: - gid - id_token - platform - status - generated_at - total_ads_analyzed - page_summary - ad_analysis - initial_assessment - recommendations TrackedAdvertiser: type: object properties: gid: type: string example: gid://adsmom/tiktok/advertiser/7100 id_token: type: string example: tiktok.advertiser.7100 platform: type: string enum: - meta - tiktok - google - linkedin name: type: string example: Kaufland external_id: type: - string - 'null' description: Platform-native business id, when resolved. is_active: type: boolean example: true pending_ingest: type: boolean description: True when the ingest crawl has not completed yet. tracked_at: type: - string - 'null' required: - gid - id_token - platform - name - external_id - is_active - pending_ingest - tracked_at TiktokTrackBody: type: object properties: ad_id: type: string description: A TikTok ad api_id; the parent advertiser is resolved from it server-side. required: - ad_id WeeklyReport: type: object properties: gid: type: string example: gid://adsmom/tiktok/advertiser/7100 id_token: type: string example: tiktok.advertiser.7100 platform: type: string enum: - meta - tiktok - google - linkedin week_start: type: string example: '2026-06-15' week_end: type: string example: '2026-06-21' created_at: type: - string - 'null' report: type: - object - 'null' description: AI-generated; structure may evolve. metrics: type: - object - 'null' previous_metrics: type: - object - 'null' required: - gid - id_token - platform - week_start - week_end - created_at - report - metrics - previous_metrics Advertiser: type: object properties: gid: type: string description: Canonical global id. Use the slash-free form in path params. example: gid://adsmom/tiktok/advertiser/123456 id_token: type: string description: Slash-free id token for use in URL path segments. example: tiktok.advertiser.123456 platform: type: string enum: - meta - tiktok - google - linkedin example: tiktok name: type: string description: Advertiser / page display name. example: Kaufland required: - gid - id_token - platform - name securitySchemes: oauth: scheme: bearer bearerFormat: JWT type: http