Referencia API

API Pública de Geodocs

API REST con autenticación por Token de Acceso Personal (PAT) para automatización de proyectos GIS.

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

Autenticación

Todas las solicitudes requieren un Token de Acceso Personal (PAT) en el header Authorization. Cree tokens en Geodocs > Configuración > Tokens de API.

Formato del token: gdx_<48 hex chars>
Header de la solicitud: Authorization: Bearer gdx_...
Límite de solicitudes: 100 por minuto por token

Cada token tiene alcances que controlan a qué endpoints puede acceder.

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

Paginación

Todos los endpoints de listado soportan paginación con estos parámetros:

pageNúmero de página (predeterminado: 1)
limitElementos por página (predeterminado: 50, máximo: 100)
termTérmino de búsqueda/filtro
Sobre de respuesta
{
  "content": [{ ... }],
  "total": 142,
  "page": 1,
  "size": 50,
  "pages": 3
}

Endpoints

Folders

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

Assignments

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

Expenses

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

Budgets

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

Statuses

Alcance: No se requiere alcance
GET/api/public/v1/statuses

Webhooks

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

Layers

geo-api
Alcance: No se requiere alcance
GET/api/public/v1/layers
GET/api/public/v1/layers/:id/mvt/{z}/{x}/{y}

Geometries

geo-api
Alcance: No se requiere alcance
POST/api/public/v1/geometries/geojson

Eventos de Webhook

Cuando está suscrito, Geodocs envía solicitudes HTTP POST a su endpoint con este payload:

Tipos de evento disponibles
folder.createdfolder.updatedfolder.deletedfolder.archivedassignment.createdassignment.updatedassignment.deletedexpense.createdexpense.updatedexpense.deletedbudget.createdbudget.updatedbudget.deleted
Payload del evento
{
  "id": "delivery-uuid",
  "event": "folder.created",
  "workspaceKey": "workspace-uuid",
  "occurredAt": "2026-03-28T14:22:00Z",
  "data": { "id": "entity-uuid", ... }
}
Verificación de firma

Cada entrega incluye un header X-Geodocs-Signature. Verifíquelo 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));

Manejo de Errores

Todos los endpoints devuelven códigos HTTP estándar:

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

¿Listo para integrar?

Cree su cuenta gratuita y genere un token de API para comenzar.