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_keyVous 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éthode | Chemin | Description |
|---|---|---|
| Documents | ||
| POST | /api/v1/documents | Créer un nouveau document Markdown |
| GET | /api/v1/documents | Lister 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/projects | Créer un nouveau projet |
| GET | /api/v1/projects | Lister 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/me | Obtenir vos informations de profil |
| GET | /api/v1/usage | Obtenir votre utilisation API du mois en cours |
Documents
/api/v1/documentsCréer un nouveau document Markdown
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
content | string | Oui | Contenu Markdown (max. 500 000 caractères) |
title | string | Non | Titre du document (max. 200 caractères, extrait du contenu si omis) |
expiration | string | Non | Période d'expiration : 1h, 1d, 7d, 30d ou never |
password | string | Non | Protection par mot de passe pour le lien de partage |
project_id | string | Non | ID du projet (UUID) pour associer le document |
is_public | boolean | Non | Rendre le document indexable par les moteurs de recherche |
show_ai_chat | boolean | Non | Afficher le chat IA dans le lecteur (Pro) |
show_toc | boolean | Non | Afficher la table des matières dans le lecteur (Pro) |
show_notes | boolean | Non | Afficher les notes dans le lecteur (Pro) |
show_comments | boolean | Non | Afficher les commentaires/retours dans le lecteur (Pro) |
show_summary | boolean | Non | Afficher 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).
/api/v1/documentsLister vos documents avec pagination
Paramètres de requête
| Champ | Type | Requis | Description |
|---|---|---|---|
page | integer | Non | Numéro de page (par défaut : 1) |
page_size | integer | Non | Éléments par page, max. 100 (par défaut : 20) |
project_id | string | Non | Filtrer 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
}/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.
/api/v1/documents/slug/{slug}Obtenir un document par slug
Paramètres de requête
| Champ | Type | Requis | Description |
|---|---|---|---|
password | string | Non | Mot de passe pour les documents protégés |
/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.
| Champ | Type | Requis | Description |
|---|---|---|---|
content | string | Non | Contenu Markdown (max. 500 000 caractères) |
title | string | Non | Titre du document (max. 200 caractères, extrait du contenu si omis) |
expiration | string | Non | Période d'expiration. Utilisez 'never' pour supprimer l'expiration |
password | string | Non | Mot de passe. Utilisez une chaîne vide '' pour supprimer le mot de passe |
project_id | string | Non | ID du projet. Utilisez une chaîne vide '' pour dissocier du projet |
is_public | boolean | Non | Rendre le document indexable par les moteurs de recherche |
show_ai_chat | boolean | Non | Afficher le chat IA dans le lecteur (Pro) |
show_toc | boolean | Non | Afficher la table des matières dans le lecteur (Pro) |
show_notes | boolean | Non | Afficher les notes dans le lecteur (Pro) |
show_comments | boolean | Non | Afficher les commentaires/retours dans le lecteur (Pro) |
show_summary | boolean | Non | Afficher le résumé IA dans le lecteur (Pro) |
/api/v1/documents/{id}Supprimer un document
Supprime définitivement le document. Retourne 204 No Content en cas de succès.
Projets
/api/v1/projectsCréer un nouveau projet
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom du projet (max. 100 caractères) |
description | string | Non | Description 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"
}/api/v1/projectsLister 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
}/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.
/api/v1/projects/{id}Mettre à jour un projet (propriétaire uniquement)
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Non | Nom du projet (max. 100 caractères) |
description | string | Non | Description du projet. Utilisez une chaîne vide '' pour supprimer |
Seul le propriétaire du projet peut modifier les paramètres.
/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
/api/v1/meObtenir 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"
}/api/v1/usageObtenir 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.
| Statut | Description |
|---|---|
401 | Clé API invalide ou manquante |
403 | Permissions insuffisantes (ex. : pas propriétaire du projet) |
404 | Ressource non trouvée ou ne vous appartenant pas |
422 | Corps de requête ou paramètres invalides |
429 | Limite 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ération | Limite |
|---|---|
| Création de documents (POST) | 100 par mois |
| Lecture / Mise à jour / Suppression | Illimité |
| Chat IA (par document) | 50 questions |
Prêt à commencer ? Créez votre clé API maintenant.