# Como usar a API

Nossa API funciona para aplicativos de qualquer linguagem que aceite requisições HTTP.

## Limite de Requisições

As requisições tem uma quantidade limite de envio, onde são diferenciadas de duas formas.

1 - Quantidade de requisições de curto espaço de tempo, limitado em 180 requisições por minuto.

2 - Quantidade de requisições diárias, limitado em 10 mil requisições diárias por loja, sendo um limite de 50 mil requisições por dia em caso de loja corporativa.

{% hint style="danger" %}

#### <mark style="color:red;">Limitações de uso</mark> <a href="#usage-limitations" id="usage-limitations"></a>

A API da Tray oferece suporte a um limite de **180 requisições por minuto para cada aplicativo**.\
\
Em conjunto com essa limitação também permitimos o máximo de **10 mil requisições diárias por loja**.&#x20;

No caso de **loja corporativa essa limitação diária é de 50 mil requisições**.
{% endhint %}

## Envio de imagens na API de Produtos

Limite de envio <mark style="color:red;">**por produto de até 15 imagens via API**</mark>, com o campo **`picture_source`**. A plataforma recebe a URL da imagem enviada na requisição, efetua o download e processa para a CDN da Tray.

{% hint style="danger" %} <mark style="color:red;">**Atenção ao enviar imagens!**</mark>

Não realizar o envio da mesma imagem repetidas vezes, mesmo que possuam URL's diferentes. Caso ocorra essa situação você será notificado e nossa operação será onerada.
{% endhint %}

### <mark style="color:blue;">**Requisitos para as imagens:**</mark>

* Use imagem que seja de URL externa e que permita visualização pública para qualquer pessoa;
* Use a extensão do formato da imagem no final da URL;
* Use cada imagem com um nome diferente;
* Use os formatos **JPG**, **JPEG** ou **PNG** para a imagem;
* Não use imagens de extensão renomeada;
* Não utilize espaços ou caracteres especiais na URL e seu conteúdo;
* Não use imagens que exceda o tamanho de até **350 Kb**;
* Não use imagens com dimensões maiores que **2000x2000 pixels.**

### Envio de Imagens para ERP

É necessário que o ERP possua uma gestão no envio de imagens, contemplando no fluxo dessa rotina as seguintes situações:

**Cadastro de um novo produto:**

* Enviar somente as **novas imagens** que irão compor o produto, sendo assim, caso a imagem já esteja cadastrada não realize o envio novamente.&#x20;

**Atualização de imagem:**

* Enviar somente as imagens que irão substituir as que já estão no produto, não envie as imagens já cadastradas.

## Atualizando produtos

Para realizar uma atualização de dados de um produto, envie dos campos disponibilizados apenas o campo que irá ser atualizado.

### Exclusão de imagens de produto

Para excluir uma imagem, hoje não disponibilizamos um endpoint específico para fazer uso do protocolo **Delete**, dessa forma, para excluir uma imagem via API, envie um PUT, passando o campo vazio com espaço <mark style="color:red;">**" "**</mark>, segue exemplo abaixo:

```json
"picture_source_1": " ",
"picture_source_2": " ",
"picture_source_3": " ",
"picture_source_4": " ",
"picture_source_5": " ",
"picture_source_6": " "
```

Caso o produto possua mais de uma imagem cadastradas e você deseje alterar apenas uma imagem, você deverá passar o campo somente daquela imagem. Conforme **exemplo 1** ao lado:

Pois caso passe dessa forma, **exemplo 2** ao lado, as demais imagens serão deletadas e mesmo passando a imagem na posição dois, ela será considerado como posição 1, devido as outras terem sido excluídas.

*Caso as imagens não tenham sido refletidas e no log do produto não conste nenhum reject, informando que houve falha, recomendamos que realize novamente o envio das imagens, através do PUT.*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://partners.tray.com.br/loja-de-aplicativos/comece-por-aqui/como-usar-a-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
