> For the complete documentation index, see [llms.txt](https://pixyleai.gitbook.io/pixyle.ai-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pixyleai.gitbook.io/pixyle.ai-documentation/api-endpoints/live-processing-api/routes.md).

# Routes

## Upload a product listing

> This endpoint allows you to upload a single product to the Pixyle API and immediately receive a response with the generated data.\
> \
> Each product will be processed using all features that are currently active for your account. After processing, the response will be returned immediately, and you will not be able to modify or delete the product or its generated data.\
> \
> If you provide multiple images for the product (using image\_url\_2 through image\_url\_8), all images will be processed, and the results will be generated based on the complete set of images.\
> \
> If you specify a category in the ‘category’ field that matches a category from Pixyle’s taxonomy, the system will focus on that specific fashion item. Only categories from Pixyle’s taxonomy are supported. If you enter a category that is not supported, the product will still be processed, but an error will be recorded for that product, advising you to review and update the category as needed.\
> \
> \*\*Rate limits:\*\*\
> \- 2 requests/second<br>

```json
{"openapi":"3.0.3","info":{"title":"Product Upload API","version":"1.0.0"},"servers":[{"url":"https://api.pixyle.ai/main/v1.1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"Product":{"type":"object","required":["sku","image_url_1"],"properties":{"sku":{"type":"string"},"image_url_1":{"type":"string","format":"uri"},"image_url_2":{"type":"string","format":"uri"},"image_url_3":{"type":"string","format":"uri"},"image_url_4":{"type":"string","format":"uri"},"image_url_5":{"type":"string","format":"uri"},"image_url_6":{"type":"string","format":"uri"},"image_url_7":{"type":"string","format":"uri"},"image_url_8":{"type":"string","format":"uri"},"title":{"type":"string"},"description":{"type":"string"},"brand":{"type":"string"},"root_sku":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"integer"},"detail":{"type":"object","additionalProperties":true}}}}},"paths":{"/products":{"post":{"summary":"Upload a product listing","description":"This endpoint allows you to upload a single product to the Pixyle API and immediately receive a response with the generated data.\n\nEach product will be processed using all features that are currently active for your account. After processing, the response will be returned immediately, and you will not be able to modify or delete the product or its generated data.\n\nIf you provide multiple images for the product (using image_url_2 through image_url_8), all images will be processed, and the results will be generated based on the complete set of images.\n\nIf you specify a category in the ‘category’ field that matches a category from Pixyle’s taxonomy, the system will focus on that specific fashion item. Only categories from Pixyle’s taxonomy are supported. If you enter a category that is not supported, the product will still be processed, but an error will be recorded for that product, advising you to review and update the category as needed.\n\n**Rate limits:**\n- 2 requests/second\n","tags":["Products"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product":{"$ref":"#/components/schemas/Product"}},"required":["product"]}},"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"200":{"description":"Listing uploaded and processed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{"type":"object"}},"sku":{"type":"string"},"result":{"type":"array","items":{"type":"object","properties":{"detection_id":{"type":"integer"},"primary_image":{"type":"string","format":"uri"},"extra_images":{"type":"array","items":{"type":"string","format":"uri"}},"primary_detection":{"type":"boolean"},"features":{"type":"array","description":"List of features detected for this listing. The schema of `feature_result` depends on the `feature_name`:\n  - For `automatic_tagging`, `feature_result` is an array of language-tagged tag groups.\n  - For `title_generation`, `feature_result` is an array of objects, each containing a generated title, language, config_id, and config_name.\n  - For `description_generation`, `feature_result` is an is an array of objects, each containing a generated description, language, config_id, and config_name.\n  - For `optimized_site_search_tags`, `feature_result` is an array of objects, each containing a generated value, language, and config_id.\n","items":{"type":"object","properties":{"feature_name":{"type":"string","description":"Name of the feature (e.g., \"automatic_tagging\", \"title_generation\", \"description_generation\")"},"feature_result":{"description":"The result of the feature. The schema varies by feature_name:\n  - If feature_name is \"automatic_tagging\":\n      An array of objects, each with:\n        - language: string\n        - value: array of tag groups, each with:\n            - tags_type: string\n            - tags: array of { value: string, score: number }\n            - options: array of string\n  - If feature_name is \"title_generation\":\n      An array of objects, each with:\n        - title: string\n        - language: string\n        - config_id: integer\n        - config_name: string\n  - If feature_name is \"description_generation\":\n      An array of objects, each with:\n        - description: string\n        - language: string\n        - config_id: integer\n        - config_name: string\n  - If feature_name is \"optimized_site_search_tags\":\n      An array of objects, each with:\n        - language: string\n        - value: array of strings\n","oneOf":[{"description":"automatic_tagging","type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"array","items":{"type":"object","properties":{"tags_type":{"type":"string"},"tags":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"score":{"type":"number"}}}},"options":{"type":"array","items":{"type":"string"}}}}}}}},{"description":"title_generation","type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"language":{"type":"string"},"config_id":{"type":"integer"},"config_name":{"type":"string"}}}},{"description":"description_generation","type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"language":{"type":"string"},"config_id":{"type":"integer"},"config_name":{"type":"string"}}}},{"description":"optimized_site_search_tags","type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"value":{"type":"array","items":{"type":"string"}}}}}]}}}}}}}}}}}},"400":{"description":"Bad request (missing/invalid input, rate limit, or permission)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden (global upload limit or account expired)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity (validation errors)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```
