Schemas
ErrorResponse
statusCodeHTTP status code repeated in the body.
codeStable machine-readable code. Domain errors use specific codes.
messageHuman-readable summary.
Additional client-actionable context when available.
timestampError timestamp.
pathRequested path.
request_idCorrelation UUID also returned in X-Request-Id.
RateLimitDetails
categoryIndependent rate-limit bucket used by this operation.
limitRequests allowed for this API key and category in the window.
window_secondsretry_after_secondsSeconds to wait before this category can accept another request.
RateLimitErrorResponse
statusCodeHTTP status code repeated in the body.
codeStable machine-readable code. Domain errors use specific codes.
messageHuman-readable summary.
Additional client-actionable context when available.
timestampError timestamp.
pathRequested path.
request_idCorrelation UUID also returned in X-Request-Id.
AccountAuditEventCode
AccountAuditEvent
idaccount_user_idoccurred_atevent_codeactor_typeactor_idactor_namesourcetarget_typetarget_idip_addressuser_agentEvent-specific safe metadata; secrets and webhook URLs are omitted.
AccountAuditEventsResponse
pagelimittotalCatalogCodeName
codeCatalog code returned by the API. Use it unchanged.
nameEnglish display name.
name_localeRequested-locale display name, with English fallback.
CatalogCategory
codeCatalog code returned by the API. Use it unchanged.
nameEnglish display name.
name_localeRequested-locale display name, with English fallback.
icon_urlCategory icon, or null when none is configured.
CatalogBrand
codeCatalog code returned by the API. Use it unchanged.
nameEnglish display name.
name_localeRequested-locale display name, with English fallback.
Categories supported by this brand.
CatalogBrandsResponse
pagelimittotalTotal matching brands before pagination.
CatalogCategoriesResponse
CatalogAnswerTime
codeAnswer time in minutes; pass this integer as answer_time.
nameEnglish display name.
name_localeRequested-locale name, with English fallback.
priceCurrent order price in credits for this account and context.
defaultWhether the catalog marks this option as its default.
availableWhether this option can be used for a new order now.
next_available_atNext expected availability, or null when not applicable/known.
CatalogAnswerTimesResponse
CatalogPhotoIndex
codeCatalog code returned by the API. Use it unchanged.
nameEnglish display name.
name_localeRequested-locale display name, with English fallback.
requiredWhether at least one photo with this code is required at order creation.
photo_limitMaximum images accepted for this index.
icon_urlexample_urlsExample images; can be empty.
CatalogPhotoIndexesResponse
CatalogModel
codeCatalog code returned by the API. Use it unchanged.
nameEnglish display name.
name_localeRequested-locale display name, with English fallback.
image_urlModel image, or null when none is configured.
CatalogModelsResponse
pagelimittotalTotal matching models before pagination.
PhotoUploadResult
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · status="uploaded" · requires: url, original_name | |
| type = object · status="failed" · requires: original_name, error |
statusThe file uploaded successfully.
url^https://media\.legi… · requiredManaged URL to use unchanged in a subsequent order request.
original_nameFilename supplied for the multipart part.
UploadedPhoto
statusThe file uploaded successfully.
url^https://media\.legi… · requiredManaged URL to use unchanged in a subsequent order request.
original_nameFilename supplied for the multipart part.
FailedPhotoUpload
statusThe file could not be uploaded.
original_nameFilename supplied for the multipart part.
BalanceResponse
availableCreditsAvailable account credits. This field is camelCase by contract.
CreateOrderPhoto
url^https://media\.legi… · requiredManaged photo URL returned by POST /photos. Externally hosted URLs,
credentials, query strings, and fragments are rejected.
index_codeCatalog code returned by the API. Use it unchanged.
CreateOrderRequest
brand_codeCatalog code returned by the API. Use it unchanged.
category_codeCatalog code returned by the API. Use it unchanged.
external_idOptional client-provided order reference.
answer_timeRequested answer time in minutes from the answer-time catalog.
model_codeOptional model code within the submitted brand/category.
mock_outcomeRequired for Test API keys and rejected for Live API keys. Selects the immediate simulated Test-order state and outcome.
CreateOrderResponse
idLegitGrails order identifier.
external_idSubmitted alias, or null.
order_numberOrder reference for support communication.
statusInitial public order state.
due_dateExpected completion time, or null when unavailable.
OrderStatus
Current public order state. completed and error are terminal; an
error order has no authentication outcome.
OrderListItem
idexternal_idorder_numberOrder reference for support communication.
statusCurrent public order state. completed and error are terminal; an
error order has no authentication outcome.
outcomedue_dateupdated_atOrdersResponse
pagelimitNumber of results requested per page.
totalTotal matching orders before pagination.
OrderClassification
brand_codecategory_codemodel_codemodel_nameEnglish model name.
model_name_localeRequested-locale model name with English fallback.
PhotoToResubmit
index_codeCatalog code returned by the API. Use it unchanged.
nameEnglish photo-index name.
name_localeRequested-locale photo-index name with English fallback.
conditionStable English condition code such as missing or unclear.
condition_localeLocalized condition label with code/English fallback, or null when no condition is named.
requirementsStable requirement codes in English.
requirements_localeLocalized requirement labels aligned by array index.
commentAdditional guidance for the requested photo, or null.
reference_photo_urlReference image URL, or null.
max_photosMaximum URL submissions allowed for this index in the update round.
OrderResponse
idstatusCurrent public order state. completed and error are terminal; an
error order has no authentication outcome.
outcomeFinal outcome, or null before one is assigned.
outcome_localeLocalized outcome label with English fallback, or null.
delayeddue_dateupdated_atcertificate_urlCertificate URL for a completed order, when available.
outcome_reasonsEnglish reasons, present for authentic/fake completed outcomes.
outcome_reasons_localeLocalized reasons aligned with outcome_reasons, with per-item English fallback.
outcome_indexesUnique affected index codes, present only for fake outcomes.
Requested photo updates for the order.
SubmitUpdatePhoto
index_codeCatalog code returned by the API. Use it unchanged.
url^https://media\.legi…Managed replacement photo URL returned by POST /photos.
is_unable_to_provideSet to true only when no photo can be supplied for this index.
Decision Table
| Variant | Matching Criteria |
|---|---|
| requires: url | |
| requires: is_unable_to_provide |
is_unable_to_provideSubmitUpdatePhotosRequest
Entries resolving every requested index. Repeated URL entries for
one index are allowed up to its max_photos.
noteOptional note about the submitted photos.
SubmitUpdatePhotosResponse
idstatusWebhookOauthRequest
typetoken_url^https:// · requiredPublic HTTPS OAuth2 token endpoint.
client_idclient_secretNever returned by the API.
scopeOptional space-delimited scope sent to the token endpoint.
WebhookOauthMetadata
typetoken_urlclient_idscopeRequested OAuth2 scope, or null when none was configured.
CreateWebhookRequest
url^https:// · requiredPublicly reachable HTTPS destination for webhook deliveries. Redirect responses are not followed.
eventsnameOptional endpoint label.
WebhookEndpoint
idapi_key_idAPI key that owns this endpoint and its order subscriptions.
nameurleventscreated_atHmacWebhookCreateResponse
idapi_key_idAPI key that owns this endpoint and its order subscriptions.
nameurleventscreated_atsigning_secret^[a-f0-9]{64}$ · requiredHMAC signing secret shown only once in this creation response.
OauthWebhookCreateResponse
idapi_key_idAPI key that owns this endpoint and its order subscriptions.
nameurleventscreated_atCreateWebhookResponse
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · requires: id, api_key_id, name +4 more | |
| type = object · requires: id, api_key_id, name +4 more |
idapi_key_idAPI key that owns this endpoint and its order subscriptions.
nameurleventscreated_atsigning_secret^[a-f0-9]{64}$ · requiredHMAC signing secret shown only once in this creation response.
WebhookEnvelope
webhook_eventdelivery_idStable ID for idempotent processing and retry deduplication.
external_idOrder alias supplied by the partner, or null.
order_numberOrder reference for support communication.
created_atTime the webhook was created.
OrderOutcomeWebhookPayload
webhook_eventdelivery_idStable ID for idempotent processing and retry deduplication.
external_idOrder alias supplied by the partner, or null.
order_numberOrder reference for support communication.
created_atTime the webhook was created.
idstatusCurrent public order state. completed and error are terminal; an
error order has no authentication outcome.
outcomeFinal outcome, or null before one is assigned.
outcome_localeLocalized outcome label with English fallback, or null.
delayeddue_dateupdated_atcertificate_urlCertificate URL for a completed order, when available.
outcome_reasonsEnglish reasons, present for authentic/fake completed outcomes.
outcome_reasons_localeLocalized reasons aligned with outcome_reasons, with per-item English fallback.
outcome_indexesUnique affected index codes, present only for fake outcomes.
Requested photo updates for the order.
UpdatePhotosWebhookPayload
webhook_eventdelivery_idStable ID for idempotent processing and retry deduplication.
external_idOrder alias supplied by the partner, or null.
order_numberOrder reference for support communication.
created_atTime the webhook was created.
idstatusCurrent public order state. completed and error are terminal; an
error order has no authentication outcome.
outcomeFinal outcome, or null before one is assigned.
outcome_localeLocalized outcome label with English fallback, or null.
delayeddue_dateupdated_atRequested photo updates for the order.
certificate_urlCertificate URL for a completed order, when available.
outcome_reasonsEnglish reasons, present for authentic/fake completed outcomes.
outcome_reasons_localeLocalized reasons aligned with outcome_reasons, with per-item English fallback.
outcome_indexesUnique affected index codes, present only for fake outcomes.
WebhookPayload
Decision Table
| Variant | Matching Criteria |
|---|---|
| type = object · webhook_event="order-outcome" · requires: id, status, outcome +10 more | |
| type = object · webhook_event="update-photos" · requires: id, status, outcome +10 more |
webhook_eventdelivery_idStable ID for idempotent processing and retry deduplication.
external_idOrder alias supplied by the partner, or null.
order_numberOrder reference for support communication.
created_atTime the webhook was created.
idstatusCurrent public order state. completed and error are terminal; an
error order has no authentication outcome.
outcomeFinal outcome, or null before one is assigned.
outcome_localeLocalized outcome label with English fallback, or null.
delayeddue_dateupdated_atcertificate_urlCertificate URL for a completed order, when available.
outcome_reasonsEnglish reasons, present for authentic/fake completed outcomes.
outcome_reasons_localeLocalized reasons aligned with outcome_reasons, with per-item English fallback.
outcome_indexesUnique affected index codes, present only for fake outcomes.
Requested photo updates for the order.