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_key

Você pode criar chaves API nas suas Configurações

Visão geral dos endpoints

A API fornece 13 endpoints organizados em três categorias.

MétodoCaminhoDescrição
Documentos
POST/api/v1/documentsCriar um novo documento Markdown
GET/api/v1/documentsListar 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/projectsCriar um novo projeto
GET/api/v1/projectsListar 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/meObter suas informações de perfil
GET/api/v1/usageObter o uso da API do mês atual

Documentos

POST/api/v1/documents

Criar um novo documento Markdown

Corpo da solicitação

CampoTipoObrigatórioDescrição
contentstringSimConteúdo Markdown (máx. 500.000 caracteres)
titlestringNãoTítulo do documento (máx. 200 caracteres, extraído do conteúdo se omitido)
expirationstringNãoPeríodo de expiração: 1h, 1d, 7d, 30d ou never
passwordstringNãoProteção por senha para o link compartilhado
project_idstringNãoID do projeto (UUID) para vincular o documento
is_publicbooleanNãoTornar o documento indexável por motores de busca
show_ai_chatbooleanNãoMostrar chat de IA no visualizador (Pro)
show_tocbooleanNãoMostrar índice no visualizador (Pro)
show_notesbooleanNãoMostrar notas no visualizador (Pro)
show_commentsbooleanNãoMostrar comentários/feedback no visualizador (Pro)
show_summarybooleanNãoMostrar 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).

GET/api/v1/documents

Listar seus documentos com paginação

Parâmetros de consulta

CampoTipoObrigatórioDescrição
pageintegerNãoNúmero da página (padrão: 1)
page_sizeintegerNãoItens por página, máx. 100 (padrão: 20)
project_idstringNãoFiltrar 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
}
GET/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.

GET/api/v1/documents/slug/{slug}

Obter um documento por slug

Parâmetros de consulta

CampoTipoObrigatórioDescrição
passwordstringNãoSenha para documentos protegidos
PATCH/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.

CampoTipoObrigatórioDescrição
contentstringNãoConteúdo Markdown (máx. 500.000 caracteres)
titlestringNãoTítulo do documento (máx. 200 caracteres, extraído do conteúdo se omitido)
expirationstringNãoPeríodo de expiração. Use 'never' para remover a expiração
passwordstringNãoSenha. Use string vazia '' para remover a senha
project_idstringNãoID do projeto. Use string vazia '' para desvincular do projeto
is_publicbooleanNãoTornar o documento indexável por motores de busca
show_ai_chatbooleanNãoMostrar chat de IA no visualizador (Pro)
show_tocbooleanNãoMostrar índice no visualizador (Pro)
show_notesbooleanNãoMostrar notas no visualizador (Pro)
show_commentsbooleanNãoMostrar comentários/feedback no visualizador (Pro)
show_summarybooleanNãoMostrar resumo de IA no visualizador (Pro)
DELETE/api/v1/documents/{id}

Excluir um documento

Exclui permanentemente o documento. Retorna 204 No Content em caso de sucesso.

Projetos

POST/api/v1/projects

Criar um novo projeto

Corpo da solicitação

CampoTipoObrigatórioDescrição
namestringSimNome do projeto (máx. 100 caracteres)
descriptionstringNãoDescriçã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"
}
GET/api/v1/projects

Listar 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
}
GET/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.

PATCH/api/v1/projects/{id}

Atualizar um projeto (apenas proprietário)

Corpo da solicitação

CampoTipoObrigatórioDescrição
namestringNãoNome do projeto (máx. 100 caracteres)
descriptionstringNãoDescrição do projeto. Use string vazia '' para remover

Apenas o proprietário do projeto pode alterar as configurações.

DELETE/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

GET/api/v1/me

Obter 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"
}
GET/api/v1/usage

Obter 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.

StatusDescrição
401Chave API inválida ou ausente
403Permissões insuficientes (ex.: não é proprietário do projeto)
404Recurso não encontrado ou não pertence a você
422Corpo de solicitação ou parâmetros inválidos
429Limite 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çãoLimite
Criação de documentos (POST)100 por mês
Leitura / Atualização / ExclusãoIlimitado
Chat de IA (por documento)50 perguntas

Pronto para começar? Crie sua chave API agora.