/v1/call/douyin.marketing_calendarPreviewDouyin Xingtu marketing calendar API
Only on Douyin.
The Douyin Xingtu marketing calendar API returns the campaigns on Xingtu's marketing calendar over a span of time: platform events, e-commerce and seasonal moments, creative and industry campaigns, each with its name, description, kind, stage, sign-up period and running period. All at once, no paging. One call costs 3 credits ($0.006 to $0.01 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.
Last updated:
Request and response
curl https://api.socialtoai.com/v1/call/douyin.marketing_calendar \ -H "Authorization: Bearer $SOCIALTOAI_KEY" \ -H "Content-Type: application/json" \ -d '{ "since": "2026-10-01T00:00:00Z", "until": "2026-12-31T23:59:59Z" }'import osimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/call/douyin.marketing_calendar", headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"}, json={ "since": "2026-10-01T00:00:00Z", "until": "2026-12-31T23:59:59Z", },)print(response.json())# Connected over MCP? Ask in plain words.Use the Douyin Xingtu marketing calendar interface (douyin.marketing_calendar) with since: 2026-10-01T00:00:00Z, until: 2026-12-31T23:59:59Z.# Your AI calls the call tool with:{ "since": "2026-10-01T00:00:00Z", "until": "2026-12-31T23:59:59Z"}{ "op": "douyin.marketing_calendar", "platform": "douyin", "status": "ok", "items": [ { "platform": "douyin", "id": "…", "ref": null, "approx": [], "type": "entry", "entry_type": "xingtu_campaign", "title": "…", "url": null, "rank": null, "heat": null, "fields": { "description": "…", "category": "ecommerce", "stage": "open", "signup_starts_at": "2026-09-29T02:29:20.000Z", "signup_ends_at": "2026-10-31T02:29:20.000Z", "starts_at": "2026-10-10T02:29:04.000Z", "ends_at": "2026-11-20T02:29:04.000Z", "image_url": "https://example.com/…" } } ], "unavailable": [], "page": { "has_more": false }, "cost_credits": 3}- entry_type
- xingtu_campaign
- description
- …
- category
- ecommerce
- stage
- open
- signup_starts_at
- 2026-09-29T02:29:20.000Z
- signup_ends_at
- 2026-10-31T02:29:20.000Z
- starts_at
- 2026-10-10T02:29:04.000Z
Names and text were removed from the sample; the numbers are as recorded.
2 parameters.
All required.
Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| since | datetime | Required | — | Start of the span: campaigns that overlap the span are returned |
| until | datetime | Required | — | End of the span |
The fields of each item.
What Douyin cannot give is marked.
| Field | Type | Meaning |
|---|---|---|
| items[].title | string | The entry's title or name. |
| items[].url | string | A link that opens it; null where the platform's list has none. |
| items[].rank | integer | Position on a board, from 1. |
| items[].heat | integer | The platform's heat score. |
| items[].fields.description | string | What the campaign is. |
| items[].fields.category | string | The kind of campaign: a platform event, an e-commerce date, a seasonal or mood moment, creative marketing, or an industry campaign. |
| items[].fields.stage | string | How far along the campaign is: in preparation, open for sign-up, live, or ended. |
| items[].fields.signup_starts_at | string | When sign-up opens. |
| items[].fields.signup_ends_at | string | When sign-up closes. |
| items[].fields.starts_at | string | When the campaign starts. |
| items[].fields.ends_at | string | When the campaign ends. |
| items[].fields.image_url | string | The campaign's main image. |
nullFields Douyin cannot giveDouyin gives every field of this call. Where one item lacks a value, that field is null.
Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format
What to expect.
1 call per second per key, 5 after a purchase; going over is not charged. Rate limits
A failed call costs 0 credits and is never retried on its own. Error codes
Once connected over MCP, these questions use it.
Get the campaigns on Xingtu's marketing calendar over a span of time (since: 2026-10-01T00:00:00Z, until: 2026-12-31T23:59:59Z).
3 creditscall {"op":"douyin.marketing_calendar","since":"2026-10-01T00:00:00Z","until":"2026-12-31T23:59:59Z"}