API de PasteMD
Cree y comparta documentos Markdown programáticamente. Gestione documentos, proyectos y más a través de la API REST.
Inicio rápido
Comience con una simple llamada a la API para crear un 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."}'Autenticación
Todas las solicitudes de API requieren una clave API en el encabezado X-API-Key. Las claves API están disponibles para usuarios del plan Pro.
Formato del encabezado
X-API-Key: pm_your_api_keyPuede crear claves API en su Configuración
Resumen de endpoints
La API proporciona 13 endpoints organizados en tres categorías.
| Método | Ruta | Descripción |
|---|---|---|
| Documentos | ||
| POST | /api/v1/documents | Crear un nuevo documento Markdown |
| GET | /api/v1/documents | Listar sus documentos con paginación |
| GET | /api/v1/documents/{id} | Obtener un documento por ID (UUID) |
| GET | /api/v1/documents/slug/{slug} | Obtener un documento por slug |
| PATCH | /api/v1/documents/{id} | Actualizar un documento (actualización parcial) |
| DELETE | /api/v1/documents/{id} | Eliminar un documento |
| Proyectos | ||
| POST | /api/v1/projects | Crear un nuevo proyecto |
| GET | /api/v1/projects | Listar sus proyectos |
| GET | /api/v1/projects/{id} | Obtener detalles del proyecto con lista de documentos |
| PATCH | /api/v1/projects/{id} | Actualizar un proyecto (solo propietario) |
| DELETE | /api/v1/projects/{id} | Eliminar un proyecto (solo propietario) |
| Uso y perfil | ||
| GET | /api/v1/me | Obtener información de su perfil |
| GET | /api/v1/usage | Obtener el uso de API del mes actual |
Documentos
/api/v1/documentsCrear un nuevo documento Markdown
Cuerpo de solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
content | string | Sí | Contenido Markdown (máx. 500,000 caracteres) |
title | string | No | Título del documento (máx. 200 caracteres, extraído del contenido si se omite) |
expiration | string | No | Período de expiración: 1h, 1d, 7d, 30d o never |
password | string | No | Protección con contraseña para el enlace compartido |
project_id | string | No | ID del proyecto (UUID) para vincular el documento |
is_public | boolean | No | Hacer el documento indexable por motores de búsqueda |
show_ai_chat | boolean | No | Mostrar chat de IA en el visor (Pro) |
show_toc | boolean | No | Mostrar tabla de contenidos en el visor (Pro) |
show_notes | boolean | No | Mostrar notas en el visor (Pro) |
show_comments | boolean | No | Mostrar comentarios/feedback en el visor (Pro) |
show_summary | boolean | No | Mostrar resumen de IA en el visor (Pro) |
Respuesta
{
"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 cuenta para su cuota mensual de creación de documentos (100/mes).
/api/v1/documentsListar sus documentos con paginación
Parámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
page | integer | No | Número de página (por defecto: 1) |
page_size | integer | No | Elementos por página, máx. 100 (por defecto: 20) |
project_id | string | No | Filtrar por ID de proyecto |
Respuesta
{
"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
}/api/v1/documents/{id}Obtener un documento por ID (UUID)
Devuelve la respuesta completa del documento incluyendo contenido. Solo accesible para sus propios documentos.
/api/v1/documents/slug/{slug}Obtener un documento por slug
Parámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
password | string | No | Contraseña para documentos protegidos |
/api/v1/documents/{id}Actualizar un documento (actualización parcial)
Cuerpo de solicitud
Todos los campos son opcionales. Solo se actualizarán los campos proporcionados.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
content | string | No | Contenido Markdown (máx. 500,000 caracteres) |
title | string | No | Título del documento (máx. 200 caracteres, extraído del contenido si se omite) |
expiration | string | No | Período de expiración. Use 'never' para eliminar la expiración |
password | string | No | Contraseña. Use cadena vacía '' para eliminar la contraseña |
project_id | string | No | ID del proyecto. Use cadena vacía '' para desvincular del proyecto |
is_public | boolean | No | Hacer el documento indexable por motores de búsqueda |
show_ai_chat | boolean | No | Mostrar chat de IA en el visor (Pro) |
show_toc | boolean | No | Mostrar tabla de contenidos en el visor (Pro) |
show_notes | boolean | No | Mostrar notas en el visor (Pro) |
show_comments | boolean | No | Mostrar comentarios/feedback en el visor (Pro) |
show_summary | boolean | No | Mostrar resumen de IA en el visor (Pro) |
/api/v1/documents/{id}Eliminar un documento
Elimina permanentemente el documento. Devuelve 204 No Content en caso de éxito.
Proyectos
/api/v1/projectsCrear un nuevo proyecto
Cuerpo de solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre del proyecto (máx. 100 caracteres) |
description | string | No | Descripción del proyecto (máx. 500 caracteres) |
Respuesta
{
"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"
}/api/v1/projectsListar sus proyectos
Respuesta
{
"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
}/api/v1/projects/{id}Obtener detalles del proyecto con lista de documentos
Devuelve los detalles del proyecto incluyendo todos los documentos. Accesible por propietario y miembros.
/api/v1/projects/{id}Actualizar un proyecto (solo propietario)
Cuerpo de solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | No | Nombre del proyecto (máx. 100 caracteres) |
description | string | No | Descripción del proyecto. Use cadena vacía '' para eliminar |
Solo el propietario del proyecto puede cambiar la configuración.
/api/v1/projects/{id}Eliminar un proyecto (solo propietario)
Elimina el proyecto. Los documentos se desvinculan, no se eliminan. Devuelve 204 No Content.
Uso y perfil
/api/v1/meObtener información de su perfil
Respuesta
{
"id": 12345,
"email": "user@example.com",
"display_name": "John Doe",
"plan": "pro",
"is_pro": true,
"created_at": "2025-01-01T00:00:00Z"
}/api/v1/usageObtener el uso de API del mes actual
Respuesta
{
"month": "2025-01",
"docs_created": 23,
"docs_limit": 100,
"remaining": 77
}Códigos de error
Todos los errores siguen un formato JSON consistente con código de error y mensaje.
| Estado | Descripción |
|---|---|
401 | Clave API inválida o faltante |
403 | Permisos insuficientes (ej.: no es propietario del proyecto) |
404 | Recurso no encontrado o no es de su propiedad |
422 | Cuerpo de solicitud o parámetros inválidos |
429 | Límite mensual de creación de documentos alcanzado |
Límites de velocidad
Solo la creación de documentos cuenta para su cuota mensual. Todas las demás operaciones son ilimitadas.
| Operación | Límite |
|---|---|
| Creación de documentos (POST) | 100 por mes |
| Lectura / Actualización / Eliminación | Ilimitado |
| Chat de IA (por documento) | 50 preguntas |
¿Listo para comenzar? Cree su clave API ahora.