Skip to content
Idioma: Español

API para desarrolladores

Endpoints de la API por área

Actualizado el 1 de noviembre de 2026 8 min de lectura

Todos los endpoints que puedes usar con una clave de API, ordenados por área, con el método, la ruta, el scope necesario y lo que hacen.

Este resumen recoge todos los endpoints que funcionan con un token de una clave de API. Todas las rutas empiezan por https://dock.at-harbor.com. Los campos exactos de cada endpoint están en la descripción OpenAPI en https://dock.at-harbor.com/openapi.yaml.

Autenticación y endpoints públicos

Método y rutaAutenticaciónPara qué sirve
POST /v1/tokenNinguna (ID y secreto de la clave en el cuerpo)Cambiar una clave de API por un token de acceso
GET /v1/plansNingunaPlanes y precios
GET /v1/pages/available?handle=…NingunaComprobar si un handle está libre

Páginas

Método y rutaScopePara qué sirve
GET /v1/pagesread:pagesTodas las páginas del espacio de trabajo con ID, handle, título, estado, versión publicada, visibilidad y URL
POST /v1/pageswrite:pagesCrear una página; obligatorios: handle (2–64 caracteres, letras, dígitos, guion) y template_key; opcionales: title, domain_id, theme_config
GET /v1/pages/{id}read:pagesUna página; incluye también has_unpublished_changes (true si el borrador difiere de la versión publicada)
PATCH /v1/pages/{id}write:pagesCambiar title, handle o discoverable (aparición en el directorio)
PATCH /v1/pages/{id}/visibilitywrite:pagespublic, private o password (con password, 4–72 caracteres); se aplica de inmediato
POST /v1/pages/{id}/publishwrite:pagesPublicar el borrador; la respuesta contiene la nueva versión
GET /v1/pages/{id}/versionsread:pagesVersiones publicadas
GET /v1/pages/{id}/versions/{version}read:pagesUna versión
POST /v1/pages/{id}/versions/{version}/restorewrite:pagesLlevar una versión al borrador; current descarta todos los cambios del borrador
GET /v1/pages/{id}/seoread:pagesTextos de SEO y para compartir
PATCH /v1/pages/{id}/seowrite:pagesseo_title, seo_description, og_title, og_description, og_image_asset_id, canonical_url, noindex
POST /v1/pages/{id}/invite-linkwrite:pagesEnlace de invitación para una página privada y publicada; days 1–30, por defecto 7. Si no, 409 page_not_private o page_not_published
POST /v1/pages/{id}/invite-link/revokewrite:pagesRevocar el enlace de invitación
POST /v1/pages/{id}/uploadswrite:assetsSubir un archivo para una página

Borrador

Método y rutaScopePara qué sirve
GET /v1/pages/{id}/draftread:pagesBorrador actual: template_key, config, theme_config, custom_css, seo, asignaciones de imágenes y enlaces
PATCH /v1/pages/{id}/draftwrite:pagesAl menos uno de estos: config (como máximo 64 KB como JSON, cada texto hasta 5.000 caracteres), theme_config, custom_css (hasta 50.000 caracteres y 65.535 bytes), seo, template_key, template_asset_bindings
GET /v1/pages/{id}/draft/validateread:pagesComprobar si el borrador se puede publicar

Bloques

Método y rutaScopePara qué sirve
GET /v1/pages/{id}/blocksread:pagesLos bloques de la página
POST /v1/pages/{id}/blockswrite:pagesCrear un bloque; obligatorios: type y config
PATCH /v1/pages/{id}/blocks/{blockId}write:pagesEditar un bloque
DELETE /v1/pages/{id}/blocks/{blockId}write:pagesEliminar un bloque
POST /v1/pages/{id}/blocks/reorderwrite:pagesFijar el orden
GET /v1/blocks/schemasread:pagesTodos los tipos de bloque con el esquema de su config

Tipos que puedes crear: text, image, embed, spacer, social_links, form, integration, donation, modal, heading, notice, coupon, contact, opening_hours, tour, file, vcard, countdown y gallery. El bloque de enlaces es fijo y no se crea con este endpoint. La API rechaza los tipos de bloque que no incluye tu plan con 403 block_type_requires_plan. La config de un bloque puede tener como máximo 128 KB como JSON, y cada texto que contiene, como máximo 10.000 caracteres; en el modal informativo, modal_body_html puede tener hasta 50.000 caracteres y como máximo 65.535 bytes.

Enlaces

Método y rutaScopePara qué sirve
GET /v1/pages/{id}/linksread:linksLos enlaces de la página
POST /v1/pages/{id}/linkswrite:linksCrear un enlace; obligatorios: title (1–200) y target_url_template (8–2048)
GET /v1/pages/{id}/links/{linkId}read:linksUn enlace
PATCH /v1/pages/{id}/links/{linkId}write:linksEditar un enlace
DELETE /v1/pages/{id}/links/{linkId}write:linksEliminar un enlace
POST /v1/pages/{id}/links/reorderwrite:linksFijar el orden: {"order":[IDs]}

Campos opcionales al crear y editar: enabled, geo (regla de países con mode allowlist o denylist y countries), device (destinos distintos por dispositivo), starts_at y ends_at (programación), protection_tier (protección contra bots) y age_restriction. La programación y las reglas de país y dispositivo están disponibles desde Creator Pro. Al reordenar, basta con enviar los ID que deben pasar al principio; todos los demás enlaces siguen en su orden anterior. La API rechaza los ID que no pertenecen a la página con 422 validation_failed; details.missing_link_ids los indica.

Enlaces cortos

Método y rutaScopePara qué sirve
GET /v1/short-linksread:short_linksEnlaces cortos con limit, offset, sort y búsqueda q; la respuesta contiene total
POST /v1/short-linkswrite:short_linksCrear; obligatorio: target_url (http o https, 8–2048); opcionales: title (hasta 120) y custom_slug (3–32, minúsculas, dígitos, guiones)
GET /v1/short-links/{id}read:short_linksUn enlace corto
PATCH /v1/short-links/{id}write:short_linksCambiar target_url o title
DELETE /v1/short-links/{id}write:short_linksEliminar un enlace corto

Si se alcanza el límite de enlaces cortos del plan, la API responde con 402 plan_limit_reached.

Recursos

Método y rutaScopePara qué sirve
GET /v1/assetsread:assetsLos recursos del espacio de trabajo
POST /v1/assetswrite:assetsSubir un archivo (multipart/form-data, campo file; opcionales: page_id, kind, title, alt_text)
DELETE /v1/assets/{assetId}write:assetsEliminar un recurso

Formularios

Método y rutaScopePara qué sirve
GET /v1/formsread:formsFormularios
POST /v1/formswrite:formsCrear un formulario; obligatorios: name y fields (1–100 campos)
GET /v1/forms/{id}read:formsUn formulario
PATCH /v1/forms/{id}write:formsEditar un formulario
DELETE /v1/forms/{id}write:formsEliminar un formulario
GET /v1/forms/{id}/summaryread:formsResumen
GET /v1/forms/{id}/submissionsread:formsEnvíos, los más recientes primero (limit 1–500, por defecto 100; más páginas con cursor = next_cursor)
GET /v1/forms/{id}/submissions/exportread:formsTodos los envíos como archivo CSV, los más recientes primero, hasta el límite de exportación del plan (desde Creator Pro); el encabezado X-Export-Truncated indica si se ha recortado

Estadísticas

Método y rutaScopePara qué sirve
GET /v1/stats/pages/{id}/summaryread:statsCifras clave de una página
GET /v1/stats/pages/{id}/timeseriesread:statsSerie temporal de una página
GET /v1/stats/pages/{id}/compareread:statsComparación con el periodo anterior
GET /v1/stats/pages/{id}/linksread:statsClics por enlace
GET /v1/stats/pages/{id}/widgetsread:statsClics en widgets
GET /v1/stats/pages/{id}/conversions/breakdownread:statsConversiones de una página
GET /v1/stats/workspaces/me/summaryread:statsCifras clave de todas las páginas
GET /v1/stats/workspaces/me/timeseriesread:statsSerie temporal de todas las páginas
GET /v1/stats/workspaces/me/compareread:statsComparación con el periodo anterior
GET /v1/stats/workspaces/me/top-pagesread:statsPáginas principales
GET /v1/stats/workspaces/me/conversions/breakdownread:statsConversiones del espacio de trabajo
GET /v1/stats/workspaces/me/donationsread:donationsTotales de los pagos de mecenas

El periodo se elige como se describe en Paginación, con period o con from y to. Cuánto puedes mirar hacia atrás depende del plan: 365 días en Creator Pro y Agency, 730 días en Enterprise. Los periodos más antiguos se recortan a este límite.

Push (solo lectura)

Método y rutaScopePara qué sirve
GET /v1/push/historyread:statsHistorial de push (limit, offset)
GET /v1/push/usageread:statsUso del límite semanal

Enviar notificaciones push y gestionar las reglas push solo es posible en el panel.

Espacio de trabajo, plantillas y dominios

Método y rutaScopePara qué sirve
GET /v1/workspaces/me/entitlementsread:workspacesFunciones y límites del plan
GET /v1/workspaces/me/usageread:workspacesUso actual
GET /v1/workspaces/me/usage/meteringread:workspacesHistorial de uso
GET /v1/workspaces/me/membersread:workspacesLista de miembros
GET /v1/workspaces/me/settingsread:workspacesAjustes del espacio de trabajo
GET /v1/workspaces/me/callback-secretsread:workspacesSecretos de callback (sin el secreto en texto plano)
GET /v1/workspaces/me/callback-secrets/{id}read:workspacesUn secreto de callback (sin el secreto en texto plano)
GET /v1/templatesread:workspacesTodas las plantillas
GET /v1/templates/availableread:workspacesPlantillas integradas y plantillas activas del espacio de trabajo con valores válidos de template_key; las plantillas del espacio de trabajo tienen la clave ws:<key> y el type workspace
GET /v1/templates/{key}read:workspacesUna plantilla
GET /v1/workspaces/me/templatesread:workspacesTus propias plantillas del espacio de trabajo
GET /v1/workspaces/me/templates/{id}read:workspacesUna plantilla del espacio de trabajo
POST, PATCH, DELETE /v1/workspaces/me/templates[/{id}]write:templatesCrear, editar y eliminar plantillas del espacio de trabajo; html como máximo 60.000 bytes (si no, 422 validation_failed con details.reason maxBytes), hasta 32 asset_slots
GET /v1/domainsread:workspacesDominios propios
GET /v1/domains/availableread:workspacesDominios disponibles para páginas

No disponible con claves de API

Los webhooks, la creación y la gestión de los secretos de callback, las integraciones, el envío de notificaciones push, la gestión de dominios, los miembros, la facturación y la eliminación de páginas solo están disponibles en el panel. Listar y leer los secretos de callback (sin el secreto en texto plano) sí funciona con read:workspaces. La lista completa está en Scopes en detalle. Los datos entrantes (ventas y tus propios datos en vivo) los envías con secretos aparte a los endpoints descritos en Callbacks.

¿No has encontrado nada?

Cuéntanos qué necesitas y nuestro equipo de soporte te ayudará personalmente.

Contactar con soporte