Create a Twitter Quote-Tweet Publishing Job
/v1/twitter/quote-tweetsCreates one asynchronous SpideyData quote-tweet job. This managed automation capability is not the official X API. The X auth_token is used only for this publish request and is never stored or returned. X may restrict non-API automation; review current policy and use a dedicated X account before publishing. A confirmed successful publish with a verified tweet identifier costs 50 Credits. A failed publish is released; an unknown outcome remains frozen for reconciliation and is never automatically republished.
On this page
Request example
Replace placeholders with your values. Use your Team API key for authenticated requests.
https://kieapi.comcurl -X POST "https://kieapi.com/v1/twitter/quote-tweets" \
-H "Authorization: Bearer $SPIDER_API_KEY" \
-H 'Idempotency-Key: docs-example-01' \
-H "Content-Type: application/json" \
-d '{
"auth_token": "<value>",
"tweet_text": "<value>",
"attachment_url": "<value>",
"confirm_publish": true
}'Authentication
BearerAuth
Parameters
Idempotency-Keyheader ยท string- Caller-generated key, up to 128 characters, that identifies one API Market write and its billing event. Reuse the same key only when retrying the same logical request. Replays do not create another reservation or capture.
Request body required
application/json
auth_tokenstring (password) required- Request-only X auth_token cookie. Never stored or returned.
tweet_textstring requiredattachment_urlstring (uri) required- Full x.com or twitter.com post URL.
dark_requestbooleanDefault:
falsemedia_entitiesarray of TwitterMediaEntitypossibly_sensitivebooleanDefault:
falsesemantic_annotation_idsarray of stringinclude_promoted_contentbooleanDefault:
falseconfirm_publishboolean required- Must be true for this immediate write action.
Allowed:
true
Responses
202 Twitter quote-tweet task accepted.
400 Request validation failed.
401 Missing or invalid API key.
402 The Team does not have enough available Credits for the maximum reservation.
403 Authenticated principal cannot access this resource.
409 Billing settlement requires reconciliation, or the idempotency key was reused for a different logical request.
429 Monthly quota was exhausted.
502 Upstream fetch or network failure.
503 Required runtime service is unavailable.
Schemas
Field definitions and complete validation rules for this API. Follow a type link to its definition.
TwitterQuoteTweetRequest
object
auth_tokenstring (password) required- Request-only X auth_token cookie. Never stored or returned.
tweet_textstring requiredattachment_urlstring (uri) required- Full x.com or twitter.com post URL.
dark_requestbooleanDefault:
falsemedia_entitiesarray of TwitterMediaEntitypossibly_sensitivebooleanDefault:
falsesemantic_annotation_idsarray of stringinclude_promoted_contentbooleanDefault:
falseconfirm_publishboolean required- Must be true for this immediate write action.
Allowed:
true
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"auth_token",
"tweet_text",
"attachment_url",
"confirm_publish"
],
"properties": {
"auth_token": {
"type": "string",
"format": "password",
"writeOnly": true,
"minLength": 1,
"maxLength": 4096,
"description": "Request-only X auth_token cookie. Never stored or returned."
},
"tweet_text": {
"type": "string",
"minLength": 1,
"maxLength": 280
},
"attachment_url": {
"type": "string",
"format": "uri",
"description": "Full x.com or twitter.com post URL."
},
"dark_request": {
"type": "boolean",
"default": false
},
"media_entities": {
"type": "array",
"maxItems": 4,
"items": {
"$ref": "#/components/schemas/TwitterMediaEntity"
}
},
"possibly_sensitive": {
"type": "boolean",
"default": false
},
"semantic_annotation_ids": {
"type": "array",
"maxItems": 20,
"items": {
"type": "string"
}
},
"include_promoted_content": {
"type": "boolean",
"default": false
},
"confirm_publish": {
"type": "boolean",
"enum": [
true
],
"description": "Must be true for this immediate write action."
}
}
}TwitterMediaEntity
object
media_idstring requiredtagged_usersarray of string
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"media_id"
],
"properties": {
"media_id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"tagged_users": {
"type": "array",
"maxItems": 10,
"items": {
"type": "string"
}
}
}
}TwitterJobResponse
object
jobTwitterJob required
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"job"
],
"properties": {
"job": {
"$ref": "#/components/schemas/TwitterJob"
}
}
}TwitterJob
object
Public-safe Team-scoped job without X auth_token or internal execution identifiers.
idstring requiredkindstring requiredAllowed:
"quote_tweet"statusstring requiredAllowed:
"submitting", "queued", "running", "succeeded", "failed", "unknown"requestTwitterQuoteTweetSummary requiredresultobject | nullerrorTwitterJobError or nullcreated_atstring | null (date-time)updated_atstring | null (date-time)finished_atstring | null (date-time)
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"id",
"kind",
"status",
"request"
],
"description": "Public-safe Team-scoped job without X auth_token or internal execution identifiers.",
"properties": {
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"quote_tweet"
]
},
"status": {
"type": "string",
"enum": [
"submitting",
"queued",
"running",
"succeeded",
"failed",
"unknown"
]
},
"request": {
"$ref": "#/components/schemas/TwitterQuoteTweetSummary"
},
"result": {
"type": [
"object",
"null"
],
"additionalProperties": true
},
"error": {
"anyOf": [
{
"$ref": "#/components/schemas/TwitterJobError"
},
{
"type": "null"
}
]
},
"created_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"updated_at": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"finished_at": {
"type": [
"string",
"null"
],
"format": "date-time"
}
}
}TwitterQuoteTweetSummary
object
tweet_textstring requiredattachment_urlstring requireddark_requestboolean requiredmedia_countinteger requiredpossibly_sensitiveboolean required
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"tweet_text",
"attachment_url",
"dark_request",
"media_count",
"possibly_sensitive"
],
"properties": {
"tweet_text": {
"type": "string"
},
"attachment_url": {
"type": "string"
},
"dark_request": {
"type": "boolean"
},
"media_count": {
"type": "integer",
"minimum": 0
},
"possibly_sensitive": {
"type": "boolean"
}
}
}TwitterJobError
object
codestring requiredmessagestring requiredretryableboolean required
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message",
"retryable"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"retryable": {
"type": "boolean"
}
}
}PublicErrorResponse
object
errorPublicError required
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"error"
],
"properties": {
"error": {
"$ref": "#/components/schemas/PublicError"
}
}
}PublicError
object
codestring requiredAllowed:
"seoapi_price_pending", "seoapi_unavailable", "seoapi_busy", "seoapi_not_found", "seoapi_rate_limited", "seoapi_budget_exceeded", "seoapi_idempotency_conflict", "seoapi_insufficient_credits", "seoapi_admission_failed", "seoapi_execution_interrupted", "seoapi_delivery_unknown", "seoapi_response_invalid", "seoapi_model_unsupported", "seoapi_model_options_invalid", "seoapi_provider_rejected", "seo_price_pending", "seo_provider_blocked", "seo_local_rate_limited", "seo_fallback_unavailable", "seo_fallback_budget_exceeded", "seo_pagination_expired", "seo_delivery_uncertain", "seo_auth_required", "seo_initialization_required", "seo_permission_denied", "seo_verification_required", "seo_rate_limited", "seo_upstream_unavailable", "seo_transport_failed", "seo_invalid_response", "seo_rpc_error", "seo_period_unavailable", "seo_account_unavailable", "seo_session_busy", "seo_configuration_required", "validation_error", "invalid_request", "unsupported_feature", "authentication_required", "permission_denied", "not_found", "run_not_found", "crawl_not_found", "artifact_not_found", "session_not_found", "profile_not_found", "profile_in_use", "profile_not_ready", "profile_not_cloneable", "profile_limit_reached", "profile_proxy_conflict", "proxy_not_found", "proxy_unavailable", "invalid_session_options", "invalid_query_options", "invalid_cursor", "idempotency_key_required", "browser_session_limit_reached", "browser_capacity_exhausted", "browser_start_timeout", "browser_runtime_unavailable", "session_not_active", "controller_already_connected", "browser_relay_unavailable", "precondition_required", "precondition_failed", "timeout", "run_not_ready", "artifact_expired", "quota_exceeded", "insufficient_credits", "billing_reconciliation_required", "rate_limited", "fetch_failed", "render_failed", "maps_rate_limited", "maps_challenge", "maps_schema_changed", "maps_invalid_response", "maps_transport_failed", "maps_page_budget_exhausted", "google_trends_rate_limited", "google_trends_challenge", "google_trends_explore_failed", "google_trends_widget_missing", "google_trends_related_failed", "google_trends_invalid_response", "google_trends_transport_failed", "google_trends_collection_failed", "google_ads_account_context_missing", "google_ads_batch_failed", "google_ads_browser_context_missing", "google_ads_browser_unavailable", "google_ads_collection_failed", "google_ads_page_failed", "google_ads_protocol_drift", "google_ads_rate_limited", "google_ads_timeout", "twitter_provider_unavailable", "twitter_provider_rejected", "twitter_submission_unknown", "wechat_transport_failed", "wechat_rate_limited", "wechat_invalid_response", "wechat_redirect_rejected", "wechat_verification_required", "wechat_parse_failed", "blackhatworld_search_failed", "blackhatworld_no_results", "reddit_read_failed", "idempotency_conflict", "idempotency_in_progress", "service_unavailable", "internal_error"messagestring requiredtypestring requiredAllowed:
"auth", "validation", "quota", "rate_limit", "not_found", "execution", "conflict", "internal"retryableboolean requiredrequest_idstring | nulldetailsobject
Complete schema
{
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message",
"type",
"retryable"
],
"properties": {
"code": {
"type": "string",
"enum": [
"seoapi_price_pending",
"seoapi_unavailable",
"seoapi_busy",
"seoapi_not_found",
"seoapi_rate_limited",
"seoapi_budget_exceeded",
"seoapi_idempotency_conflict",
"seoapi_insufficient_credits",
"seoapi_admission_failed",
"seoapi_execution_interrupted",
"seoapi_delivery_unknown",
"seoapi_response_invalid",
"seoapi_model_unsupported",
"seoapi_model_options_invalid",
"seoapi_provider_rejected",
"seo_price_pending",
"seo_provider_blocked",
"seo_local_rate_limited",
"seo_fallback_unavailable",
"seo_fallback_budget_exceeded",
"seo_pagination_expired",
"seo_delivery_uncertain",
"seo_auth_required",
"seo_initialization_required",
"seo_permission_denied",
"seo_verification_required",
"seo_rate_limited",
"seo_upstream_unavailable",
"seo_transport_failed",
"seo_invalid_response",
"seo_rpc_error",
"seo_period_unavailable",
"seo_account_unavailable",
"seo_session_busy",
"seo_configuration_required",
"validation_error",
"invalid_request",
"unsupported_feature",
"authentication_required",
"permission_denied",
"not_found",
"run_not_found",
"crawl_not_found",
"artifact_not_found",
"session_not_found",
"profile_not_found",
"profile_in_use",
"profile_not_ready",
"profile_not_cloneable",
"profile_limit_reached",
"profile_proxy_conflict",
"proxy_not_found",
"proxy_unavailable",
"invalid_session_options",
"invalid_query_options",
"invalid_cursor",
"idempotency_key_required",
"browser_session_limit_reached",
"browser_capacity_exhausted",
"browser_start_timeout",
"browser_runtime_unavailable",
"session_not_active",
"controller_already_connected",
"browser_relay_unavailable",
"precondition_required",
"precondition_failed",
"timeout",
"run_not_ready",
"artifact_expired",
"quota_exceeded",
"insufficient_credits",
"billing_reconciliation_required",
"rate_limited",
"fetch_failed",
"render_failed",
"maps_rate_limited",
"maps_challenge",
"maps_schema_changed",
"maps_invalid_response",
"maps_transport_failed",
"maps_page_budget_exhausted",
"google_trends_rate_limited",
"google_trends_challenge",
"google_trends_explore_failed",
"google_trends_widget_missing",
"google_trends_related_failed",
"google_trends_invalid_response",
"google_trends_transport_failed",
"google_trends_collection_failed",
"google_ads_account_context_missing",
"google_ads_batch_failed",
"google_ads_browser_context_missing",
"google_ads_browser_unavailable",
"google_ads_collection_failed",
"google_ads_page_failed",
"google_ads_protocol_drift",
"google_ads_rate_limited",
"google_ads_timeout",
"twitter_provider_unavailable",
"twitter_provider_rejected",
"twitter_submission_unknown",
"wechat_transport_failed",
"wechat_rate_limited",
"wechat_invalid_response",
"wechat_redirect_rejected",
"wechat_verification_required",
"wechat_parse_failed",
"blackhatworld_search_failed",
"blackhatworld_no_results",
"reddit_read_failed",
"idempotency_conflict",
"idempotency_in_progress",
"service_unavailable",
"internal_error"
]
},
"message": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"auth",
"validation",
"quota",
"rate_limit",
"not_found",
"execution",
"conflict",
"internal"
]
},
"retryable": {
"type": "boolean"
},
"request_id": {
"type": [
"string",
"null"
]
},
"details": {
"type": "object",
"additionalProperties": true
}
}
}