Référence
products · API
Endpoints, paramètres, corps de requête et schémas de réponse pour products dans l’API v1 de Squario.
products
10 opérations documentées
Les descriptions du contrat et les schémas restent en anglais, tels que générés par l’API.
GET/v1/products
List products
Opération list_products
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
pageFacultatif | query | 1-based page number, for pages within the first 10,000 records (the last is floor(10000 / page_size) + 1). Deeper, walk with Afficher le schéma JSON{
"type": "integer",
"minimum": 1,
"maximum": 10000,
"default": 1
} |
cursorFacultatif | query | Keyset pagination: Afficher le schéma JSON{
"type": "string"
} |
page_sizeFacultatif | query | Records per page. Afficher le schéma JSON{
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25
} |
sortFacultatif | query | A sortable field key (GET /v1/resources/{resource} lists Afficher le schéma JSON{
"type": "string"
} |
orderFacultatif | query | Sort direction. Afficher le schéma JSON{
"type": "string",
"enum": [
"asc",
"desc"
],
"default": "desc"
} |
searchFacultatif | query | Free-text search. Afficher le schéma JSON{
"type": "string"
} |
include_archivedFacultatif | query | Include archived records. Afficher le schéma JSON{
"type": "boolean",
"default": false
} |
filterFacultatif | query | A URL-encoded JSON array of filters.
|
joinFacultatif | query | How filters combine. Afficher le schéma JSON{
"type": "string",
"enum": [
"and",
"or"
],
"default": "and"
} |
fieldsFacultatif | query | Comma-separated top-level properties to return ( Afficher le schéma JSON{
"type": "string"
} |
Réponses
200 One page of records.
application/json
{
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/products_record"
}
},
"meta": {
"$ref": "#/components/schemas/ListMeta"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
POST/v1/products
Create one of products
Opération create_products
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
Idempotency-KeyFacultatif | header | Makes the write safe to retry: a repeat of the same request with the same key within 24 hours returns the first successful response (with Afficher le schéma JSON{
"type": "string",
"minLength": 1,
"maxLength": 255
} |
Corps de requête
Obligatoire
application/json · Afficher le schéma JSON
{
"type": "object",
"additionalProperties": true,
"description": "Field values keyed by field key; only the fields to set. Custom fields as cf__<key> fields or as one `custom_fields` object (not both). An unknown field is refused (422). data_model_records take `model_id` here or as a query parameter. GET /v1/resources/{resource} lists the writable fields."
}Réponses
201 The created record.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/products_record"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.LocationThe created record's URL.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
405 The method is not allowed here (e.g. a write on a read-only resource).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Allow
409 The write conflicts with an existing record, or a request with the same Idempotency-Key is still running.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
POST/v1/products/query
List products, parameters in the body
Opération query_products
The list endpoint with its parameters as JSON (filters as a real array). Counts as a read.
Authentification · Clé API de l’espace de travail
Paramètres
Cette opération n’a aucun paramètre.
Corps de requête
Facultatif
application/json · Afficher le schéma JSON
{
"type": "object",
"additionalProperties": false,
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"default": 1,
"description": "1-based page number, for pages within the first 10,000 records (the last is floor(10000 / page_size) + 1). Deeper, walk with `cursor`. Not combinable with `cursor`."
},
"cursor": {
"type": "string",
"description": "Keyset pagination: `start` begins a walk, then send each response's `meta.next_cursor` verbatim until it is null. Reaches any depth; keep the same sort, order, search and filters throughout. Not combinable with `page`."
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25
},
"sort": {
"type": "string"
},
"order": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"search": {
"type": "string",
"description": "Free text; full-text-indexed resources only."
},
"include_archived": {
"type": "boolean",
"default": false
},
"filters": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Filter"
}
},
"join": {
"type": "string",
"enum": [
"and",
"or"
],
"default": "and"
},
"model_id": {
"type": "string",
"format": "uuid",
"description": "Required for data_model_records only."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Top-level properties to return (`id` is always kept); a name the record does not have is skipped."
}
}
}Réponses
200 One page of records.
application/json
{
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/products_record"
}
},
"meta": {
"$ref": "#/components/schemas/ListMeta"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
GET/v1/products/{id}
Get one of products
Opération get_products
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
fieldsFacultatif | query | Comma-separated top-level properties to return ( Afficher le schéma JSON{
"type": "string"
} |
Réponses
200 The record.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/products_record"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
PATCH/v1/products/{id}
Update one of products
Opération update_products
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
Idempotency-KeyFacultatif | header | Makes the write safe to retry: a repeat of the same request with the same key within 24 hours returns the first successful response (with Afficher le schéma JSON{
"type": "string",
"minLength": 1,
"maxLength": 255
} |
Corps de requête
Obligatoire
application/json · Afficher le schéma JSON
{
"type": "object",
"additionalProperties": true,
"description": "Field values keyed by field key; only the fields to set. Custom fields as cf__<key> fields or as one `custom_fields` object (not both). An unknown field is refused (422). data_model_records take `model_id` here or as a query parameter. GET /v1/resources/{resource} lists the writable fields."
}Réponses
200 The record.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/products_record"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
405 The method is not allowed here (e.g. a write on a read-only resource).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Allow
409 The write conflicts with an existing record, or a request with the same Idempotency-Key is still running.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
DELETE/v1/products/{id}
Archive one of products
Opération archive_products
A soft delete: the record is archived and can be restored.
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
Idempotency-KeyFacultatif | header | Makes the write safe to retry: a repeat of the same request with the same key within 24 hours returns the first successful response (with Afficher le schéma JSON{
"type": "string",
"minLength": 1,
"maxLength": 255
} |
Corps de requête
Facultatif
application/json · Afficher le schéma JSON
{
"type": "object",
"additionalProperties": false,
"properties": {
"reason": {
"type": "string",
"maxLength": 1000
}
}
}Réponses
200 The record.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/products_record"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
405 The method is not allowed here (e.g. a write on a read-only resource).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Allow
409 The write conflicts with an existing record, or a request with the same Idempotency-Key is still running.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
POST/v1/products/{id}/restore
Restore an archived one of products
Opération restore_products
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
Idempotency-KeyFacultatif | header | Makes the write safe to retry: a repeat of the same request with the same key within 24 hours returns the first successful response (with Afficher le schéma JSON{
"type": "string",
"minLength": 1,
"maxLength": 255
} |
Réponses
200 The record.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/products_record"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
405 The method is not allowed here (e.g. a write on a read-only resource).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Allow
409 The write conflicts with an existing record, or a request with the same Idempotency-Key is still running.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
GET/v1/products/{id}/tags
List the tags linked to one of products
Opération list_products_tags
A tag on one of products. The tag must be active in the workspace. A key with a resource list must cover tags as well as products.
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
pageFacultatif | query | 1-based page of links. Afficher le schéma JSON{
"type": "integer",
"minimum": 1,
"maximum": 10000,
"default": 1
} |
page_sizeFacultatif | query | Links per page. Afficher le schéma JSON{
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 100
} |
Réponses
200 One page of links, oldest first.
application/json
{
"type": "object",
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/product_tags_link"
}
},
"meta": {
"$ref": "#/components/schemas/LinkListMeta"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
PUT/v1/products/{id}/tags/{target_id}
Link one of tags to one of products, or update the link
Opération link_products_tags
A tag on one of products. The tag must be active in the workspace. Creates the link (201) or updates its fields (200); repeating it changes nothing. A key with a resource list must cover tags as well as products.
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
target_idObligatoire | path | The UUID of the record on the other side of the link. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
Idempotency-KeyFacultatif | header | Makes the write safe to retry: a repeat of the same request with the same key within 24 hours returns the first successful response (with Afficher le schéma JSON{
"type": "string",
"minLength": 1,
"maxLength": 255
} |
Réponses
200 The link.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/product_tags_link"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
201 The new link.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/product_tags_link"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
405 The method is not allowed here (e.g. a write on a read-only resource).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Allow
409 The write conflicts with an existing record, or a request with the same Idempotency-Key is still running.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
DELETE/v1/products/{id}/tags/{target_id}
Unlink one of tags from one of products
Opération unlink_products_tags
A tag on one of products. The tag must be active in the workspace. Answers the removed link; 404 when the two are not linked. A key with a resource list must cover tags as well as products.
Authentification · Clé API de l’espace de travail
Paramètres
| Paramètre | Emplacement | Contrat |
|---|---|---|
idObligatoire | path | The record's UUID. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
target_idObligatoire | path | The UUID of the record on the other side of the link. Afficher le schéma JSON{
"type": "string",
"format": "uuid"
} |
Idempotency-KeyFacultatif | header | Makes the write safe to retry: a repeat of the same request with the same key within 24 hours returns the first successful response (with Afficher le schéma JSON{
"type": "string",
"minLength": 1,
"maxLength": 255
} |
Réponses
200 The link.
application/json
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/product_tags_link"
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.X-RateLimit-LimitRequests allowed in the window of the tightest rate limit (absent when none applies).X-RateLimit-RemainingRequests left in that window.X-RateLimit-ResetSeconds until that window resets.X-Quota-LimitThe workspace's monthly request quota (absent when uncapped).X-Quota-RemainingRequests left this month (absent when uncapped).X-Quota-ResetWhen the monthly quota resets.Idempotent-Replayedtruewhen this is the stored response to an earlier request with the same Idempotency-Key.
400 Malformed parameters or body (invalid_request).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
401 Missing, unknown, revoked or expired API key.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.WWW-Authenticate
403 The key or its owner may not make this request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
404 No such route, resource or record.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
405 The method is not allowed here (e.g. a write on a read-only resource).
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Allow
409 The write conflicts with an existing record, or a request with the same Idempotency-Key is still running.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
413 The body is over 1 MiB.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
422 The workspace refused the values (unknown field, required field, rule), or the Idempotency-Key was already used for a different request.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
429 Rate limited, or the monthly quota is used up.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.Retry-AfterSeconds to wait before retrying.X-RateLimit-ResetSeconds until that window resets.
500 Unexpected failure.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
503 Temporarily unable to check the key or reach the data.
application/json
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}En-têtes de réponse
X-Request-IdThis request's id; quote it when reporting a problem.
Définitions des schémas
Filter
{
"type": "object",
"additionalProperties": false,
"required": [
"field",
"op"
],
"properties": {
"field": {
"type": "string",
"description": "A field key; a custom field's `filter_key` (cfv:<id>) from GET /v1/resources/{resource}; or rel:<fk_column>.<column> for a related record's column."
},
"op": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"gte",
"lt",
"lte",
"iLike",
"notILike",
"inArray",
"notInArray",
"isBetween",
"isEmpty",
"isNotEmpty"
]
},
"value": {
"description": "A scalar for most operators; an array for inArray/notInArray; a [low, high] pair for isBetween; omitted for isEmpty/isNotEmpty. Dates are ISO 8601."
}
}
}products_record
{
"type": "object",
"title": "Product",
"description": "A Product record as the key's owner may read it. Built-in fields are listed; custom fields and anything else the workspace adds arrive as further properties. GET /v1/resources/products describes this workspace's fields.",
"additionalProperties": true,
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"title": {
"title": "Title",
"x-squario-kind": "text"
},
"slug": {
"title": "Slug",
"x-squario-kind": "text"
},
"product_type": {
"title": "Type",
"x-squario-kind": "enum"
},
"status": {
"title": "Status",
"x-squario-kind": "enum"
},
"vendor": {
"title": "Vendor",
"x-squario-kind": "text"
},
"category_id": {
"title": "Category",
"x-squario-kind": "relation"
},
"tax_class_id": {
"title": "Tax class",
"x-squario-kind": "relation"
},
"is_taxable": {
"title": "Taxable",
"x-squario-kind": "boolean",
"type": [
"boolean",
"null"
]
},
"requires_shipping": {
"title": "Requires shipping",
"x-squario-kind": "boolean",
"type": [
"boolean",
"null"
]
},
"tracks_inventory": {
"title": "Tracks inventory",
"x-squario-kind": "boolean",
"type": [
"boolean",
"null"
]
},
"short_description": {
"title": "Short description",
"x-squario-kind": "text"
},
"description_html": {
"title": "Description",
"x-squario-kind": "text"
},
"tags": {
"title": "Tags",
"x-squario-kind": "text"
},
"seo_title": {
"title": "SEO title",
"x-squario-kind": "text"
},
"seo_description": {
"title": "SEO description",
"x-squario-kind": "text"
},
"featured_image_url": {
"title": "Image",
"x-squario-kind": "media"
},
"min_price": {
"title": "Price",
"x-squario-kind": "text"
},
"total_stock_on_hand": {
"title": "Stock",
"x-squario-kind": "number",
"type": [
"number",
"null"
]
},
"variants_count": {
"title": "Variants",
"x-squario-kind": "number",
"type": [
"number",
"null"
]
},
"published_at": {
"title": "Published",
"x-squario-kind": "date",
"type": [
"string",
"null"
],
"format": "date-time"
},
"created_at": {
"title": "Created at",
"x-squario-kind": "date",
"type": [
"string",
"null"
],
"format": "date-time"
}
}
}ListMeta
{
"type": "object",
"description": "Page mode carries `page`; cursor mode carries `next_cursor` and `cursor_supported` instead, and `has_more` is `next_cursor !== null`.",
"required": [
"page_size",
"total",
"has_more"
],
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"description": "Page mode only."
},
"next_cursor": {
"type": [
"string",
"null"
],
"description": "Cursor mode only: send it as `cursor` for the next page; null on the last one."
},
"cursor_supported": {
"type": "boolean",
"description": "Cursor mode only. False when this sort cannot be walked (search relevance): the response is then a plain first page with no `next_cursor`."
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"total": {
"type": "integer",
"minimum": 0
},
"total_is_capped": {
"type": "boolean",
"description": "Present when the count stopped at its cap: `total` is then a lower bound."
},
"has_more": {
"type": "boolean"
}
}
}Error
{
"type": "object",
"required": [
"error"
],
"properties": {
"error": {
"type": "object",
"required": [
"type",
"code",
"message",
"request_id"
],
"properties": {
"type": {
"type": "string",
"enum": [
"invalid_request_error",
"authentication_error",
"permission_error",
"not_found_error",
"conflict_error",
"validation_error",
"rate_limit_error",
"api_error"
]
},
"code": {
"type": "string",
"enum": [
"invalid_request",
"invalid_api_key",
"expired_api_key",
"key_assurance_stale",
"ip_not_allowed",
"permission_denied",
"plan_upgrade_required",
"insufficient_scope",
"feature_unavailable",
"forbidden",
"not_found",
"unknown_resource",
"route_not_found",
"method_not_allowed",
"conflict",
"idempotency_key_in_use",
"payload_too_large",
"validation_failed",
"idempotency_key_reused",
"rate_limited",
"quota_exceeded",
"internal_error",
"service_unavailable"
]
},
"message": {
"type": "string"
},
"details": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string",
"format": "uuid"
}
}
}
}
}RecordWrite
{
"type": "object",
"additionalProperties": true,
"description": "Field values keyed by field key; only the fields to set. Custom fields as cf__<key> fields or as one `custom_fields` object (not both). An unknown field is refused (422). data_model_records take `model_id` here or as a query parameter. GET /v1/resources/{resource} lists the writable fields."
}QueryRequest
{
"type": "object",
"additionalProperties": false,
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"default": 1,
"description": "1-based page number, for pages within the first 10,000 records (the last is floor(10000 / page_size) + 1). Deeper, walk with `cursor`. Not combinable with `cursor`."
},
"cursor": {
"type": "string",
"description": "Keyset pagination: `start` begins a walk, then send each response's `meta.next_cursor` verbatim until it is null. Reaches any depth; keep the same sort, order, search and filters throughout. Not combinable with `page`."
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25
},
"sort": {
"type": "string"
},
"order": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"search": {
"type": "string",
"description": "Free text; full-text-indexed resources only."
},
"include_archived": {
"type": "boolean",
"default": false
},
"filters": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Filter"
}
},
"join": {
"type": "string",
"enum": [
"and",
"or"
],
"default": "and"
},
"model_id": {
"type": "string",
"format": "uuid",
"description": "Required for data_model_records only."
},
"fields": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"description": "Top-level properties to return (`id` is always kept); a name the record does not have is skipped."
}
}
}ArchiveRequest
{
"type": "object",
"additionalProperties": false,
"properties": {
"reason": {
"type": "string",
"maxLength": 1000
}
}
}product_tags_link
{
"type": "object",
"description": "A tag on one of products. The tag must be active in the workspace.",
"additionalProperties": false,
"required": [
"product_id",
"tag_id",
"created_at"
],
"properties": {
"product_id": {
"type": "string",
"format": "uuid",
"description": "The products record's id."
},
"tag_id": {
"type": "string",
"format": "uuid",
"description": "The tags record's id."
},
"created_at": {
"type": "string",
"format": "date-time"
}
}
}LinkListMeta
{
"type": "object",
"required": [
"page",
"page_size",
"has_more"
],
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"has_more": {
"type": "boolean"
}
}
}