> For the complete documentation index, see [llms.txt](https://recursos.demandu.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://recursos.demandu.tech/centro-de-recursos-pt-br/guia-de-produtos-e-treinamento/referencias-da-api/integracao-de-api-de-terceiros/requisitos-que-a-api-de-um-terceiro-deve-atender.md).

# Requisitos que a API de um terceiro deve atender

Requisitos Gerais da API

A API que for integrada à plataforma **Demandu** deve cumprir os seguintes requisitos gerais:

1. **Tipo de API**: A API deve seguir a arquitetura RESTful, utilizando métodos HTTP padrão (GET, POST, PUT, DELETE, etc.).
2. **Autenticação**: A autenticação deve ser implementada por meio de um **token** de acesso.
   * O token de acesso pode ser enviado de duas maneiras:
     1. **Como parâmetro na URL** (exemplo: `https://api.demandu.com/resource?token=token)`
     2. **Como token Bearer no cabeçalho** HTTP:
        1. Authorization: Bearer \[token]
3. **Lista de Endpoints**: Deve ser fornecida uma lista de endpoints com seus respectivos parâmetros de entrada, saída e o método HTTP que utiliza.
4. **Cabeçalhos Adicionais**: Deve ser especificado se é necessário enviar cabeçalhos adicionais, como o tipo de conteúdo aceito.
5. **Estrutura do Corpo da Solicitação**: Alguns métodos HTTP padrão exigem enviar os parâmetros de entrada como parte do corpo da solicitação, por isso é necessário especificar sua estrutura.

#### Considerações adicionais

* **Tratamento de erros**: A API deve tratar e retornar os seguintes códigos de erro padrão:
  * `400 Requisição inválida`: Se os parâmetros enviados não forem válidos.
  * `401 Não autorizado`: Se o token de autenticação for inválido ou não for fornecido.
  * `404 Não encontrado`: Se o recurso solicitado não existir.
  * `500 Erro interno do servidor`: Em caso de erros do servidor.
* **Formato de dados**: Todas as respostas e solicitações devem estar no formato **JSON**.
* **Taxa de requisições**: Pode ser imposto um limite de requisições por minuto para evitar abusos, por exemplo, 100 requisições por minuto.
