Referência da API

API Pública do Geodocs

API REST com autenticação por Token de Acesso Pessoal (PAT) para automação de projetos GIS.

API:https://api.geodocs.io
Geo-API:https://geo-api.geodocs.io

Autenticação

Todas as requisições exigem um Token de Acesso Pessoal (PAT) no header Authorization. Crie tokens em Geodocs > Configurações > Tokens de API.

Formato do token: gdx_<48 hex chars>
Header da requisição: Authorization: Bearer gdx_...
Limite de requisições: 100 por minuto por token

Cada token possui escopos que controlam quais endpoints ele pode acessar.

# Autenticar com PAT
curl -H "Authorization: Bearer gdx_a1b2c3..." \
https://api.geodocs.io/api/public/v1/folders

Paginação

Todos os endpoints de listagem suportam paginação com estes parâmetros:

pageNúmero da página (padrão: 1)
limitItens por página (padrão: 50, máximo: 100)
termTermo de busca/filtro
Envelope da resposta
{
  "content": [{ ... }],
  "total": 142,
  "page": 1,
  "size": 50,
  "pages": 3
}

Endpoints

Folders

Escopo: READ_FOLDER
GET/api/public/v1/folders
GET/api/public/v1/folders/:key

Assignments

Escopo: READ_ASSIGNMENT
GET/api/public/v1/assignments
GET/api/public/v1/assignments/:key

Expenses

Escopo: READ_EXPENSE
GET/api/public/v1/expenses
GET/api/public/v1/expenses/:key

Budgets

Escopo: READ_BUDGET
GET/api/public/v1/budgets
GET/api/public/v1/budgets/:key

Statuses

Escopo: Nenhum escopo necessário
GET/api/public/v1/statuses

Webhooks

Escopo: MANAGE_WEBHOOK
POST/api/public/v1/webhooks/endpoints
DELETE/api/public/v1/webhooks/endpoints/:key

Layers

geo-api
Escopo: Nenhum escopo necessário
GET/api/public/v1/layers
GET/api/public/v1/layers/:id/mvt/{z}/{x}/{y}

Geometries

geo-api
Escopo: Nenhum escopo necessário
POST/api/public/v1/geometries/geojson

Eventos de Webhook

Quando inscrito, o Geodocs envia requisições HTTP POST para seu endpoint com este payload:

Tipos de evento disponíveis
folder.createdfolder.updatedfolder.deletedfolder.archivedassignment.createdassignment.updatedassignment.deletedexpense.createdexpense.updatedexpense.deletedbudget.createdbudget.updatedbudget.deleted
Payload do evento
{
  "id": "delivery-uuid",
  "event": "folder.created",
  "workspaceKey": "workspace-uuid",
  "occurredAt": "2026-03-28T14:22:00Z",
  "data": { "id": "entity-uuid", ... }
}
Verificação de assinatura

Cada entrega inclui um header X-Geodocs-Signature. Verifique usando HMAC-SHA256:

// Node.js
const crypto = require('crypto');
const expected = crypto
  .createHmac('sha256', secret)
  .update(rawBody)
  .digest('hex');
const received = header
  .replace('sha256=', '');
const valid = crypto
  .timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(received));

Tratamento de Erros

Todos os endpoints retornam códigos HTTP padrão:

200OK
204No Content (DELETE)
400Bad Request
401Unauthorized
403Forbidden (missing scope)
404Not Found
429Too Many Requests
500Internal Server Error
Formato da resposta de erro
{
  "statusCode": 403,
  "message": "Token missing required scope: READ_FOLDER",
  "error": "Forbidden"
}

Pronto para integrar?

Crie sua conta gratuita e gere um token de API para começar.