---
title: "TikTok post URL resolved event"
method: POST
path: "post.tiktok.url_resolved"
tags: ["Webhook Events"]
---

# TikTok post URL resolved event

`POST post.tiktok.url_resolved` (webhook)

Fired when an already-published TikTok platform entry gets its public
URL backfilled. TikTok exposes the numeric video id asynchronously
(often minutes after PUBLISH_COMPLETE), so the terminal events can
carry an empty `publishedUrl` for TikTok. This event delivers
`platform.publishedUrl` and the resolved `platform.platformPostId`
once available. At most once per platform target; never fires for
drafts or private posts (no public URL exists). Payload shape is
identical to `post.platform.published`.

## Payload

- WebhookPayloadPostPlatform — Webhook payload for the per-platform terminal events `post.platform.published` and `post.platform.failed`, for `post.platform.deleted` (same shape, fired when Zernio's background sync detects that a platform target published through Zernio was later deleted on the platform; poll-driven ~hourly, not real-time), and for `post.tiktok.url_resolved` (same shape, fired when a published TikTok post's public URL is backfilled). Terminal events fire once per platform target inside a post as that platform reaches a terminal state (published or permanent failure). The `post` envelope mirrors the shape of `WebhookPayloadPost` so consumers can reuse rendering logic; the `platform` block identifies which specific platform transitioned; the `account` block identifies the connected social account behind that platform-write.
  - `id` string, required — Stable webhook event ID.
  - `event` 'post.platform.published' | 'post.platform.failed' | 'post.platform.deleted' | 'post.tiktok.url_resolved', required
  - `post` object, required
    - `id` string, required
    - `content` string, required
    - `status` string, required — Post-level status AT FIRE TIME. May still be `publishing` if other platforms haven't terminated; check this field rather than assuming.
    - `scheduledFor` string, date-time, required
    - `publishedAt` string, date-time
    - `platforms` object[], required
      - `platform` string, required
      - `status` string, required
      - `accountId` string — SocialAccount id this platform target published through. On post.platform.* events see also the top-level `account` block.
      - `platformPostId` string
      - `publishedUrl` string
      - `error` string
    - `metadata` object — The free-form `metadata` object supplied when the post was created, echoed back so you can map events onto your own records. Omitted when the post was created without it.
  - `platform` object, required — The specific platform that just transitioned to a terminal state.
    - `name` string, required — Platform name (e.g. `twitter`, `tiktok`, `instagram`).
    - `status` 'published' | 'failed' | 'deleted', required — Terminal status this event fires on. Matches the event suffix.
    - `platformPostId` string — Platform-native post id. Present on `published` and `deleted`, absent on `failed`.
    - `publishedUrl` string — Public URL to the platform-side post. Present on `published` (when the platform exposes one and it is not a draft) and on `deleted` (when one was recorded at publish time).
    - `error` string — Error message from the platform. Present on `failed` only.
    - `deletedAt` string, date-time — When the platform-side deletion was detected by Zernio sync (ISO 8601). Present only on `post.platform.deleted`.
  - `account` object, required — The connected social account the platform-write went through.
    - `accountId` string, required
    - `platform` string, required
    - `username` string, required
    - `displayName` string
  - `timestamp` string, date-time, required

## Acknowledgement `200`

Webhook received successfully

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/revisions/5bcceb4c15ba/schema)
