<aside> ❗ Dica do Notion: Use esta página como um exemplo de como você pode estruturar sua referência de API e organizá-la no Notion. A base de dados de pontos finais também inclui um modelo de pontos finais para documentação adicional.
</aside>
A referência é sua chave para uma compreensão abrangente da API do Notion.
<aside> ❗ Você precisa de um token de integração para interagir com a API do Notion. Você pode encontrar um token depois de criar uma integração na página de configurações. Se esta for sua primeira experiência com a API do Notion, recomendamos começar com o guia de introdução (em inglês) para saber como criar uma integração.
</aside>
O URL base para enviar todas as solicitações de API é https://api.notion.com
. O HTTPS é necessário para todas as solicitações de API.
A API do Notion segue as convenções RESTful sempre que possível, com a maioria das operações realizadas por meio de solicitações GET
, POST
, PATCH
e DELETE
em recursos de página e banco de dados. Os corpos de solicitação e resposta são codificados como JSON.
CONVENÇÕES JSON
object
". Essa propriedade pode ser usada para determinar o tipo do recurso (por exemplo, "database
", "user
" etc.).id
" UUIDv4 . Você pode omitir os traços do ID ao fazer solicitações à API, por exemplo, ao copiar o ID de um URL do Notion.snake_case
(não em camelCase
ou kebab-case
).2020-08-12T02:12:33.231Z
), enquanto as datas incluirão somente a data (2020-08-12
)url
, por exemplo, use um null
explícito em vez de ""
.São mostrados exemplos de solicitações e respostas para cada ponto final. As solicitações são mostradas usando o JavaScript SDK e o cURL do Notion. Esses exemplos facilitam a cópia, a colagem e a modificação à medida que você cria sua integração.
Os SDKs do Notion são projetos de código aberto que você pode instalar para começar a criar facilmente. Você também pode escolher qualquer outra linguagem ou biblioteca que lhe permita fazer solicitações HTTP.
Os pontos finais que retornam listas de objetos suportam solicitações de paginação baseadas em cursor. Por padrão, o Notion retorna dez itens por chamada de API. Se o número de itens em uma resposta de um ponto de extremidade de suporte exceder o padrão, uma integração poderá usar a paginação para solicitar um conjunto específico de resultados e/ou limitar o número de itens retornados.
PONTOS FINAIS COMPATÍVEIS
método HTTP | Ponto final |
---|---|
GET | Listar todos os usuários |
GET | Recuperar os componentes de um bloco |
GET | Recuperar um comentário |
GET | Recuperar uma propriedade da página |
POST | Consultar um banco de dados |
POST | Pesquisa |
RESPOSTAS
Campo | Tipo | Descrição |
---|---|---|
has_more |
boolean |
Se a resposta inclui o final da lista. false se não houver mais resultados. Caso contrário, true . |
next_cursor |
string |
Uma cadeia de caracteres que pode ser usada para recuperar a próxima página de resultados, passando o valor como o parâmetro start_cursor para o mesmo ponto de extremidade. Disponível somente quando has_more for verdadeiro. |
object |
"list" |
A string constante "list ". |
results |
array of objects |
A lista, ou lista parcial, de resultados específicos do ponto final. Consulte a documentação individual de um ponto final compatível para obter detalhes. |
Para garantir uma experiência de desenvolvedor consistente para todos os usuários da API, a API do Notion é limitada por taxa e os limites básicos de tamanho se aplicam aos parâmetros de solicitação.
As solicitações com taxa limitada retornarão um código de erro "rate_limited
" (status de resposta HTTP 429). O limite de taxa para solicitações de entrada por integração é uma média de três solicitações por segundo. São permitidas algumas explosões além da taxa média.
<aside> ❗ Os limites de taxas podem mudar
No futuro, planejamos ajustar os limites de taxa para equilibrar a demanda e a confiabilidade. Também poderemos introduzir limites de taxa distintos para espaços de trabalho em diferentes planos de preços.
</aside>
O Notion limita o tamanho de determinados parâmetros e a profundidade dos itens nas solicitações. As solicitações que excederem qualquer um desses limites retornarão o código de erro "validation_error
" (status de resposta HTTP 400) e conterão detalhes mais específicos na propriedade "message
".
Tipo de valor da propriedade | Propriedade interna | Limite de tamanho |
---|---|---|
Objeto de texto rico | text.content |
2000 caracteres |
Objeto de texto rico | text.link.url |
2000 caracteres |
Objeto de texto rico | equation.expression |
1000 caracteres |
Qualquer matriz de objetos de texto rico | 100 elementos |
Os códigos de resposta HTTP são usados para indicar classes gerais de sucesso e erro.
Citação de status HTTP | Descrição |
---|---|
200 | Solicitação processada com sucesso. |
As respostas de erro contêm mais detalhes sobre o erro no corpo da resposta, nas propriedades "code
" e "message
".
Citação de status HTTP | code |
message |
---|---|---|
400 | invalid_json | O corpo da solicitação não pôde ser decodificado como JSON |
invalid_request_url | Esse URL de solicitação não é válido. | |
invalid_request | Essa solicitação não é compatível. | |
401 | unauthorized | O token de portador não é válido. |
Nossas versões de API são nomeadas de acordo com a data de lançamento da versão. Por exemplo, nossa versão mais recente é 2022-06-28.
Você define a versão ao incluir um cabeçalho Notion-Version
. É necessário definir o cabeçalho Notion-Version
.
curl <https://api.notion.com/v1/users/01da9b00-e400-4959-91ce-af55307647e5> \\
-H "Authorization: Bearer secret_t1CdN9S8yicG5eWLUOfhcWaOscVnFXns"
-H "Notion-Version: 2022-06-28"
Os objetos do usuário aparecem na API em quase todos os objetos retornados pela API, inclusive:
created_by
e last_edited_by
.created_by
e last_edited_by
e em itens de propriedade de people
.created_by
e last_edited_by
.people
.Os objetos de usuário sempre conterão chaves de object
e id
, conforme descrito abaixo. As propriedades restantes podem aparecer se o usuário estiver sendo renderizado em um texto rico ou em um contexto de propriedade de página, e se o bot tiver os recursos corretos para acessar essas propriedades. Para saber mais sobre recursos, consulte o guia Recursos e o guia Autorização.
Esses campos são compartilhados por todos os usuários, incluindo pessoas e bots. Os campos marcados com * estão sempre presentes.
Propriedade | Atualizáveis | Tipo | Descrição | Exemplo de valor |
---|---|---|---|---|
object * |
Display-only | "user" |
Sempre "user" | "user" |
id * |
Display-only | string (UUID) |
Identificador exclusivo para esse usuário. | "e79a0b74-3aba-4149-9f74-0bb5791a6ee6" |
type |
Display-only | string (opcional, enum) |
Tipo do usuário. Os valores possíveis são "person " e "bot ". |
"person" |
name |
Display-only | string (opcional) |
Nome do usuário, conforme exibido no Notion. | "Avocado Lovelace" |
avatar_url |
Display-only | string (optional) |
Imagem de avatar escolhida. | "<https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg>" |
Os objetos de arquivo contêm dados sobre um arquivo carregado no Notion ou dados sobre um arquivo externo vinculado ao Notion.
{
"type": "file",
"file": {
"url": "<https://s3.us-west-2.amazonaws.com/secure.notion-static.com/7b8b0713-dbd4-4962-b38b-955b6c49a573/My_test_image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45EIPT3X45%2F20221024%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20221024T205211Z&X-Amz-Expires=3600&X-Amz-Signature=208aa971577ff05e75e68354e8a9488697288ff3fb3879c2d599433a7625bf90&X-Amz-SignedHeaders=host&x-id=GetObject>",
"expiry_time": "2022-10-24T22:49:22.765Z"
}
}
Os tipos de bloco de página, integrações, imagem, vídeo, arquivo, pdf e marcadores contêm objetos de arquivo. Os valores dos objetos ícone e capa também contêm objetos de arquivo.
Cada objeto de arquivo inclui os seguintes campos:
Campo | Tipo | Descrição | Exemplo de valor |
---|---|---|---|
type |
string (enum) |
O tipo do objeto de arquivo. Os valores de tipo possíveis são: "external ", "file ". |
"external" |
external |
file |
object |
Um objeto que contém a configuração específica do tipo. A chave do objeto é external para arquivos externos e file para arquivos hospedados pelo Notion. Consulte as seções de tipo abaixo para obter detalhes sobre os valores específicos do tipo. |