API do PasteMD
Crie e compartilhe documentos Markdown programaticamente. Gerencie documentos, projetos e mais via API REST.
Início rápido
Comece com uma simples chamada de API para criar um documento.
curl -X POST https://api.pastemd.io/api/v1/documents \
-H "X-API-Key: pm_your_api_key" \
-H "Content-Type: application/json" \
-d '{"content": "# Hello World\n\nYour markdown content here."}'Autenticação
Todas as solicitações de API requerem uma chave API no cabeçalho X-API-Key. Chaves API estão disponíveis para usuários do plano Pro.
Formato do cabeçalho
X-API-Key: pm_your_api_keyVocê pode criar chaves API nas suas Configurações
Visão geral dos endpoints
A API fornece 13 endpoints organizados em três categorias.
| Método | Caminho | Descrição |
|---|---|---|
| Documentos | ||
| POST | /api/v1/documents | Criar um novo documento Markdown |
| GET | /api/v1/documents | Listar seus documentos com paginação |
| GET | /api/v1/documents/{id} | Obter um documento por ID (UUID) |
| GET | /api/v1/documents/slug/{slug} | Obter um documento por slug |
| PATCH | /api/v1/documents/{id} | Atualizar um documento (atualização parcial) |
| DELETE | /api/v1/documents/{id} | Excluir um documento |
| Projetos | ||
| POST | /api/v1/projects | Criar um novo projeto |
| GET | /api/v1/projects | Listar seus projetos |
| GET | /api/v1/projects/{id} | Obter detalhes do projeto com lista de documentos |
| PATCH | /api/v1/projects/{id} | Atualizar um projeto (apenas proprietário) |
| DELETE | /api/v1/projects/{id} | Excluir um projeto (apenas proprietário) |
| Uso e perfil | ||
| GET | /api/v1/me | Obter suas informações de perfil |
| GET | /api/v1/usage | Obter o uso da API do mês atual |
Documentos
/api/v1/documentsCriar um novo documento Markdown
Corpo da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
content | string | Sim | Conteúdo Markdown (máx. 500.000 caracteres) |
title | string | Não | Título do documento (máx. 200 caracteres, extraído do conteúdo se omitido) |
expiration | string | Não | Período de expiração: 1h, 1d, 7d, 30d ou never |
password | string | Não | Proteção por senha para o link compartilhado |
project_id | string | Não | ID do projeto (UUID) para vincular o documento |
is_public | boolean | Não | Tornar o documento indexável por motores de busca |
show_ai_chat | boolean | Não | Mostrar chat de IA no visualizador (Pro) |
show_toc | boolean | Não | Mostrar índice no visualizador (Pro) |
show_notes | boolean | Não | Mostrar notas no visualizador (Pro) |
show_comments | boolean | Não | Mostrar comentários/feedback no visualizador (Pro) |
show_summary | boolean | Não | Mostrar resumo de IA no visualizador (Pro) |
Resposta
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"slug": "abc123",
"title": "Hello World",
"content": "# Hello World\n\nYour markdown content here.",
"url": "https://pastemd.io/s/abc123",
"edit_url": "https://pastemd.io/e/550e8400-e29b-41d4-a716-446655440000",
"view_count": 0,
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z",
"is_password_protected": false,
"is_public": false,
"project_id": null
}Este endpoint conta para sua cota mensal de criação de documentos (100/mês).
/api/v1/documentsListar seus documentos com paginação
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | integer | Não | Número da página (padrão: 1) |
page_size | integer | Não | Itens por página, máx. 100 (padrão: 20) |
project_id | string | Não | Filtrar por ID do projeto |
Resposta
{
"items": [
{
"id": "550e8400-...",
"slug": "abc123",
"title": "Hello World",
"url": "https://pastemd.io/s/abc123",
"view_count": 42,
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z",
"is_password_protected": false,
"is_public": false,
"project_id": null
}
],
"total": 15,
"page": 1,
"page_size": 20,
"has_next": false
}/api/v1/documents/{id}Obter um documento por ID (UUID)
Retorna a resposta completa do documento incluindo conteúdo. Apenas seus próprios documentos são acessíveis.
/api/v1/documents/slug/{slug}Obter um documento por slug
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
password | string | Não | Senha para documentos protegidos |
/api/v1/documents/{id}Atualizar um documento (atualização parcial)
Corpo da solicitação
Todos os campos são opcionais. Apenas os campos fornecidos serão atualizados.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
content | string | Não | Conteúdo Markdown (máx. 500.000 caracteres) |
title | string | Não | Título do documento (máx. 200 caracteres, extraído do conteúdo se omitido) |
expiration | string | Não | Período de expiração. Use 'never' para remover a expiração |
password | string | Não | Senha. Use string vazia '' para remover a senha |
project_id | string | Não | ID do projeto. Use string vazia '' para desvincular do projeto |
is_public | boolean | Não | Tornar o documento indexável por motores de busca |
show_ai_chat | boolean | Não | Mostrar chat de IA no visualizador (Pro) |
show_toc | boolean | Não | Mostrar índice no visualizador (Pro) |
show_notes | boolean | Não | Mostrar notas no visualizador (Pro) |
show_comments | boolean | Não | Mostrar comentários/feedback no visualizador (Pro) |
show_summary | boolean | Não | Mostrar resumo de IA no visualizador (Pro) |
/api/v1/documents/{id}Excluir um documento
Exclui permanentemente o documento. Retorna 204 No Content em caso de sucesso.
Projetos
/api/v1/projectsCriar um novo projeto
Corpo da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome do projeto (máx. 100 caracteres) |
description | string | Não | Descrição do projeto (máx. 500 caracteres) |
Resposta
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "My Project",
"description": "Project description",
"document_count": 0,
"member_count": 1,
"documents": [],
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z"
}/api/v1/projectsListar seus projetos
Resposta
{
"items": [
{
"id": "550e8400-...",
"name": "My Project",
"description": "Project description",
"document_count": 5,
"member_count": 3,
"created_at": "2025-01-04T12:00:00Z",
"updated_at": "2025-01-04T12:00:00Z"
}
],
"total": 2
}/api/v1/projects/{id}Obter detalhes do projeto com lista de documentos
Retorna os detalhes do projeto incluindo todos os documentos. Acessível pelo proprietário e membros.
/api/v1/projects/{id}Atualizar um projeto (apenas proprietário)
Corpo da solicitação
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Não | Nome do projeto (máx. 100 caracteres) |
description | string | Não | Descrição do projeto. Use string vazia '' para remover |
Apenas o proprietário do projeto pode alterar as configurações.
/api/v1/projects/{id}Excluir um projeto (apenas proprietário)
Exclui o projeto. Documentos são desvinculados, não excluídos. Retorna 204 No Content.
Uso e perfil
/api/v1/meObter suas informações de perfil
Resposta
{
"id": 12345,
"email": "user@example.com",
"display_name": "John Doe",
"plan": "pro",
"is_pro": true,
"created_at": "2025-01-01T00:00:00Z"
}/api/v1/usageObter o uso da API do mês atual
Resposta
{
"month": "2025-01",
"docs_created": 23,
"docs_limit": 100,
"remaining": 77
}Códigos de erro
Todos os erros seguem um formato JSON consistente com código de erro e mensagem.
| Status | Descrição |
|---|---|
401 | Chave API inválida ou ausente |
403 | Permissões insuficientes (ex.: não é proprietário do projeto) |
404 | Recurso não encontrado ou não pertence a você |
422 | Corpo de solicitação ou parâmetros inválidos |
429 | Limite mensal de criação de documentos atingido |
Limites de taxa
Apenas a criação de documentos conta para sua cota mensal. Todas as outras operações são ilimitadas.
| Operação | Limite |
|---|---|
| Criação de documentos (POST) | 100 por mês |
| Leitura / Atualização / Exclusão | Ilimitado |
| Chat de IA (por documento) | 50 perguntas |
Pronto para começar? Crie sua chave API agora.