API Reference
Explore Sukidata API endpoints, parameters and responses for Google Search, Twitter timelines, image generation, JEV decisions and saved results.
Common
Get the OpenAPI document
GET/openapi.json
Responses
200OpenAPI 3.1 JSON document.
application/json
object
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Web Data
Create a SERP search
POST/v1/serp
Request body · required
application/json
Parameters for a Google SERP request. String fields are trimmed and limited to 4096 UTF-8 bytes unless a narrower field-specific limit is documented.
engineoptionalstringenum
["google"]default
"google"Constraints
maxLength4096
qrequiredstringGoogle search query. Advanced operators such as site:, inurl:, and intitle: are allowed.
Constraints
minLength1maxLength4096pattern"\\S"
as_dtoptionalstring | nullAdvanced Google search parameter used with as_sitesearch to include or exclude a site.
Constraints
maxLength4096
as_epqoptionalstring | nullAdvanced Google exact phrase query.
Constraints
maxLength4096
as_eqoptionalstring | nullAdvanced Google excluded query terms.
Constraints
maxLength4096
as_lqoptionalstring | nullAdvanced Google linked-page query URL.
Constraints
maxLength4096
as_nlooptionalstring | nullAdvanced Google numeric range lower bound.
Constraints
maxLength4096
as_nhioptionalstring | nullAdvanced Google numeric range upper bound.
Constraints
maxLength4096
as_oqoptionalstring | nullAdvanced Google optional terms query.
Constraints
maxLength4096
as_qoptionalstring | nullAdvanced Google additional query terms.
Constraints
maxLength4096
as_qdroptionalstring | nullAdvanced Google quick date range, such as d10, w2, m1, or y.
Constraints
maxLength4096
as_rqoptionalstring | nullAdvanced Google related-page query URL.
Constraints
maxLength4096
as_sitesearchoptionalstring | nullAdvanced Google site restriction or exclusion target.
Constraints
maxLength4096
locationoptionalstring | nullSupported Google search location name or ID returned by GET /v1/serp/locations. Mutually exclusive with uule.
Constraints
maxLength4096
google_domainoptionalstringGoogle search domain without scheme or path, such as google.com, google.de, google.co.jp, or google.com.br. Input is case-insensitive, normalized to lowercase, and validated against the supported Google domain list.
default
"google.com"Constraints
maxLength4096pattern"^[Gg][Oo][Oo][Gg][Ll][Ee](?:\\.[Cc][Oo][Mm]|\\.[A-Za-z]{2}|\\.(?:[Cc][Oo][Mm]|[Cc][Oo])\\.[A-Za-z]{2})$"
gloptionalstringTwo-letter Google country code. Input is case-insensitive, normalized to lowercase, and validated against the supported Google country list.
default
"us"Constraints
minLength2maxLength2pattern"^[A-Za-z]{2}$"
hloptionalstringGoogle interface language code such as en, ja, pt-br, or zh-cn. Input is normalized to lowercase and validated against the supported Google interface language list.
default
"en"Constraints
minLength2maxLength32pattern"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
uuleoptionalstring | nullGoogle encoded location. Mutually exclusive with location.
Constraints
maxLength4096
latoptionalLatitude for GPS-based Google localization. Must be used with lon and is mutually exclusive with location and uule.
Exactly one of
oneOfnumberConstraints
minimum-90maximum90
stringConstraints
pattern"^-?(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$"
nulllonoptionalLongitude for GPS-based Google localization. Must be used with lat and is mutually exclusive with location and uule.
Exactly one of
oneOfnumberConstraints
minimum-180maximum180
stringConstraints
pattern"^-?(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$"
nullradiusoptionalSearch radius for location or GPS-based localization. Maximum is 199 for desktop and 1000 for tablet or mobile. Mutually exclusive with uule.
Exactly one of
oneOfnumberConstraints
minimum1
stringConstraints
pattern"^(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$"
nullludocidoptionalstring | nullGoogle CID for a place result.
Constraints
maxLength4096
lsigoptionalstring | nullGoogle lsig value used by some local and knowledge graph views.
Constraints
maxLength4096
kgmidoptionalstring | nullGoogle Knowledge Graph entity ID.
Constraints
maxLength4096
sioptionalstring | nullGoogle encrypted/cached search parameter token.
Constraints
maxLength4096
ibpoptionalstring | nullGoogle layout or expansion parameter.
Constraints
maxLength4096
udsoptionalstring | nullGoogle filter token returned by SERP filter links.
Constraints
maxLength4096
croptionalstring | nullGoogle country restrict filter, as one or more countryXX tokens separated by
|, such ascountryUS|countryJP.Constraints
maxLength4096
lroptionalstring | nullGoogle language restrict filter, as one or more lang_xx tokens separated by
|, such aslang_en|lang_zh-CN.Constraints
maxLength4096
tbsoptionalstring | nullConstraints
maxLength4096
tbmoptionalstring | nullSupported Google search type. Omit the parameter for regular Google Search.
enum
["isch","lcl","vid","nws","shop","pts",null]Constraints
maxLength4096
safeoptionalstringenum
["off","active"]default
"off"Constraints
maxLength4096
nfproptionalbooleandefault
falsefilteroptionalbooleandefault
truestartoptionalintegerdefault
0Constraints
minimum0
deviceoptionalstringenum
["desktop","tablet","mobile"]default
"desktop"Constraints
maxLength4096
asyncoptionalbooleanWhen false, the API waits for a result and may return an in-progress response that can be polled. When true, the API returns a pollable search response immediately.
default
falseno_cacheoptionalbooleandefault
falsewebhookoptional
Constraints
required["q"]
additionalProperties
false
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Search envelope, completed result, or failed result.
application/json
Exactly one of oneOf
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequiredsearch_informationrequiredorganic_resultsoptionalarrayArray items
adsoptionalarrayArray items
answer_boxoptionalai_overviewoptionalknowledge_graphoptionallocal_resultsoptionaltop_storiesoptionalarrayArray items
images_resultsoptionalarrayArray items
videos_resultsoptionalarrayArray items
shopping_resultsoptionalarrayArray items
related_questionsoptionalrelated_searchesoptionalarrayArray items
paginationoptional
Constraints
required["search_metadata","search_parameters","search_information"]
additionalProperties
true
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Cache-Hitheader · optionalWhether this request qualified for a zero-credit cached response.
booleanX-Sukidata-Credits-Usedheader · optionalCredits charged when the search reaches
SuccessorError. Omitted while in progress; cached responses use0.integerint64
400Invalid request parameters.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
402Credit is insufficient; search was not created.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
403Access denied for this API key.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
413Request body is too large.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
415Request content type must be application/json.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Webhook · serpWebhook
Optional SERP webhook delivery.
POST{$request.body#/webhook/url}
Sent when the caller provides webhook.url and subscribes to a matching event. Failed deliveries may be retried.
Request body · required
application/json
idrequiredstringWebhook delivery/event ID. It matches
X-Sukidata-Delivery.objectrequiredstringconst
"event"typerequiredstringenum
["serp.search.queued","serp.search.processing","serp.search.completed","serp.search.failed"]api_versionrequiredstringconst
"v1"created_atrequiredstringdate-timedatarequired
Constraints
required["id","object","type","api_version","created_at","data"]
additionalProperties
false
Request headers
X-Sukidata-Eventheader · requiredstringenum
["serp.search.queued","serp.search.processing","serp.search.completed","serp.search.failed"]X-Sukidata-Deliveryheader · requiredstringX-Sukidata-Timestampheader · requiredstringX-Sukidata-Signatureheader · optionalHMAC signature in
v1=<hex>format when a webhook secret is available for the authenticated API key.string
Responses
2XXThe webhook endpoint accepted the delivery.
Get a SERP search
GET/v1/serp/{search_id}
Parameters
search_idpath · requiredSearch ID returned by POST /v1/serp. Malformed IDs return 400; IDs unavailable to the authenticated workspace return 404.
stringConstraints
maxLength128pattern"^[A-Za-z0-9_-]+$"
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Search envelope, completed result, or failed result.
application/json
Exactly one of oneOf
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequiredsearch_informationrequiredorganic_resultsoptionalarrayArray items
adsoptionalarrayArray items
answer_boxoptionalai_overviewoptionalknowledge_graphoptionallocal_resultsoptionaltop_storiesoptionalarrayArray items
images_resultsoptionalarrayArray items
videos_resultsoptionalarrayArray items
shopping_resultsoptionalarrayArray items
related_questionsoptionalrelated_searchesoptionalarrayArray items
paginationoptional
Constraints
required["search_metadata","search_parameters","search_information"]
additionalProperties
true
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Cache-Hitheader · optionalWhether this request qualified for a zero-credit cached response.
booleanX-Sukidata-Credits-Usedheader · optionalCredits charged when the search reaches
SuccessorError. Omitted while in progress; cached responses use0.integerint64
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
403Access denied for this API key.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
404Search not found for this workspace context.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Get a Twitter user timeline
POST/v1/twitter
Retrieves one page of public posts for a user. Pass next_cursor as cursor in a later request to continue. Successful requests use one credit per 10 returned posts, rounded up, with a one-credit minimum.
Request body · required
application/json
Parameters for one page of a public Twitter user timeline. Provide exactly one user identifier.
usernameoptionalstringTwitter username, with or without a leading
@.Constraints
minLength1maxLength51pattern"^@?[A-Za-z0-9_]+$"
user_idoptionalstringNumeric Twitter user ID.
Constraints
minLength1maxLength32pattern"^[0-9]+$"
max_resultsoptionalintegerMaximum number of posts to return from this page.
default
20Constraints
minimum1maximum100
cursoroptionalstringOpaque
next_cursorvalue returned by a previous request.Constraints
minLength1maxLength8192
asyncoptionalbooleanWhen false, the API waits for a result and may return an in-progress response that can be polled. When true, the API returns a pollable search response immediately.
default
falsewebhookoptional
additionalProperties
false
Exactly one of oneOf
Constraints
required["username"]
Conditions and other constraints
{
"not": {
"required": [
"user_id"
]
}
}Constraints
required["user_id"]
Conditions and other constraints
{
"not": {
"required": [
"username"
]
}
}Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Search envelope, completed timeline, or failed result.
application/json
Exactly one of oneOf
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequireduserrequiredtweetsrequirednext_cursoroptionalstringOpaque cursor for the next page. Omitted when no next page is available.
Constraints
minLength1maxLength8192
Constraints
required["search_metadata","search_parameters","user","tweets"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Cache-Hitheader · optionalWhether this request qualified for a zero-credit cached response.
booleanX-Sukidata-Credits-Usedheader · optionalCredits charged when the search reaches
SuccessorError. Omitted while in progress; cached responses use0.integerint64
400Invalid request parameters.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
402Credit is insufficient; search was not created.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
403Access denied for this API key.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
413Request body is too large.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
415Request content type must be application/json.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Webhook · twitterWebhook
Optional Twitter webhook delivery.
POST{$request.body#/webhook/url}
Sent when the caller provides webhook.url and subscribes to a matching event. Failed deliveries may be retried.
Request body · required
application/json
idrequiredstringWebhook delivery/event ID. It matches
X-Sukidata-Delivery.objectrequiredstringconst
"event"typerequiredstringenum
["twitter.search.queued","twitter.search.processing","twitter.search.completed","twitter.search.failed"]api_versionrequiredstringconst
"v1"created_atrequiredstringdate-timedatarequired
Constraints
required["id","object","type","api_version","created_at","data"]
additionalProperties
false
Request headers
X-Sukidata-Eventheader · requiredstringenum
["twitter.search.queued","twitter.search.processing","twitter.search.completed","twitter.search.failed"]X-Sukidata-Deliveryheader · requiredstringX-Sukidata-Timestampheader · requiredstringX-Sukidata-Signatureheader · optionalHMAC signature in
v1=<hex>format when a webhook secret is available for the authenticated API key.string
Responses
2XXThe webhook endpoint accepted the delivery.
Get a Twitter timeline request
GET/v1/twitter/{search_id}
Parameters
search_idpath · requiredSearch ID returned by POST /v1/twitter. Malformed IDs return 400; IDs unavailable to the authenticated workspace return 404.
stringConstraints
maxLength128pattern"^[A-Za-z0-9_-]+$"
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Search envelope, completed timeline, or failed result.
application/json
Exactly one of oneOf
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequireduserrequiredtweetsrequirednext_cursoroptionalstringOpaque cursor for the next page. Omitted when no next page is available.
Constraints
minLength1maxLength8192
Constraints
required["search_metadata","search_parameters","user","tweets"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Cache-Hitheader · optionalWhether this request qualified for a zero-credit cached response.
booleanX-Sukidata-Credits-Usedheader · optionalCredits charged when the search reaches
SuccessorError. Omitted while in progress; cached responses use0.integerint64
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
403Access denied for this API key.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
404Search not found for this workspace context.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Search supported locations
GET/v1/serp/locations
Parameters
qquery · optionalOptional location search text. Omit it to list supported Google locations.
stringConstraints
maxLength4096
limitquery · optionalMaximum number of locations to return. Defaults to 10.
integerdefault
10Constraints
minimum1maximum10
Responses
200Matching supported Google locations.
application/json
locationsrequired
Constraints
required["locations"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
400Invalid request parameters.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
List supported Google parameters
GET/v1/serp/google-support
Responses
200Supported Google domains, country codes, interface languages, and restrict tokens.
application/json
domainsrequiredcountriesrequiredlanguagesrequiredcr_countriesrequiredlr_languagesrequired
Constraints
required["domains","countries","languages","cr_countries","lr_languages"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
List search activity
GET/v1/activity
Parameters
limitquery · optionalMaximum number of records to return. Defaults to 20.
integerdefault
20Constraints
minimum1maximum100
cursorquery · optionalOpaque cursor returned by the previous list response.
stringqquery · optionalSearch by search ID, request ID, query, Twitter username or user ID, or location.
stringConstraints
maxLength512
endpointquery · optionalFilter by product name or its
/v1/...path.stringenum
["serp","/v1/serp","twitter","/v1/twitter"]statusquery · optionalFilter by status.
cacheselects cached responses.stringenum
["success","running","failed","cache"]api_key_idquery · optionalFilter by API key ID.
stringConstraints
pattern"^[A-Za-z0-9_.-]{1,128}$"
fromquery · optionalInclusive lower bound for
created_at.stringdate-time
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Recent requests in your Workspace.
application/json
datarequiredarrayArray items
cursoroptionalstringCursor to pass to the next request. Omitted when
has_more=false.has_morerequiredboolean
Constraints
required["data","has_more"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
400Invalid request parameters.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Get search activity
GET/v1/activity/{search_id}
Parameters
search_idpath · requiredstringConstraints
pattern"^[A-Za-z0-9_-]{1,128}$"
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Request details in your Workspace.
application/json
search_idrequiredstringrequest_idoptionalstringRequest ID to include when contacting support.
api_key_idoptionalstringAPI key id used by the original search request.
productrequiredstringenginerequiredstringstatusrequiredstringenum
["Queued","Processing","Success","Error"]cache_hitrequiredbooleanWhether this search qualified for a zero-credit cached response.
credits_usedoptionalintegerint64Credits consumed by this search. Omitted until the search reaches
SuccessorError.qoptionalstringSearch query when available.
search_parametersoptionalobjectSearch parameters that can be reused in another request.
additionalPropertiestruelocation_requestedoptionalstringlocation_usedoptionalstringgoogle_urloptionalstringurierror_codeoptionalstringError code returned for an unsuccessful search.
const
"search_failed"error_messageoptionalstringError message returned for an unsuccessful search.
const
"Search request failed"json_endpointoptionalstringuriJSON result file, available once the search reaches
SuccessorError.raw_html_fileoptionalstringuriHTML result file, included after the search finishes if HTML is available.
created_atrequiredstringdate-timecompleted_atoptionalstringdate-time
Constraints
required["search_id","product","engine","status","cache_hit","created_at"]
additionalProperties
false
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
400Invalid request parameters.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
404Search not found for this workspace context.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
500Unexpected service error.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
Get a result file
GET/searches/{file_token}/{search_id}.{format}
Returns a result file referenced by search_metadata.json_endpoint or search_metadata.raw_html_file. File URLs do not require API authentication and remain available for one month, so keep them private. HTML is available only for products that capture a source page.
Parameters
file_tokenpath · requiredstringConstraints
minLength1maxLength128pattern"^[A-Za-z0-9_-]+$"
search_idpath · requiredstringConstraints
maxLength128pattern"^[A-Za-z0-9_-]+$"
formatpath · requiredstringenum
["json","html"]
Responses
200JSON search envelope for .json, or an HTML snapshot for .html.
application/json
Exactly one of oneOf
Exactly one of oneOf
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequiredsearch_informationrequiredorganic_resultsoptionalarrayArray items
adsoptionalarrayArray items
answer_boxoptionalai_overviewoptionalknowledge_graphoptionallocal_resultsoptionaltop_storiesoptionalarrayArray items
images_resultsoptionalarrayArray items
videos_resultsoptionalarrayArray items
shopping_resultsoptionalarrayArray items
related_questionsoptionalrelated_searchesoptionalarrayArray items
paginationoptional
Constraints
required["search_metadata","search_parameters","search_information"]
additionalProperties
true
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
Exactly one of oneOf
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequireduserrequiredtweetsrequirednext_cursoroptionalstringOpaque cursor for the next page. Omitted when no next page is available.
Constraints
minLength1maxLength8192
Constraints
required["search_metadata","search_parameters","user","tweets"]
additionalProperties
false
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
text/html
string
Response headers
Cache-Controlheader · optionalCaching policy for the result file.
string
404Search not found for this workspace context.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
AI
List available AI models
GET/v1/models
List the models available to your API key.
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Available models in the OpenAI-compatible list format.
application/json
objectrequiredconst
"list"datarequiredarrayArray items
Constraints
required["object","data"]
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
Generate images
POST/v1/images/generations
Generate images from a prompt, with optional reference images. Returns Base64 data by default; set response_format to url for image URLs.
Request body · required
JSON or multipart request, up to 48 MiB. Optional reference images must be PNG, JPEG or WebP. The selected model determines the maximum number of reference images.
application/json
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
Choose one field, image or images. Either accepts a single reference or an array.
imageoptionalimagesoptional
Conditions and other constraints
{
"not": {
"required": [
"image",
"images"
]
}
}multipart/form-data
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
imageoptionalstringbinaryPNG, JPEG or WebP file. For multiple files, repeat the image[] field.
image[]optionalarrayConstraints
minItems1maxItems16
Array items
stringbinary
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Idempotency-Keyheader · optionalReuse this key, parameters and files when retrying a task. The key is scoped to Workspace and operation, shared by synchronous and asynchronous submissions. Changed input returns 409. A new key creates a new task. Interrupted uploads must be retried within ten minutes of task creation; after that, the task fails without a charge and a new key is required.
stringConstraints
minLength1maxLength128pattern"^[!-~]+$"
Responses
200Generated images.
application/json
createdrequiredintegerint64Task creation time, as a Unix timestamp in seconds.
datarequiredarrayConstraints
minItems1
Array items
b64_jsonoptionalstringConstraints
contentEncoding"base64"
urloptionalstringuriImage URL, available for 31 days from publication. Anyone with the URL can view the image.
additionalPropertiesfalseExactly one of
oneOfConstraints
required["b64_json"]
Constraints
required["url"]
Constraints
required["created","data"]
All of allOf
Output metadata, when available. Mixed-size batches omit the top-level size; individual dimensions are available in the task's images array.
backgroundoptionalenum
["opaque","transparent"]output_formatoptionalenum
["png","jpeg","webp"]sizeoptionalstringqualityoptionalenum
["low","medium","high","xhigh","max"]usageoptional
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
Submit image generation
POST/v1/images/generations/async
Submit an image generation task. Poll the URL in the Location header for progress and results.
Request body · required
JSON or multipart request, up to 48 MiB. Optional reference images must be PNG, JPEG or WebP. The selected model determines the maximum number of reference images.
application/json
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
Choose one field, image or images. Either accepts a single reference or an array.
imageoptionalimagesoptional
Conditions and other constraints
{
"not": {
"required": [
"image",
"images"
]
}
}multipart/form-data
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
imageoptionalstringbinaryPNG, JPEG or WebP file. For multiple files, repeat the image[] field.
image[]optionalarrayConstraints
minItems1maxItems16
Array items
stringbinary
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Idempotency-Keyheader · optionalReuse this key, parameters and files when retrying a task. The key is scoped to Workspace and operation, shared by synchronous and asynchronous submissions. Changed input returns 409. A new key creates a new task. Interrupted uploads must be retried within ten minutes of task creation; after that, the task fails without a charge and a new key is required.
stringConstraints
minLength1maxLength128pattern"^[!-~]+$"
Responses
202Task ID and current status. Reusing an idempotency key returns the same task.
application/json
idrequiredstringobjectrequiredconst
"image.task"statusrequired
Constraints
required["id","object","status"]
Response headers
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
stringLocationheader · optionalAuthenticated URL for task detail and progress.
stringuri
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
Edit images
POST/v1/images/edits
Edit images using a prompt and reference images. Upload files with multipart/form-data or use image URLs in JSON. An optional mask selects the area to edit.
Request body · required
JSON or multipart request with at least one reference image, up to 48 MiB per request. Inputs must be PNG, JPEG or WebP. The selected model determines the maximum number of reference images.
application/json
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
Choose one field, image or images. Either accepts a single reference or an array.
imageoptionalimagesoptional
Conditions and other constraints
{
"not": {
"required": [
"image",
"images"
]
}
}maskoptional
Any of anyOf
Constraints
required["image"]
Constraints
required["images"]
multipart/form-data
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
imageoptionalstringbinaryPNG, JPEG or WebP file. For multiple files, repeat the image[] field.
image[]optionalarrayConstraints
minItems1maxItems16
Array items
stringbinary
maskoptionalstringbinaryPNG mask with an alpha channel, matching the first reference image's dimensions. Transparent areas mark where to edit. The mask does not count toward the reference-image limit.
Any of anyOf
Constraints
required["image"]
Constraints
required["image[]"]
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Idempotency-Keyheader · optionalReuse this key, parameters and files when retrying a task. The key is scoped to Workspace and operation, shared by synchronous and asynchronous submissions. Changed input returns 409. A new key creates a new task. Interrupted uploads must be retried within ten minutes of task creation; after that, the task fails without a charge and a new key is required.
stringConstraints
minLength1maxLength128pattern"^[!-~]+$"
Responses
200Generated images.
application/json
createdrequiredintegerint64Task creation time, as a Unix timestamp in seconds.
datarequiredarrayConstraints
minItems1
Array items
b64_jsonoptionalstringConstraints
contentEncoding"base64"
urloptionalstringuriImage URL, available for 31 days from publication. Anyone with the URL can view the image.
additionalPropertiesfalseExactly one of
oneOfConstraints
required["b64_json"]
Constraints
required["url"]
Constraints
required["created","data"]
All of allOf
Output metadata, when available. Mixed-size batches omit the top-level size; individual dimensions are available in the task's images array.
backgroundoptionalenum
["opaque","transparent"]output_formatoptionalenum
["png","jpeg","webp"]sizeoptionalstringqualityoptionalenum
["low","medium","high","xhigh","max"]usageoptional
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
Submit an image edit
POST/v1/images/edits/async
Submit an image editing task. Uses the same parameters and input limits as synchronous editing.
Request body · required
JSON or multipart request with at least one reference image, up to 48 MiB per request. Inputs must be PNG, JPEG or WebP. The selected model determines the maximum number of reference images.
application/json
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
Choose one field, image or images. Either accepts a single reference or an array.
imageoptionalimagesoptional
Conditions and other constraints
{
"not": {
"required": [
"image",
"images"
]
}
}maskoptional
Any of anyOf
Constraints
required["image"]
Constraints
required["images"]
multipart/form-data
Constraints
unevaluatedPropertiesfalse
All of allOf
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
imageoptionalstringbinaryPNG, JPEG or WebP file. For multiple files, repeat the image[] field.
image[]optionalarrayConstraints
minItems1maxItems16
Array items
stringbinary
maskoptionalstringbinaryPNG mask with an alpha channel, matching the first reference image's dimensions. Transparent areas mark where to edit. The mask does not count toward the reference-image limit.
Any of anyOf
Constraints
required["image"]
Constraints
required["image[]"]
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Idempotency-Keyheader · optionalReuse this key, parameters and files when retrying a task. The key is scoped to Workspace and operation, shared by synchronous and asynchronous submissions. Changed input returns 409. A new key creates a new task. Interrupted uploads must be retried within ten minutes of task creation; after that, the task fails without a charge and a new key is required.
stringConstraints
minLength1maxLength128pattern"^[!-~]+$"
Responses
202Task ID and current status. Reusing an idempotency key returns the same task.
application/json
idrequiredstringobjectrequiredconst
"image.task"statusrequired
Constraints
required["id","object","status"]
Response headers
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
stringLocationheader · optionalAuthenticated URL for task detail and progress.
stringuri
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
List image tasks
GET/v1/images/tasks
List your Workspace's image tasks, including status, charges and image links.
Parameters
limitquery · optionalMaximum number of records to return. Defaults to 20.
integerdefault
20Constraints
minimum1maximum100
cursorquery · optionalOpaque cursor returned by the previous list response.
stringmodelquery · optionalstringConstraints
maxLength128
statusquery · optionalsearchquery · optionalSearch prompt text or task ID.
stringConstraints
maxLength256
operationquery · optionalenum
["images.generations","images.edits"]api_key_idquery · optionalFilter by the key ID that submitted the request, including a deleted key. Omit for all sources, including Playground.
stringConstraints
maxLength128
created_fromquery · optionalInclusive creation time, as an RFC 3339 timestamp with timezone.
stringdate-timecreated_toquery · optionalExclusive creation time, as an RFC 3339 timestamp with timezone. Must be later than created_from.
stringdate-time
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Most recent tasks first.
application/json
objectrequiredconst
"list"datarequiredarrayArray items
next_cursorrequiredstring | null
Constraints
required["object","data","next_cursor"]
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
Get an image task
GET/v1/images/tasks/{task_id}
Get a task's prompt, parameters, status, images and charge. Requires an API key from the same Workspace.
Parameters
task_idpath · requiredstringConstraints
pattern"^[A-Za-z0-9_-]{1,128}$"
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Image task detail.
application/json
idrequiredstringobjectrequiredconst
"image.task"modelrequiredstringoperationrequiredenum
["images.generations","images.edits"]statusrequiredcontent_statusrequiredcreated_atrequiredstringdate-timecompleted_atrequiredstring | nulldate-timepromptrequiredstringparametersrequiredobjectParameters submitted with this task.
effective_parametersoptionalSize, quality and image count used for this task, including model defaults. Other settings are in parameters.
sizeoptionalstringqualityoptionalstringnoptionalinteger
imagesrequiredarrayArray items
billingrequirederroroptional
Constraints
required["id","object","model","operation","status","content_status","created_at","completed_at","prompt","parameters","images","billing"]
All of allOf
Output metadata, when available. Mixed-size batches omit the top-level size; individual dimensions are available in the task's images array.
backgroundoptionalenum
["opaque","transparent"]output_formatoptionalenum
["png","jpeg","webp"]sizeoptionalstringqualityoptionalenum
["low","medium","high","xhigh","max"]usageoptional
defaultHTTP errors: 400 invalid input or model; 401 missing or invalid API key; 402 insufficient AI balance; 403 access denied; 404 task not found; 409 idempotency conflict; 410 expired upload or image link; 413 request too large; 502 generation failed; 503 service unavailable or result pending. If X-Sukidata-Task-ID is present, query the task before retrying.
application/json
errorrequired
Constraints
required["error"]
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
X-Sukidata-Task-IDheader · optionalTask ID, returned once a task is created. Use it to check the result after a timeout.
string
JEV Decisions
POST/v1/systemone
Classify text, check conditions and score content with JEV, TypeSafe's System One model. Provide context in state and define questions; answers and usage are returned in the same response.
Request body · required
JSON request body, up to 1 MiB.
application/json
modelrequiredstringUse
jev-latestfor the current release,jev-previewfor preview releases, or a versioned ID such asjev-1.13.0to pin a version.examples
["jev-latest","jev-preview","jev-1.13.0"]Constraints
minLength1maxLength128
staterequiredText, JSON object or array to evaluate. Every question uses this context independently.
questionsrequiredobjectQuestions keyed by a name you choose. Each question specifies a type (
choice,noulorscore), instructions and any criteria.Constraints
minProperties1maxProperties1024
additionalProperties
Constraints
required["model","state","questions"]
additionalProperties
false
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Idempotency-Keyheader · optionalUse a unique key for each evaluation. After a timeout, retry with the same key, API key and JSON input. Completed requests return the original result without another execution or charge. For 409 request_in_progress, wait and retry with the same key. Changing input or API key returns 409 idempotency_conflict. Omitting or changing the key creates a new billable request.
stringConstraints
minLength1maxLength128pattern"^[!-~]+$"
Responses
200Structured answers and request usage.
application/json
idrequiredstringSukidata decision request ID.
modelrequiredstringModel version used for this evaluation.
answersrequiredobjectadditionalPropertiestyperequiredenum
["noul","choice","score"]nouloptionalnumberProbability that the condition is true, not its intensity. Values near 0.5 express uncertainty.
Constraints
minimum0maximum1
choiceoptionalstringKey of the option with the highest probability.
scoreoptionalnumberProbability-weighted mean of zero-based criteria indices; may be fractional.
confidenceoptionalnumberDistribution-derived confidence for choice and score, not the probability that an answer is correct. Not returned for noul.
Constraints
minimum0maximum1
probabilitiesoptionalobjectDistribution over choice keys or zero-based score indices.
additionalPropertiesnumberConstraints
minimum0maximum1
legendoptionalobjectMaps zero-based score indices to the supplied criteria.
additionalPropertiestrue
Constraints
required["type"]
usagerequiredinput_tokensrequiredintegerConstraints
minimum0
output_tokensoptionalintegerOutput token usage; free of charge.
Constraints
minimum0
costrequirednumberUSD cost for this evaluation.
Constraints
minimum0
Constraints
required["input_tokens","cost"]
Constraints
required["id","model","answers","usage"]
Response headers
X-Sukidata-Request-IDheader · optionalRequest ID to include when contacting support.
string
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
403Access denied for this API key.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
default400 invalid input or unavailable model; 402 insufficient AI balance; 409 idempotency conflict or request still processing; 413 body too large; 502 evaluation failed; 503 unavailable.
application/json
Exactly one of oneOf
messagerequiredstringerror_typerequiredstring
Constraints
required["message","error_type"]
View a JEV request
GET/v1/decisions/{request_id}
Retrieve the saved input and response for a JEV request in your Workspace. This read-only call does not run the model or incur another charge. The response can be null while the result is not yet saved or when evaluation failed.
Parameters
request_idpath · requiredstringConstraints
pattern"^[A-Za-z0-9_-]{1,128}$"
Request headers
Authorization: Bearer $SUKIDATA_API_KEY
Responses
200Saved request and response.
application/json
idrequiredstringmodelrequiredstringRequested model name.
statusrequiredExecution status, independent of billing status.
enum
["authorizing","ready","running","succeeded","failed","unknown"]requestrequiredresponserequirederror_codeoptionalstringcreated_atrequiredstringdate-time
Constraints
required["id","model","status","request","response","created_at"]
401API key missing, invalid, inactive, revoked, or expired.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
403Access denied for this API key.
application/json
Response headers
X-Request-IDheader · optionalRequest identifier to include when contacting support.
default400 invalid request ID or query parameters; 404 request not found; 503 unavailable.
application/json
messagerequiredstringerror_typerequiredstring
Constraints
required["message","error_type"]
Schemas
ImageReferenceFields
ImageReferenceFields
Choose one field, image or images. Either accepts a single reference or an array.
imageoptionalimagesoptional
Conditions and other constraints
{
"not": {
"required": [
"image",
"images"
]
}
}ImageReferences
ImageReferences
ImageReference
ImageReference
Exactly one of oneOf
string
Public HTTPS image URL or a PNG, JPEG or WebP Base64 data URL.
Constraints
minLength1
image_urloptionalstringPublic HTTPS image URL or a PNG, JPEG or WebP Base64 data URL.
Constraints
minLength1
b64_jsonoptionalstringPNG, JPEG or WebP reference image encoded as Base64.
Constraints
minLength1contentEncoding"base64"
additionalProperties
false
Exactly one of oneOf
Constraints
required["image_url"]
Constraints
required["b64_json"]
ImageMask
ImageMask
PNG mask with an alpha channel, matching the first reference image's dimensions. Transparent areas mark where to edit. The mask does not count toward the reference-image limit.
All of allOf
ImageMultipartFields
ImageMultipartFields
imageoptionalstringbinaryPNG, JPEG or WebP file. For multiple files, repeat the image[] field.
image[]optionalarrayConstraints
minItems1maxItems16
Array items
stringbinary
DecisionRequest
DecisionRequest
modelrequiredstringUse
jev-latestfor the current release,jev-previewfor preview releases, or a versioned ID such asjev-1.13.0to pin a version.examples
["jev-latest","jev-preview","jev-1.13.0"]Constraints
minLength1maxLength128
staterequiredText, JSON object or array to evaluate. Every question uses this context independently.
questionsrequiredobjectQuestions keyed by a name you choose. Each question specifies a type (
choice,noulorscore), instructions and any criteria.Constraints
minProperties1maxProperties1024
additionalProperties
Constraints
required["model","state","questions"]
additionalProperties
false
DecisionContent
DecisionContent
Exactly one of oneOf
string
object
additionalProperties
true
array
Array items
DecisionQuestion
DecisionQuestion
typerequiredenum
["noul","choice","score"]instructionsoptionalOne explicit, self-contained question about the shared state.
criteriaoptionalOptional true/false descriptions for noul; named options for choice; ordered, descriptive levels from low to high for score.
Constraints
required["type"]
All of allOf
Conditions and other constraints
{
"if": {
"properties": {
"type": {
"const": "noul"
}
}
},
"then": {
"properties": {
"criteria": {
"type": [
"object",
"null"
],
"properties": {
"true": {
"$ref": "#/components/schemas/DecisionContent"
},
"false": {
"$ref": "#/components/schemas/DecisionContent"
}
}
}
}
}
}Conditions and other constraints
{
"if": {
"properties": {
"type": {
"const": "choice"
}
}
},
"then": {
"required": [
"criteria"
],
"properties": {
"criteria": {
"type": "object",
"minProperties": 1,
"maxProperties": 255,
"additionalProperties": {
"oneOf": [
{
"$ref": "#/components/schemas/DecisionContent"
},
{
"type": "null"
}
]
}
}
}
}
}Conditions and other constraints
{
"if": {
"properties": {
"type": {
"const": "score"
}
}
},
"then": {
"required": [
"criteria"
],
"properties": {
"criteria": {
"type": "array",
"minItems": 2,
"maxItems": 10,
"items": {
"$ref": "#/components/schemas/DecisionContent"
}
}
}
}
}DecisionDetail
DecisionDetail
idrequiredstringmodelrequiredstringRequested model name.
statusrequiredExecution status, independent of billing status.
enum
["authorizing","ready","running","succeeded","failed","unknown"]requestrequiredresponserequirederror_codeoptionalstringcreated_atrequiredstringdate-time
Constraints
required["id","model","status","request","response","created_at"]
DecisionResponse
DecisionResponse
idrequiredstringSukidata decision request ID.
modelrequiredstringModel version used for this evaluation.
answersrequiredobjectadditionalPropertiestyperequiredenum
["noul","choice","score"]nouloptionalnumberProbability that the condition is true, not its intensity. Values near 0.5 express uncertainty.
Constraints
minimum0maximum1
choiceoptionalstringKey of the option with the highest probability.
scoreoptionalnumberProbability-weighted mean of zero-based criteria indices; may be fractional.
confidenceoptionalnumberDistribution-derived confidence for choice and score, not the probability that an answer is correct. Not returned for noul.
Constraints
minimum0maximum1
probabilitiesoptionalobjectDistribution over choice keys or zero-based score indices.
additionalPropertiesnumberConstraints
minimum0maximum1
legendoptionalobjectMaps zero-based score indices to the supplied criteria.
additionalPropertiestrue
Constraints
required["type"]
usagerequiredinput_tokensrequiredintegerConstraints
minimum0
output_tokensoptionalintegerOutput token usage; free of charge.
Constraints
minimum0
costrequirednumberUSD cost for this evaluation.
Constraints
minimum0
Constraints
required["input_tokens","cost"]
Constraints
required["id","model","answers","usage"]
AIModel
AIModel
idrequiredstringobjectrequiredconst
"model"createdrequiredintegerint64Unix timestamp in seconds.
owned_byrequiredconst
"sukidata"
Constraints
required["id","object","created","owned_by"]
ImageRequestFields
ImageRequestFields
modelrequiredstringAn available model ID from /v1/models, such as gpt-image-2.5 or gpt-image-2.
Constraints
minLength1maxLength128
promptrequiredstringConstraints
minLength1maxLength32000
sizeoptionalstringRequested size as auto or WIDTHxHEIGHT. Width and height must be positive integers up to 3840, with an aspect ratio between 1:3 and 3:1 and 655360 to 8294400 total pixels. Omission uses the model default.
Constraints
minLength1maxLength32pattern"^(auto|[1-9][0-9]{0,3}x[1-9][0-9]{0,3})$"
qualityoptionalstringQuality supported by the selected model. Omission uses the model default.
Constraints
minLength1maxLength16
noptionalintegerNumber of images to generate, subject to the selected model's limit. gpt-image-2.5 and gpt-image-2 support 1 to 4 images per request; the default is 1.
Constraints
minimum1maximum10
output_formatoptionalstringenum
["png","jpeg","webp"]default
"png"backgroundoptionalstringTransparent output requires PNG or WebP.
enum
["auto","opaque","transparent"]moderationoptionalstringenum
["auto","low"]output_compressionoptionalintegerOutput compression for JPEG and WebP. Accepted but not applied to PNG.
Constraints
minimum0maximum100
response_formatoptionalstringDelivery format for synchronous responses. Asynchronous tasks expose public image URLs in task detail.
enum
["b64_json","url"]default
"b64_json"streamoptionalbooleanSet to false or omit. For background generation, use the asynchronous endpoints.
const
falseuseroptionalstringYour end-user identifier, saved with the task.
Constraints
maxLength256
Constraints
required["model","prompt"]
ImageResult
ImageResult
createdrequiredintegerint64Task creation time, as a Unix timestamp in seconds.
datarequiredarrayConstraints
minItems1
Array items
b64_jsonoptionalstringConstraints
contentEncoding"base64"
urloptionalstringuriImage URL, available for 31 days from publication. Anyone with the URL can view the image.
additionalPropertiesfalseExactly one of
oneOfConstraints
required["b64_json"]
Constraints
required["url"]
Constraints
required["created","data"]
All of allOf
ImageResultMetadata
ImageResultMetadata
Output metadata, when available. Mixed-size batches omit the top-level size; individual dimensions are available in the task's images array.
backgroundoptionalenum
["opaque","transparent"]output_formatoptionalenum
["png","jpeg","webp"]sizeoptionalstringqualityoptionalenum
["low","medium","high","xhigh","max"]usageoptional
ImageTokenUsage
ImageTokenUsage
Token usage, when available. Per-image pricing does not add token charges.
input_tokensrequiredintegerConstraints
minimum0
output_tokensrequiredintegerConstraints
minimum0
total_tokensrequiredintegerConstraints
minimum0
input_tokens_detailsoptionaloutput_tokens_detailsoptional
Constraints
required["input_tokens","output_tokens","total_tokens"]
ImageTokenDetails
ImageTokenDetails
text_tokensoptionalintegerConstraints
minimum0
image_tokensoptionalintegerConstraints
minimum0
cached_tokensoptionalintegerConstraints
minimum0
ImageTaskStatus
ImageTaskStatus
string
Task progress. An unknown result is not a confirmed failure; query the same task again.
enum["queued","processing","completed","failed","unknown"]
ImageContentStatus
ImageContentStatus
string
Availability of the generated image files.
enum["pending","ready","unavailable"]
ImageTaskSummary
ImageTaskSummary
idrequiredstringmodelrequiredstringoperationrequiredenum
["images.generations","images.edits"]prompt_previewrequiredstringstatusrequiredcontent_statusrequiredbilling_statusrequiredstringBilling status. A completed task may still have a pending charge.
billingrequiredapi_key_idrequiredstring | nullAPI key ID used to submit the task. Null if unavailable.
image_countrequiredintegerNumber of generated images available in this response.
Constraints
minimum0
imagesrequiredarrayImage URLs and expiry times. Empty until the images are ready.
Array items
indexrequiredintegerConstraints
minimum0
urlrequiredstringuriurl_expires_atoptionalstringdate-timePublic link expiry time. Save the image before this time; expired images cannot be retrieved through the API.
thumbnail_urloptionalstringuriPreview image URL, when available. Expires with the original. Use url for full-resolution images.
widthrequiredintegerOriginal image width in pixels.
Constraints
minimum1
heightrequiredintegerOriginal image height in pixels.
Constraints
minimum1
Constraints
required["index","url","width","height"]
created_atrequiredstringdate-timecompleted_atrequiredstring | nulldate-timeurlrequiredstringuriTask detail URL. Requires API authentication.
Constraints
required["id","model","operation","prompt_preview","status","content_status","billing_status","billing","api_key_id","image_count","images","created_at","completed_at","url"]
ImageFile
ImageFile
indexrequiredintegerConstraints
minimum0
urlrequiredstringuriurl_expires_atoptionalstringdate-timePublic link expiry time. Save the image before this time; expired images cannot be retrieved through the API.
thumbnail_urloptionalstringuriPreview image URL, when available. Expires with the original. Use url for full-resolution images.
widthrequiredintegerConstraints
minimum1
heightrequiredintegerConstraints
minimum1
formatrequiredenum
["png","jpeg","webp"]
Constraints
required["index","url","width","height","format"]
ImageTask
ImageTask
idrequiredstringobjectrequiredconst
"image.task"modelrequiredstringoperationrequiredenum
["images.generations","images.edits"]statusrequiredcontent_statusrequiredcreated_atrequiredstringdate-timecompleted_atrequiredstring | nulldate-timepromptrequiredstringparametersrequiredobjectParameters submitted with this task.
effective_parametersoptionalSize, quality and image count used for this task, including model defaults. Other settings are in parameters.
sizeoptionalstringqualityoptionalstringnoptionalinteger
imagesrequiredarrayArray items
billingrequirederroroptional
Constraints
required["id","object","model","operation","status","content_status","created_at","completed_at","prompt","parameters","images","billing"]
All of allOf
ImageBilling
ImageBilling
balance_typerequiredconst
"ai"currencyrequiredconst
"USD"statusrequiredstringBilling status. Amounts are null when the status is unavailable.
enum
["pending","reserved","review","settled","released","rejected","unavailable"]reserved_amountrequiredstring | nullFunds currently reserved for this task, in USD. Null if pending or unavailable.
Constraints
pattern"^[0-9]+\\.[0-9]{9}$"
charged_amountrequiredstring | nullCharge in USD, after any corrections. Null if pending or unavailable.
Constraints
pattern"^[0-9]+\\.[0-9]{9}$"
original_charged_amountoptionalstring | nullOriginal charge in USD, before corrections. Null if pending or unavailable.
Constraints
pattern"^[0-9]+\\.[0-9]{9}$"
credited_amountoptionalstring | nullAmount returned to AI balance for this task, in USD. Null if pending or unavailable.
Constraints
pattern"^[0-9]+\\.[0-9]{9}$"
Constraints
required["balance_type","currency","status","reserved_amount","charged_amount"]
ImageErrorDetail
ImageErrorDetail
coderequiredstringmessagerequiredstringtypeoptionalstring
Constraints
required["code","message"]
RequestID
RequestID
string
Constraints
minLength1maxLength128pattern"^[!-~]+$"
ErrorEnvelope
ErrorEnvelope
ActivityList
ActivityList
datarequiredarrayArray items
cursoroptionalstringCursor to pass to the next request. Omitted when
has_more=false.has_morerequiredboolean
Constraints
required["data","has_more"]
additionalProperties
false
ActivityItem
ActivityItem
search_idrequiredstringrequest_idoptionalstringRequest ID to include when contacting support.
api_key_idoptionalstringAPI key id used by the original search request.
productrequiredstringenginerequiredstringstatusrequiredstringenum
["Queued","Processing","Success","Error"]cache_hitrequiredbooleanWhether this search qualified for a zero-credit cached response.
credits_usedoptionalintegerint64Credits consumed by this search. Omitted until the search reaches
SuccessorError.qoptionalstringSearch query when available.
search_parametersoptionalobjectSearch parameters that can be reused in another request.
additionalPropertiestruelocation_requestedoptionalstringlocation_usedoptionalstringgoogle_urloptionalstringurierror_codeoptionalstringError code returned for an unsuccessful search.
const
"search_failed"error_messageoptionalstringError message returned for an unsuccessful search.
const
"Search request failed"json_endpointoptionalstringuriJSON result file, available once the search reaches
SuccessorError.raw_html_fileoptionalstringuriHTML result file, included after the search finishes if HTML is available.
created_atrequiredstringdate-timecompleted_atoptionalstringdate-time
Constraints
required["search_id","product","engine","status","cache_hit","created_at"]
additionalProperties
false
GoogleLocations
GoogleLocations
locationsrequired
Constraints
required["locations"]
additionalProperties
false
GoogleSupport
GoogleSupport
domainsrequiredcountriesrequiredlanguagesrequiredcr_countriesrequiredlr_languagesrequired
Constraints
required["domains","countries","languages","cr_countries","lr_languages"]
additionalProperties
false
StringList
StringList
array
Array items
string
GoogleLocation
GoogleLocation
idrequiredstringgoogle_idrequiredintegerint64google_parent_idoptionalintegerint64namerequiredstringcanonical_namerequiredstringcountry_coderequiredstringtarget_typerequiredstringreachrequiredintegerint64gpsoptionalarrayConstraints
minItems2maxItems2
Array items
number
Constraints
required["id","google_id","name","canonical_name","country_code","target_type","reach"]
additionalProperties
false
SERPRequest
SERPRequest
Parameters for a Google SERP request. String fields are trimmed and limited to 4096 UTF-8 bytes unless a narrower field-specific limit is documented.
engineoptionalstringenum
["google"]default
"google"Constraints
maxLength4096
qrequiredstringGoogle search query. Advanced operators such as site:, inurl:, and intitle: are allowed.
Constraints
minLength1maxLength4096pattern"\\S"
as_dtoptionalstring | nullAdvanced Google search parameter used with as_sitesearch to include or exclude a site.
Constraints
maxLength4096
as_epqoptionalstring | nullAdvanced Google exact phrase query.
Constraints
maxLength4096
as_eqoptionalstring | nullAdvanced Google excluded query terms.
Constraints
maxLength4096
as_lqoptionalstring | nullAdvanced Google linked-page query URL.
Constraints
maxLength4096
as_nlooptionalstring | nullAdvanced Google numeric range lower bound.
Constraints
maxLength4096
as_nhioptionalstring | nullAdvanced Google numeric range upper bound.
Constraints
maxLength4096
as_oqoptionalstring | nullAdvanced Google optional terms query.
Constraints
maxLength4096
as_qoptionalstring | nullAdvanced Google additional query terms.
Constraints
maxLength4096
as_qdroptionalstring | nullAdvanced Google quick date range, such as d10, w2, m1, or y.
Constraints
maxLength4096
as_rqoptionalstring | nullAdvanced Google related-page query URL.
Constraints
maxLength4096
as_sitesearchoptionalstring | nullAdvanced Google site restriction or exclusion target.
Constraints
maxLength4096
locationoptionalstring | nullSupported Google search location name or ID returned by GET /v1/serp/locations. Mutually exclusive with uule.
Constraints
maxLength4096
google_domainoptionalstringGoogle search domain without scheme or path, such as google.com, google.de, google.co.jp, or google.com.br. Input is case-insensitive, normalized to lowercase, and validated against the supported Google domain list.
default
"google.com"Constraints
maxLength4096pattern"^[Gg][Oo][Oo][Gg][Ll][Ee](?:\\.[Cc][Oo][Mm]|\\.[A-Za-z]{2}|\\.(?:[Cc][Oo][Mm]|[Cc][Oo])\\.[A-Za-z]{2})$"
gloptionalstringTwo-letter Google country code. Input is case-insensitive, normalized to lowercase, and validated against the supported Google country list.
default
"us"Constraints
minLength2maxLength2pattern"^[A-Za-z]{2}$"
hloptionalstringGoogle interface language code such as en, ja, pt-br, or zh-cn. Input is normalized to lowercase and validated against the supported Google interface language list.
default
"en"Constraints
minLength2maxLength32pattern"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"
uuleoptionalstring | nullGoogle encoded location. Mutually exclusive with location.
Constraints
maxLength4096
latoptionalLatitude for GPS-based Google localization. Must be used with lon and is mutually exclusive with location and uule.
Exactly one of
oneOfnumberConstraints
minimum-90maximum90
stringConstraints
pattern"^-?(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$"
nulllonoptionalLongitude for GPS-based Google localization. Must be used with lat and is mutually exclusive with location and uule.
Exactly one of
oneOfnumberConstraints
minimum-180maximum180
stringConstraints
pattern"^-?(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$"
nullradiusoptionalSearch radius for location or GPS-based localization. Maximum is 199 for desktop and 1000 for tablet or mobile. Mutually exclusive with uule.
Exactly one of
oneOfnumberConstraints
minimum1
stringConstraints
pattern"^(?:\\d+|\\d*\\.\\d+)(?:[eE][+-]?\\d+)?$"
nullludocidoptionalstring | nullGoogle CID for a place result.
Constraints
maxLength4096
lsigoptionalstring | nullGoogle lsig value used by some local and knowledge graph views.
Constraints
maxLength4096
kgmidoptionalstring | nullGoogle Knowledge Graph entity ID.
Constraints
maxLength4096
sioptionalstring | nullGoogle encrypted/cached search parameter token.
Constraints
maxLength4096
ibpoptionalstring | nullGoogle layout or expansion parameter.
Constraints
maxLength4096
udsoptionalstring | nullGoogle filter token returned by SERP filter links.
Constraints
maxLength4096
croptionalstring | nullGoogle country restrict filter, as one or more countryXX tokens separated by
|, such ascountryUS|countryJP.Constraints
maxLength4096
lroptionalstring | nullGoogle language restrict filter, as one or more lang_xx tokens separated by
|, such aslang_en|lang_zh-CN.Constraints
maxLength4096
tbsoptionalstring | nullConstraints
maxLength4096
tbmoptionalstring | nullSupported Google search type. Omit the parameter for regular Google Search.
enum
["isch","lcl","vid","nws","shop","pts",null]Constraints
maxLength4096
safeoptionalstringenum
["off","active"]default
"off"Constraints
maxLength4096
nfproptionalbooleandefault
falsefilteroptionalbooleandefault
truestartoptionalintegerdefault
0Constraints
minimum0
deviceoptionalstringenum
["desktop","tablet","mobile"]default
"desktop"Constraints
maxLength4096
asyncoptionalbooleanWhen false, the API waits for a result and may return an in-progress response that can be polled. When true, the API returns a pollable search response immediately.
default
falseno_cacheoptionalbooleandefault
falsewebhookoptional
Constraints
required["q"]
additionalProperties
false
TwitterRequest
TwitterRequest
Parameters for one page of a public Twitter user timeline. Provide exactly one user identifier.
usernameoptionalstringTwitter username, with or without a leading
@.Constraints
minLength1maxLength51pattern"^@?[A-Za-z0-9_]+$"
user_idoptionalstringNumeric Twitter user ID.
Constraints
minLength1maxLength32pattern"^[0-9]+$"
max_resultsoptionalintegerMaximum number of posts to return from this page.
default
20Constraints
minimum1maximum100
cursoroptionalstringOpaque
next_cursorvalue returned by a previous request.Constraints
minLength1maxLength8192
asyncoptionalbooleanWhen false, the API waits for a result and may return an in-progress response that can be polled. When true, the API returns a pollable search response immediately.
default
falsewebhookoptional
additionalProperties
false
Exactly one of oneOf
Constraints
required["username"]
Conditions and other constraints
{
"not": {
"required": [
"user_id"
]
}
}Constraints
required["user_id"]
Conditions and other constraints
{
"not": {
"required": [
"username"
]
}
}WebhookConfig
WebhookConfig
urlrequiredstringuriHTTPS webhook URL with a public hostname and no username/password. Localhost, private IPs, special-use IP ranges, and Sukidata system header overrides are rejected. Redirects are not followed.
Constraints
pattern"^https://"
headersoptionalobjectOptional custom headers. Header names must be valid HTTP header field names, names are canonicalized, case-insensitive duplicates are rejected, values must not be multiline, and names starting with x-sukidata- are reserved.
additionalPropertiesstringeventsoptionalarraydefault
["serp.search.completed","serp.search.failed"]Constraints
minItems1uniqueItemstrue
Array items
stringenum
["serp.search.queued","serp.search.processing","serp.search.completed","serp.search.failed"]
Constraints
required["url"]
additionalProperties
false
TwitterWebhookConfig
TwitterWebhookConfig
urlrequiredstringuriHTTPS webhook URL with a public hostname and no username/password. Localhost, private IPs, special-use IP ranges, and Sukidata system header overrides are rejected. Redirects are not followed.
Constraints
pattern"^https://"
headersoptionalobjectOptional custom headers. Header names must be valid HTTP header field names, names are canonicalized, case-insensitive duplicates are rejected, values must not be multiline, and names starting with x-sukidata- are reserved.
additionalPropertiesstringeventsoptionalarraydefault
["twitter.search.completed","twitter.search.failed"]Constraints
minItems1uniqueItemstrue
Array items
stringenum
["twitter.search.queued","twitter.search.processing","twitter.search.completed","twitter.search.failed"]
Constraints
required["url"]
additionalProperties
false
WebhookPayload
WebhookPayload
idrequiredstringWebhook delivery/event ID. It matches
X-Sukidata-Delivery.objectrequiredstringconst
"event"typerequiredstringenum
["serp.search.queued","serp.search.processing","serp.search.completed","serp.search.failed"]api_versionrequiredstringconst
"v1"created_atrequiredstringdate-timedatarequired
Constraints
required["id","object","type","api_version","created_at","data"]
additionalProperties
false
WebhookData
WebhookData
WebhookSearchObject
WebhookSearchObject
idrequiredstringobjectrequiredstringconst
"search"endpointrequiredstringconst
"/v1/serp"urlrequiredstringuriAuthenticated API URL for fetching the search status or result.
search_metadatarequiredsearch_parametersrequiredsearch_informationoptionalorganic_resultsoptionalarrayArray items
usagerequirederroroptional
Constraints
required["id","object","endpoint","url","search_metadata","search_parameters","usage"]
additionalProperties
true
SearchMetadata
SearchMetadata
idrequiredstringstatusrequiredstringenum
["Queued","Processing","Success","Error"]json_endpointoptionalstringuriFile URL for this search's JSON snapshot. Available after the search reaches
SuccessorErrorand remains accessible for one month. The URL does not require API authentication; keep it private.raw_html_fileoptionalstringuriFile URL for this search's HTML snapshot when available. It remains accessible for one month and does not require API authentication; keep it private.
google_urloptionalstringuriGoogle Search URL associated with this result.
created_atrequiredstringdate-timeTime when the search was created.
processed_atoptionalstringdate-timeTime when the search reached a terminal state.
total_time_takenrequirednumberElapsed time in seconds, rounded to at most two decimal places. Google's displayed SERP timing, when available, is
search_information.time_taken_displayed.Constraints
minimum0
Constraints
required["id","status","created_at","total_time_taken"]
additionalProperties
false
WebhookUsageFields
WebhookUsageFields
cache_hitrequiredbooleanWhether this search qualified for a zero-credit cached response.
credits_usedoptionalintegerint64Credits consumed by this search.
Constraints
required["cache_hit"]
additionalProperties
false
ErrorDetail
ErrorDetail
coderequiredstringconst
"search_failed"messagerequiredstringconst
"Search request failed"
Constraints
required["code","message"]
additionalProperties
false
SearchParameters
SearchParameters
enginerequiredstringconst
"google"Constraints
maxLength4096
qrequiredstringConstraints
minLength1maxLength4096pattern"\\S"
location_requestedoptionalstringOriginal human-readable location requested by the caller when
locationis supplied.Constraints
maxLength4096
location_usedoptionalstringResolved Google location when
locationis supplied.Constraints
maxLength4096
as_dtoptionalstring | nullConstraints
maxLength4096
as_epqoptionalstring | nullConstraints
maxLength4096
as_eqoptionalstring | nullConstraints
maxLength4096
as_lqoptionalstring | nullConstraints
maxLength4096
as_nlooptionalstring | nullConstraints
maxLength4096
as_nhioptionalstring | nullConstraints
maxLength4096
as_oqoptionalstring | nullConstraints
maxLength4096
as_qoptionalstring | nullConstraints
maxLength4096
as_qdroptionalstring | nullConstraints
maxLength4096
as_rqoptionalstring | nullConstraints
maxLength4096
as_sitesearchoptionalstring | nullConstraints
maxLength4096
google_domainrequiredstringConstraints
maxLength4096pattern"^google(?:\\.com|\\.[a-z]{2}|\\.(?:com|co)\\.[a-z]{2})$"
glrequiredstringConstraints
minLength2maxLength2pattern"^[a-z]{2}$"
hlrequiredstringConstraints
minLength2maxLength32pattern"^[a-z]{2,3}(?:-[a-z0-9]{2,8})*$"
uuleoptionalstring | nullConstraints
maxLength4096
ludocidoptionalstring | nullConstraints
maxLength4096
lsigoptionalstring | nullConstraints
maxLength4096
kgmidoptionalstring | nullConstraints
maxLength4096
sioptionalstring | nullConstraints
maxLength4096
ibpoptionalstring | nullConstraints
maxLength4096
udsoptionalstring | nullConstraints
maxLength4096
croptionalstring | nullConstraints
maxLength4096
lroptionalstring | nullConstraints
maxLength4096
tbsoptionalstring | nullConstraints
maxLength4096
tbmoptionalstring | nullConstraints
maxLength4096
safeoptionalstringenum
["off","active"]Constraints
maxLength4096
nfproptionalbooleanfilteroptionalbooleanstartoptionalintegerConstraints
minimum0
devicerequiredstringenum
["desktop","tablet","mobile"]Constraints
maxLength4096
Constraints
required["engine","q","google_domain","gl","hl","device"]
additionalProperties
false
SERPSearchEnvelope
SERPSearchEnvelope
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
SERPEnvelope
SERPEnvelope
SERPCompletedResultEnvelope
SERPCompletedResultEnvelope
search_metadatarequiredsearch_parametersrequiredsearch_informationrequiredorganic_resultsoptionalarrayArray items
adsoptionalarrayArray items
answer_boxoptionalai_overviewoptionalknowledge_graphoptionallocal_resultsoptionaltop_storiesoptionalarrayArray items
images_resultsoptionalarrayArray items
videos_resultsoptionalarrayArray items
shopping_resultsoptionalarrayArray items
related_questionsoptionalrelated_searchesoptionalarrayArray items
paginationoptional
Constraints
required["search_metadata","search_parameters","search_information"]
additionalProperties
true
SERPFailedResultEnvelope
SERPFailedResultEnvelope
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
SERPSearchInformation
SERPSearchInformation
Search metadata from the Google results page and request.
query_displayedrequiredstringConstraints
minLength1
total_resultsoptionalintegerConstraints
minimum0
time_taken_displayedoptionalnumberTime displayed by Google on the SERP, in seconds, when present. This is independent of
search_metadata.total_time_taken.Constraints
minimum0
Constraints
required["query_displayed"]
additionalProperties
true
SERPOrganicResult
SERPOrganicResult
Structured Google organic search result.
positionrequiredinteger1-based rank in returned SERP order. Items must be strictly increasing by array order and cannot repeat.
Constraints
minimum1
titlerequiredstringConstraints
minLength1
linkrequiredstringuriFinal HTTP(S) destination URL.
displayed_linkoptionalstringDisplay URL text shown by Google when available; falls back to the result host.
sourceoptionalstringSource label shown by Google when available; falls back to the result host.
Constraints
minLength1
snippetrequiredstringSERP-provided snippet. Empty string is allowed when Google did not provide one.
snippet_highlighted_wordsoptionalarrayArray items
stringfaviconoptionalstringFavicon URL when available. It must not be a data URL.
dateoptionalstringsitelinksoptionalobjectadditionalPropertiestrueabout_this_resultoptionalobjectadditionalPropertiestrueabout_page_linkoptionalstringuri
Constraints
required["position","title","link","snippet"]
additionalProperties
true
SERPLinkedResult
SERPLinkedResult
Parsed linked rich SERP card, used for ads, top stories, and videos.
positionrequiredintegerConstraints
minimum1
titlerequiredstringConstraints
minLength1
linkrequiredstringurisourceoptionalstringsnippetoptionalstringdateoptionalstring
Constraints
required["position","title","link"]
additionalProperties
true
SERPImageResult
SERPImageResult
positionrequiredintegerConstraints
minimum1
titlerequiredstringConstraints
minLength1
linkoptionalstringurithumbnailoptionalstringuri
Constraints
required["position","title"]
additionalProperties
true
SERPShoppingResult
SERPShoppingResult
positionrequiredintegerConstraints
minimum1
titlerequiredstringConstraints
minLength1
linkoptionalstringuripriceoptionalstringsourceoptionalstringthumbnailoptionalstringuri
Constraints
required["position","title"]
additionalProperties
true
SERPAIOverview
SERPAIOverview
Google AI Overview content when available.
statusoptionalstringenum
["success","unavailable","fetch_failed"]page_tokenoptionalstringGoogle AI Overview page token when present.
messageoptionalstringAvailability message when no overview can be returned.
erroroptionalstringFailure reason when overview content could not be retrieved.
text_blocksoptionalarrayArray items
referencesoptionalarrayArray items
additionalProperties
true
SERPAIOverviewTextBlock
SERPAIOverviewTextBlock
typerequiredstringenum
["heading","paragraph","list_item"]snippetrequiredstringConstraints
minLength1
Constraints
required["type","snippet"]
additionalProperties
true
SERPAIOverviewReference
SERPAIOverviewReference
indexrequiredintegerConstraints
minimum1
titlerequiredstringConstraints
minLength1
linkrequiredstringurisourcerequiredstringConstraints
minLength1
snippetoptionalstring
Constraints
required["index","title","link","source"]
additionalProperties
true
SERPRelatedQuestion
SERPRelatedQuestion
questionrequiredstringConstraints
minLength1
typeoptionalstringenum
["ai_overview","featured_snippet"]page_tokenoptionalstringnext_page_tokenoptionalstringlinkoptionalstringuridisplayed_linkoptionalstringtitleoptionalstringsnippetoptionalstringdateoptionalstringsource_logooptionalstringuri
Constraints
required["question"]
additionalProperties
true
SERPRelatedSearch
SERPRelatedSearch
queryrequiredstringConstraints
minLength1
linkoptionalstringuri
Constraints
required["query"]
additionalProperties
true
SERPLocalResults
SERPLocalResults
placesoptionalarrayArray items
more_locations_linkoptionalstringurimapoptionalimageoptionalstringurilinkoptionalstringuri
additionalPropertiestrue
additionalProperties
true
SERPLocalPlace
SERPLocalPlace
positionrequiredintegerConstraints
minimum1
titlerequiredstringConstraints
minLength1
place_idoptionalstringlinkoptionalstringuriratingoptionalnumberreviewsoptionalintegerConstraints
minimum0
typeoptionalstringaddressoptionalstring
Constraints
required["position","title"]
additionalProperties
true
SERPAnswerBox
SERPAnswerBox
typeoptionalstringansweroptionalstringtitleoptionalstringlinkoptionalstringuridisplayed_linkoptionalstringsourceoptionalstring
additionalProperties
true
SERPKnowledgeGraph
SERPKnowledgeGraph
titleoptionalstringtypeoptionalstringdescriptionoptionalstringsourceoptionalnameoptionalstringlinkoptionalstringuri
additionalPropertiestrue
additionalProperties
true
SERPPagination
SERPPagination
nextoptionalstringuri
additionalProperties
true
TwitterSearchParameters
TwitterSearchParameters
enginerequiredstringconst
"twitter"usernameoptionalstringConstraints
minLength1maxLength50pattern"^[A-Za-z0-9_]+$"
user_idoptionalstringConstraints
minLength1maxLength32pattern"^[0-9]+$"
max_resultsrequiredintegerConstraints
minimum1maximum100
cursoroptionalstringConstraints
minLength1maxLength8192
Constraints
required["engine","max_results"]
additionalProperties
false
Exactly one of oneOf
Constraints
required["username"]
Conditions and other constraints
{
"not": {
"required": [
"user_id"
]
}
}Constraints
required["user_id"]
Conditions and other constraints
{
"not": {
"required": [
"username"
]
}
}TwitterSearchEnvelope
TwitterSearchEnvelope
search_metadatarequiredsearch_parametersrequired
Constraints
required["search_metadata","search_parameters"]
additionalProperties
false
TwitterEnvelope
TwitterEnvelope
TwitterCompletedResultEnvelope
TwitterCompletedResultEnvelope
search_metadatarequiredsearch_parametersrequireduserrequiredtweetsrequirednext_cursoroptionalstringOpaque cursor for the next page. Omitted when no next page is available.
Constraints
minLength1maxLength8192
Constraints
required["search_metadata","search_parameters","user","tweets"]
additionalProperties
false
TwitterFailedResultEnvelope
TwitterFailedResultEnvelope
search_metadatarequiredsearch_parametersrequirederrorrequired
Constraints
required["search_metadata","search_parameters","error"]
additionalProperties
false
TwitterUser
TwitterUser
idrequiredstringConstraints
minLength1maxLength64
usernameoptionalstringConstraints
minLength1maxLength64
nameoptionalstringdescriptionoptionalstringprofile_image_urloptionalstringuriverifiedoptionalbooleanfollowers_countoptionalintegerConstraints
minimum0
following_countoptionalintegerConstraints
minimum0
tweet_countoptionalintegerConstraints
minimum0
Constraints
required["id"]
additionalProperties
false
TwitterTweet
TwitterTweet
idrequiredstringConstraints
minLength1maxLength64
textrequiredstringcreated_atoptionalstringdate-timePost creation time in UTC, when available.
languageoptionalstringurloptionalstringuriauthoroptionalmetricsoptionalconversation_idoptionalstring
Constraints
required["id","text"]
additionalProperties
false
TwitterMetrics
TwitterMetrics
like_countoptionalintegerConstraints
minimum0
retweet_countoptionalintegerConstraints
minimum0
reply_countoptionalintegerConstraints
minimum0
quote_countoptionalintegerConstraints
minimum0
bookmark_countoptionalintegerConstraints
minimum0
view_countoptionalintegerConstraints
minimum0
additionalProperties
false
TwitterWebhookPayload
TwitterWebhookPayload
idrequiredstringWebhook delivery/event ID. It matches
X-Sukidata-Delivery.objectrequiredstringconst
"event"typerequiredstringenum
["twitter.search.queued","twitter.search.processing","twitter.search.completed","twitter.search.failed"]api_versionrequiredstringconst
"v1"created_atrequiredstringdate-timedatarequired
Constraints
required["id","object","type","api_version","created_at","data"]
additionalProperties
false
TwitterWebhookData
TwitterWebhookData
TwitterWebhookSearchObject
TwitterWebhookSearchObject
idrequiredstringobjectrequiredstringconst
"search"endpointrequiredstringconst
"/v1/twitter"urlrequiredstringuriAuthenticated API URL for fetching the search status or result.
search_metadatarequiredsearch_parametersrequireduseroptionaltweetsoptionalnext_cursoroptionalstringConstraints
minLength1maxLength8192
usagerequirederroroptional
Constraints
required["id","object","endpoint","url","search_metadata","search_parameters","usage"]
additionalProperties
false
ErrorBody
ErrorBody
coderequiredstringConstraints
maxLength80pattern"^[a-z][a-z0-9_]*$"
messagerequiredstringConstraints
minLength1maxLength240
Constraints
required["code","message"]
additionalProperties
false