desenvolvedores

Suas notas, programáveis.

Uma API REST enxuta, especificação OpenAPI, uma skill para agentes e um servidor MCP. Crie notas e lembretes a partir de scripts, automações e da sua IA — grátis, em qualquer conta.

  • REST + JSON
  • OpenAPI 3.1
  • MCP · OAuth 2.1
  • 120 req/min
curl -X POST https://www.pensieve.com.br/api/v1/notes \ -H "Authorization: Bearer $PENSIEVE_API_KEY" \ -d '{ "content": "Pagar o DAS", "remindAt": "2026-10-20T09:00-03:00", "repeat": { "freq": "monthly" }, "timeZone": "America/Sao_Paulo" }'
HTTP/1.1 201 Created
{ "note": { "id": 42, "content": "Pagar o DAS", "listId": null, "isFavorite": false, "remindAt": "2026-10-20T12:00:00.000Z", "repeat": { "freq": "monthly", "interval": 1 } } }
  • API REST

    Scripts, automações (n8n, Make, Zapier) e seus próprios apps.

    Começar →
  • Skill

    Agentes que rodam comandos, como o Claude Code, usam a API sozinhos.

    Instalar →
  • MCP

    ChatGPT, Claude, Cursor e outras IAs, com login OAuth e sem chave.

    Conectar →

Primeiros passos

Autenticação

A API fica em https://www.pensieve.com.br/api/v1. Toda requisição leva o cabeçalho Authorization: Bearer com uma chave da sua conta — ela começa com pk_ e é gerada em Minha conta › API.

  • A chave aparece uma única vez; guardamos só o hash dela.
  • Crie uma chave por integração e revogue só a que precisar — ela para na hora.
curl https://www.pensieve.com.br/api/v1/me \
  -H "Authorization: Bearer pk_live_…"

Recursos

Notas e listas

Uma nota é texto livre, sem título. Ela pode estar numa lista, ser favorita e ter um lembrete. Listas têm nome (único na conta) e cor em hexadecimal.

PATCH altera só o que você enviar. null limpa: listId: null tira da lista, remindAt: null remove o lembrete. Para achar uma nota, busque com GET /notes?q=trecho.

curl -X POST https://www.pensieve.com.br/api/v1/notes \
  -H "Authorization: Bearer $PENSIEVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "content": "Ligar para o contador", "listId": 3, "isFavorite": true }'

Recursos

Lembretes e repetições

Datas vão em ISO 8601 com fuso e voltam em UTC. Para repetir, envie remindAt (o primeiro aviso), repeat e timeZone (IANA). Depois de cada aviso, remindAt avança sozinho.

daily
todo dia
weekdays
segunda a sexta
weekly
nos days (0 = dom … 6 = sáb)
monthly
mesmo dia, todo mês
yearly
mesma data, todo ano

interval espaça as repetições, e POST /notes/{id}/snooze adia o próximo aviso.

JSON
// toda segunda e quinta, às 9h de Brasília
{
  "content": "Verificar os backups",
  "remindAt": "2026-09-28T09:00:00-03:00",
  "repeat": { "freq": "weekly", "days": [1, 4] },
  "timeZone": "America/Sao_Paulo"
}

// a cada 15 dias
"repeat": { "freq": "daily", "interval": 15 }

// parar de repetir (PATCH), mantendo o lembrete
{ "repeat": null }

Recursos

Erros e limites

Erros têm sempre o mesmo formato, com mensagem em português e, quando for o caso, os campos a corrigir.

401
chave ausente, inválida ou revogada
404
nota ou lista não existe
409
já existe lista com esse nome
422
dados inválidos — veja fields
429
mais de 120 requisições/min por chave
HTTP 422
{
  "error": {
    "message": "Dados inválidos.",
    "fields": { "remindAt": "Use uma data ISO 8601 com fuso." }
  }
}
  • GET/meDono da chave (nome e e-mail).
  • GET/notesLista notas. filter=all|favorites|alerts|nolist, listId, q, limit, offset.
  • GET/notes/countsContagens: todas, favoritas, com lembrete, sem lista.
  • GET/notes/{id}Uma nota.
  • POST/notesCria: content, listId?, isFavorite?, remindAt?, repeat?, timeZone?
  • PATCH/notes/{id}Altera só os campos enviados; null limpa lista, lembrete ou repetição.
  • POST/notes/{id}/snoozeAdia o lembrete: { "minutes": 30 }.
  • DELETE/notes/{id}Exclui para sempre.
  • GET/listsListas, com cor e nº de notas.
  • POST/listsCria: { name, color }. Nome único na conta.
  • GET/lists/{id}Uma lista.
  • PATCH/lists/{id}Renomeia ou muda a cor.
  • DELETE/lists/{id}Exclui; as notas ficam “Sem lista”.

A referência interativa mostra parâmetros e respostas de cada chamada — clique em Authorize, cole a sua chave e teste. O openapi.json importa no Postman e no Insomnia e gera clientes tipados.

Agentes de IA

Skill

A skill.md segue o formato Agent Skills: um Markdown com nome, descrição e instruções. Ela ensina ao agente os endpoints, as datas com fuso, os lembretes recorrentes e as boas maneiras — buscar antes de editar, perguntar antes de criar lista e confirmar antes de excluir.

  • Claude Code: salve em ~/.claude/skills/pensieve/SKILL.md.
  • Claude (app): envie a pasta com o arquivo em Configurações › Capacidades.
  • Outros agentes: cole o conteúdo nas instruções do sistema.
Terminal
# instala a skill no Claude Code
mkdir -p ~/.claude/skills/pensieve
curl -o ~/.claude/skills/pensieve/SKILL.md \
  https://www.pensieve.com.br/api/v1/skill.md

# a chave vai numa variável de ambiente
export PENSIEVE_API_KEY=pk_live_…

Agentes de IA

Servidor MCP

O Pensieve é um servidor MCP remoto (HTTP) em https://www.pensieve.com.br/api/mcp. Adicione como conector personalizado no ChatGPT, no Claude, no Cursor ou no VS Code: abre uma janela do Pensieve para você entrar e autorizar (OAuth 2.1 com PKCE). Clientes sem OAuth usam uma chave no cabeçalho.

As IAs conectadas aparecem em Minha conta › API, onde você pode desconectá-las.

  • searchBusca notas pelo texto
  • fetchLê uma nota pelo id
  • whoamiConta conectada
  • list_notesLista notas com filtros
  • get_note_countsContagens
  • create_noteCria nota e lembrete
  • update_noteAltera uma nota
  • snooze_noteAdia o lembrete
  • delete_noteExclui (confirma antes)
  • list_listsTodas as listas
  • create_listCria lista
  • update_listEdita lista
  • delete_listExclui lista
claude mcp add --transport http pensieve \
  https://www.pensieve.com.br/api/mcp

O uso da API segue os Termos de Uso e a Política de Privacidade. Ficou alguma dúvida? Fale comigo.