---
title: "Sync specific spark codes to TikTok"
method: POST
path: "/gmv-max/spark-codes/sync"
tags: ["GMV Max"]
---

# Sync specific spark codes to TikTok

`POST /gmv-max/spark-codes/sync`

Synchronously authorise the listed spark codes against the shop's TikTok Business ad account. Each code fires one TikTok ``/tt_video/authorize/`` call:

* On success → code's ``sync_status`` flips to ``synced``.
* On TikTok QPS / rate-limit → code is left ``pending`` so the offline CRJ retries it; the response counts this in ``queued``.
* On hard error → ``failed`` with the error string.

Up to 100 codes per request. Shops without an active TikTok Business connection return 422 ``TIKTOK_NOT_CONNECTED``. Single shop only.

## Headers

- `Idempotency-Key` string, nullable
- `X-Dry-Run` string, nullable

## Request body

- SparkCodeSyncRequestPublic — ``POST /public/v1/gmv-max/spark-codes/sync`` — sync specific codes immediately. Calls TikTok synchronously and returns per-code results.
  - `spark_codes` string[], required — Up to 100 spark codes to sync in one request. Each code fires one TikTok `/tt_video/authorize/` call; rate-limited codes are left as `pending` so the offline CRJ picks them up. Whitespace is stripped; blank or duplicate entries are rejected with 422.

## Response `200`

Sync attempted; see `results` for per-code outcome.

- unknown

## Other responses

- `403` — API key lacks `read_write` scope.
- `409` — Idempotency-Key conflict.
- `422` — Shop not connected to TikTok Business.
- `429` — Write rate limit exceeded.

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) · [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/reacherapp/reacher-data-api/revisions/5eefff009b5b/schema)
