API PasteMD

Créez et partagez des documents Markdown par programmation. Gérez documents, projets et plus via l'API REST.

Démarrage rapide

Commencez avec un simple appel API pour créer un document.

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."}'

Authentification

Toutes les requêtes API nécessitent une clé API dans l'en-tête X-API-Key. Les clés API sont disponibles pour les utilisateurs du plan Pro.

Format de l'en-tête

X-API-Key: pm_your_api_key

Vous pouvez créer des clés API dans vos Paramètres

Aperçu des endpoints

L'API fournit 13 endpoints organisés en trois catégories.

MéthodeCheminDescription
Documents
POST/api/v1/documentsCréer un nouveau document Markdown
GET/api/v1/documentsLister vos documents avec pagination
GET/api/v1/documents/{id}Obtenir un document par ID (UUID)
GET/api/v1/documents/slug/{slug}Obtenir un document par slug
PATCH/api/v1/documents/{id}Mettre à jour un document (mise à jour partielle)
DELETE/api/v1/documents/{id}Supprimer un document
Projets
POST/api/v1/projectsCréer un nouveau projet
GET/api/v1/projectsLister vos projets
GET/api/v1/projects/{id}Obtenir les détails du projet avec la liste des documents
PATCH/api/v1/projects/{id}Mettre à jour un projet (propriétaire uniquement)
DELETE/api/v1/projects/{id}Supprimer un projet (propriétaire uniquement)
Utilisation et profil
GET/api/v1/meObtenir vos informations de profil
GET/api/v1/usageObtenir votre utilisation API du mois en cours

Documents

POST/api/v1/documents

Créer un nouveau document Markdown

Corps de la requête

ChampTypeRequisDescription
contentstringOuiContenu Markdown (max. 500 000 caractères)
titlestringNonTitre du document (max. 200 caractères, extrait du contenu si omis)
expirationstringNonPériode d'expiration : 1h, 1d, 7d, 30d ou never
passwordstringNonProtection par mot de passe pour le lien de partage
project_idstringNonID du projet (UUID) pour associer le document
is_publicbooleanNonRendre le document indexable par les moteurs de recherche
show_ai_chatbooleanNonAfficher le chat IA dans le lecteur (Pro)
show_tocbooleanNonAfficher la table des matières dans le lecteur (Pro)
show_notesbooleanNonAfficher les notes dans le lecteur (Pro)
show_commentsbooleanNonAfficher les commentaires/retours dans le lecteur (Pro)
show_summarybooleanNonAfficher le résumé IA dans le lecteur (Pro)

Réponse

{
  "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
}

Cet endpoint est décompté de votre quota mensuel de création de documents (100/mois).

GET/api/v1/documents

Lister vos documents avec pagination

Paramètres de requête

ChampTypeRequisDescription
pageintegerNonNuméro de page (par défaut : 1)
page_sizeintegerNonÉléments par page, max. 100 (par défaut : 20)
project_idstringNonFiltrer par ID de projet

Réponse

{
  "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}

Obtenir un document par ID (UUID)

Retourne la réponse complète du document incluant le contenu. Seuls vos propres documents sont accessibles.

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

Obtenir un document par slug

Paramètres de requête

ChampTypeRequisDescription
passwordstringNonMot de passe pour les documents protégés
PATCH/api/v1/documents/{id}

Mettre à jour un document (mise à jour partielle)

Corps de la requête

Tous les champs sont optionnels. Seuls les champs fournis seront mis à jour.

ChampTypeRequisDescription
contentstringNonContenu Markdown (max. 500 000 caractères)
titlestringNonTitre du document (max. 200 caractères, extrait du contenu si omis)
expirationstringNonPériode d'expiration. Utilisez 'never' pour supprimer l'expiration
passwordstringNonMot de passe. Utilisez une chaîne vide '' pour supprimer le mot de passe
project_idstringNonID du projet. Utilisez une chaîne vide '' pour dissocier du projet
is_publicbooleanNonRendre le document indexable par les moteurs de recherche
show_ai_chatbooleanNonAfficher le chat IA dans le lecteur (Pro)
show_tocbooleanNonAfficher la table des matières dans le lecteur (Pro)
show_notesbooleanNonAfficher les notes dans le lecteur (Pro)
show_commentsbooleanNonAfficher les commentaires/retours dans le lecteur (Pro)
show_summarybooleanNonAfficher le résumé IA dans le lecteur (Pro)
DELETE/api/v1/documents/{id}

Supprimer un document

Supprime définitivement le document. Retourne 204 No Content en cas de succès.

Projets

POST/api/v1/projects

Créer un nouveau projet

Corps de la requête

ChampTypeRequisDescription
namestringOuiNom du projet (max. 100 caractères)
descriptionstringNonDescription du projet (max. 500 caractères)

Réponse

{
  "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

Lister vos projets

Réponse

{
  "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}

Obtenir les détails du projet avec la liste des documents

Retourne les détails du projet incluant tous les documents. Accessible par le propriétaire et les membres.

PATCH/api/v1/projects/{id}

Mettre à jour un projet (propriétaire uniquement)

Corps de la requête

ChampTypeRequisDescription
namestringNonNom du projet (max. 100 caractères)
descriptionstringNonDescription du projet. Utilisez une chaîne vide '' pour supprimer

Seul le propriétaire du projet peut modifier les paramètres.

DELETE/api/v1/projects/{id}

Supprimer un projet (propriétaire uniquement)

Supprime le projet. Les documents sont dissociés, pas supprimés. Retourne 204 No Content.

Utilisation et profil

GET/api/v1/me

Obtenir vos informations de profil

Réponse

{
  "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

Obtenir votre utilisation API du mois en cours

Réponse

{
  "month": "2025-01",
  "docs_created": 23,
  "docs_limit": 100,
  "remaining": 77
}

Codes d'erreur

Toutes les erreurs suivent un format JSON cohérent avec code d'erreur et message.

StatutDescription
401Clé API invalide ou manquante
403Permissions insuffisantes (ex. : pas propriétaire du projet)
404Ressource non trouvée ou ne vous appartenant pas
422Corps de requête ou paramètres invalides
429Limite mensuelle de création de documents atteinte

Limites de débit

Seule la création de documents est décomptée de votre quota mensuel. Toutes les autres opérations sont illimitées.

OpérationLimite
Création de documents (POST)100 par mois
Lecture / Mise à jour / SuppressionIllimité
Chat IA (par document)50 questions

Prêt à commencer ? Créez votre clé API maintenant.