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_key

Puede crear claves API en su Configuración

Resumen de endpoints

La API proporciona 13 endpoints organizados en tres categorías.

MétodoRutaDescripción
Documentos
POST/api/v1/documentsCrear un nuevo documento Markdown
GET/api/v1/documentsListar 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/projectsCrear un nuevo proyecto
GET/api/v1/projectsListar 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/meObtener información de su perfil
GET/api/v1/usageObtener el uso de API del mes actual

Documentos

POST/api/v1/documents

Crear un nuevo documento Markdown

Cuerpo de solicitud

CampoTipoRequeridoDescripción
contentstringContenido Markdown (máx. 500,000 caracteres)
titlestringNoTítulo del documento (máx. 200 caracteres, extraído del contenido si se omite)
expirationstringNoPeríodo de expiración: 1h, 1d, 7d, 30d o never
passwordstringNoProtección con contraseña para el enlace compartido
project_idstringNoID del proyecto (UUID) para vincular el documento
is_publicbooleanNoHacer el documento indexable por motores de búsqueda
show_ai_chatbooleanNoMostrar chat de IA en el visor (Pro)
show_tocbooleanNoMostrar tabla de contenidos en el visor (Pro)
show_notesbooleanNoMostrar notas en el visor (Pro)
show_commentsbooleanNoMostrar comentarios/feedback en el visor (Pro)
show_summarybooleanNoMostrar 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).

GET/api/v1/documents

Listar sus documentos con paginación

Parámetros de consulta

CampoTipoRequeridoDescripción
pageintegerNoNúmero de página (por defecto: 1)
page_sizeintegerNoElementos por página, máx. 100 (por defecto: 20)
project_idstringNoFiltrar 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
}
GET/api/v1/documents/{id}

Obtener un documento por ID (UUID)

Devuelve la respuesta completa del documento incluyendo contenido. Solo accesible para sus propios documentos.

GET/api/v1/documents/slug/{slug}

Obtener un documento por slug

Parámetros de consulta

CampoTipoRequeridoDescripción
passwordstringNoContraseña para documentos protegidos
PATCH/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.

CampoTipoRequeridoDescripción
contentstringNoContenido Markdown (máx. 500,000 caracteres)
titlestringNoTítulo del documento (máx. 200 caracteres, extraído del contenido si se omite)
expirationstringNoPeríodo de expiración. Use 'never' para eliminar la expiración
passwordstringNoContraseña. Use cadena vacía '' para eliminar la contraseña
project_idstringNoID del proyecto. Use cadena vacía '' para desvincular del proyecto
is_publicbooleanNoHacer el documento indexable por motores de búsqueda
show_ai_chatbooleanNoMostrar chat de IA en el visor (Pro)
show_tocbooleanNoMostrar tabla de contenidos en el visor (Pro)
show_notesbooleanNoMostrar notas en el visor (Pro)
show_commentsbooleanNoMostrar comentarios/feedback en el visor (Pro)
show_summarybooleanNoMostrar resumen de IA en el visor (Pro)
DELETE/api/v1/documents/{id}

Eliminar un documento

Elimina permanentemente el documento. Devuelve 204 No Content en caso de éxito.

Proyectos

POST/api/v1/projects

Crear un nuevo proyecto

Cuerpo de solicitud

CampoTipoRequeridoDescripción
namestringNombre del proyecto (máx. 100 caracteres)
descriptionstringNoDescripció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"
}
GET/api/v1/projects

Listar 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
}
GET/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.

PATCH/api/v1/projects/{id}

Actualizar un proyecto (solo propietario)

Cuerpo de solicitud

CampoTipoRequeridoDescripción
namestringNoNombre del proyecto (máx. 100 caracteres)
descriptionstringNoDescripción del proyecto. Use cadena vacía '' para eliminar

Solo el propietario del proyecto puede cambiar la configuración.

DELETE/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

GET/api/v1/me

Obtener 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"
}
GET/api/v1/usage

Obtener 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.

EstadoDescripción
401Clave API inválida o faltante
403Permisos insuficientes (ej.: no es propietario del proyecto)
404Recurso no encontrado o no es de su propiedad
422Cuerpo de solicitud o parámetros inválidos
429Lí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ónLímite
Creación de documentos (POST)100 por mes
Lectura / Actualización / EliminaciónIlimitado
Chat de IA (por documento)50 preguntas

¿Listo para comenzar? Cree su clave API ahora.