# 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.*
