late 0.0.1289

API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema). Request ids: responses carry an X-Request-Id header with the id we log the request under. Quote it when reporting a problem. A valid x-request-id you send is reused as that id.
Documentation
# PlatformTarget

## Properties

Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**platform** | Option<**String**> | Supported values: twitter, threads, instagram, youtube, facebook, linkedin, pinterest, reddit, tiktok, bluesky, googlebusiness, telegram | [optional]
**account_id** | Option<[**models::PlatformTargetAccountId**](PlatformTargetAccountId.md)> |  | [optional]
**custom_content** | Option<**String**> | Platform-specific text override. When set, this content is used instead of the top-level post content for this platform. Useful for tailoring captions per platform (e.g. keeping tweets under 280 characters). | [optional]
**custom_media** | Option<[**Vec<models::MediaItem>**](MediaItem.md)> |  | [optional]
**scheduled_for** | Option<**String**> | Optional per-platform scheduled time override (uses post.scheduledFor when omitted) | [optional]
**platform_specific_data** | Option<**std::collections::HashMap<String, serde_json::Value>**> | The platform-specific options stored on this target, echoed back as sent.  Typed per platform on the way in (see the *PlatformData schemas on the request body); free-form on the way out. A response is not guaranteed to match exactly one variant, and generated clients that pick a variant by structure reject the entire response when it doesn't.  Zernio's internal publishing state (snapshots, container ids, publish stage) is never returned here. The key is omitted rather than sent as an empty object.  | [optional]
**status** | Option<**String**> | Platform-specific status: pending, processing, uploading, published, failed, cancelled (removed from the platform via POST /v1/posts/{postId}/unpublish) | [optional]
**platform_post_id** | Option<**String**> | The native post ID on the platform (populated after successful publish) | [optional]
**platform_post_url** | Option<**String**> | Public URL of the published post. Included in the response for immediate posts; for scheduled posts, fetch via GET /v1/posts/{postId} after publish time.  Empty when the platform confirmed the publish without returning an id a permalink can be built from (TikTok returns a publish id for some uploads). The TikTok reconcile cron backfills it later. If TikTok never returns one, /v1/analytics reports that entry as syncStatus unavailable.  | [optional]
**published_at** | Option<**String**> | Timestamp when the post was published to this platform. YouTube uploads a scheduled public video up to 15 minutes early as private with YouTube's own release time, so its entry is published with this set to scheduledFor, the moment the video goes public. | [optional]
**removed_from_platform_at** | Option<**String**> | Set when a successfully published post later disappears from the platform (deleted on-platform or taken down by the platform). Absent while the post is live, and cleared if it reappears.  status stays \"published\" (it reflects the publish outcome), so poll this field to detect post-publish removals. Detection runs with the analytics sync: expect up to a few hours of lag.  | [optional]
**is_trial_reel** | Option<**bool**> | Present and true only when this Instagram reel was launched as a Trial through Zernio (created with platformSpecificData.trialParams). Use it to segment trial reels in analytics.  Instagram's Graph API exposes no readable trial field, so this reflects creation-time intent only: the reel STARTED as a trial, not whether or when it graduated.  | [optional]
**trial_graduation_strategy** | Option<**TrialGraduationStrategy**> | Graduation strategy the trial reel was launched with. Present only when isTrialReel is true. (enum: MANUAL, SS_PERFORMANCE) | [optional]
**publish_attempts** | Option<**i32**> | Number of times the publishing pipeline claimed this target to publish it since it was created or last manually retried (a manual retry resets it, except on TikTok). Not the number of retries (see publishRetries). | [optional]
**publish_retries** | Option<**i32**> | Instagram only. Automatic re-sends of media_publish on the same container that Zernio scheduled after Meta answered a transient error: 30 min, 2 h and 6 h after each failure, at most 3. Absent when none was scheduled.  While the target is still processing, the latest one may not have been sent yet. Not reset by a manual retry. Independent of publishAttempts, which counts publish-leg claims.  | [optional]
**error_message** | Option<**String**> | Human-readable error message when status is failed. Contains platform-specific error details explaining why the publish failed. | [optional]
**error_category** | Option<**ErrorCategory**> | Error category for programmatic handling:  - `auth_expired`: token expired/revoked - `user_content`: wrong format/too long - `user_abuse`: rate limits/spam - `account_issue`: config problems - `platform_rejected`: policy violation - `platform_error`: 5xx/maintenance - `platform_rate_limit`: platform throttling, retried automatically - `quota_exhausted`: a shared quota pool the integration draws on is empty, including our own capacity gate in front of one. Not caused by your content or account, and safe to retry once the pool frees up. - `system_error`: Zernio infra - `unknown`  (enum: auth_expired, user_content, user_abuse, account_issue, platform_rejected, platform_error, platform_rate_limit, quota_exhausted, system_error, unknown) | [optional]
**error_source** | Option<**ErrorSource**> | Who caused the error: user (fix content/reconnect), platform (outage/API change), system (Zernio issue, rare) (enum: user, platform, system) | [optional]
**platform_error** | Option<[**models::PostPlatformError**](PostPlatformError.md)> |  | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)