PasteMD API
Erstellen und teilen Sie Markdown-Dokumente programmatisch. Verwalten Sie Dokumente, Projekte und mehr über die REST API.
Schnellstart
Beginnen Sie mit einem einfachen API-Aufruf, um ein Dokument zu erstellen.
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."}'Authentifizierung
Alle API-Anfragen erfordern einen API-Schlüssel im X-API-Key-Header. API-Schlüssel sind für Pro-Plan-Nutzer verfügbar.
Header-Format
X-API-Key: pm_your_api_keySie können API-Schlüssel in Ihren Einstellungen
Endpunkte-Übersicht
Die API bietet 13 Endpunkte in drei Kategorien.
| Methode | Pfad | Beschreibung |
|---|---|---|
| Dokumente | ||
| POST | /api/v1/documents | Neues Markdown-Dokument erstellen |
| GET | /api/v1/documents | Dokumentliste abrufen (mit Paginierung) |
| GET | /api/v1/documents/{id} | Dokument per ID (UUID) abrufen |
| GET | /api/v1/documents/slug/{slug} | Dokument per Slug abrufen |
| PATCH | /api/v1/documents/{id} | Dokument aktualisieren (Teilaktualisierung) |
| DELETE | /api/v1/documents/{id} | Dokument löschen |
| Projekte | ||
| POST | /api/v1/projects | Neues Projekt erstellen |
| GET | /api/v1/projects | Projektliste abrufen |
| GET | /api/v1/projects/{id} | Projektdetails mit Dokumentliste abrufen |
| PATCH | /api/v1/projects/{id} | Projekt aktualisieren (nur Eigentümer) |
| DELETE | /api/v1/projects/{id} | Projekt löschen (nur Eigentümer) |
| Nutzung & Profil | ||
| GET | /api/v1/me | Profilinformationen abrufen |
| GET | /api/v1/usage | API-Nutzung des aktuellen Monats abrufen |
Dokumente
/api/v1/documentsNeues Markdown-Dokument erstellen
Anfragekörper
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
content | string | Ja | Markdown-Inhalt (max. 500.000 Zeichen) |
title | string | Nein | Dokumenttitel (max. 200 Zeichen, wird aus Inhalt extrahiert wenn leer) |
expiration | string | Nein | Ablaufzeit: 1h, 1d, 7d, 30d oder never |
password | string | Nein | Passwortschutz für den Freigabelink |
project_id | string | Nein | Projekt-ID (UUID) zum Verknüpfen des Dokuments |
is_public | boolean | Nein | Dokument für Suchmaschinen öffentlich machen |
show_ai_chat | boolean | Nein | KI-Chat im Viewer anzeigen (Pro) |
show_toc | boolean | Nein | Inhaltsverzeichnis im Viewer anzeigen (Pro) |
show_notes | boolean | Nein | Notizen im Viewer anzeigen (Pro) |
show_comments | boolean | Nein | Kommentare/Feedback im Viewer anzeigen (Pro) |
show_summary | boolean | Nein | KI-Zusammenfassung im Viewer anzeigen (Pro) |
Antwort
{
"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
}Dieser Endpunkt wird auf Ihr monatliches Dokumenterstellungskontingent angerechnet (100/Monat).
/api/v1/documentsDokumentliste abrufen (mit Paginierung)
Abfrageparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
page | integer | Nein | Seitennummer (Standard: 1) |
page_size | integer | Nein | Einträge pro Seite, max. 100 (Standard: 20) |
project_id | string | Nein | Nach Projekt-ID filtern |
Antwort
{
"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}Dokument per ID (UUID) abrufen
Gibt die vollständige Dokumentantwort inklusive Inhalt zurück. Nur eigene Dokumente sind zugänglich.
/api/v1/documents/slug/{slug}Dokument per Slug abrufen
Abfrageparameter
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
password | string | Nein | Passwort für geschützte Dokumente |
/api/v1/documents/{id}Dokument aktualisieren (Teilaktualisierung)
Anfragekörper
Alle Felder sind optional. Nur angegebene Felder werden aktualisiert.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
content | string | Nein | Markdown-Inhalt (max. 500.000 Zeichen) |
title | string | Nein | Dokumenttitel (max. 200 Zeichen, wird aus Inhalt extrahiert wenn leer) |
expiration | string | Nein | Ablaufzeit. 'never' entfernt die Ablaufzeit |
password | string | Nein | Passwort. Leerer String '' entfernt das Passwort |
project_id | string | Nein | Projekt-ID. Leerer String '' trennt vom Projekt |
is_public | boolean | Nein | Dokument für Suchmaschinen öffentlich machen |
show_ai_chat | boolean | Nein | KI-Chat im Viewer anzeigen (Pro) |
show_toc | boolean | Nein | Inhaltsverzeichnis im Viewer anzeigen (Pro) |
show_notes | boolean | Nein | Notizen im Viewer anzeigen (Pro) |
show_comments | boolean | Nein | Kommentare/Feedback im Viewer anzeigen (Pro) |
show_summary | boolean | Nein | KI-Zusammenfassung im Viewer anzeigen (Pro) |
/api/v1/documents/{id}Dokument löschen
Löscht das Dokument dauerhaft. Gibt bei Erfolg 204 No Content zurück.
Projekte
/api/v1/projectsNeues Projekt erstellen
Anfragekörper
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | string | Ja | Projektname (max. 100 Zeichen) |
description | string | Nein | Projektbeschreibung (max. 500 Zeichen) |
Antwort
{
"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/projectsProjektliste abrufen
Antwort
{
"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}Projektdetails mit Dokumentliste abrufen
Gibt Projektdetails inklusive Dokumentliste zurück. Nur für Eigentümer und Mitglieder zugänglich.
/api/v1/projects/{id}Projekt aktualisieren (nur Eigentümer)
Anfragekörper
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | string | Nein | Projektname (max. 100 Zeichen) |
description | string | Nein | Projektbeschreibung. Leerer String '' entfernt die Beschreibung |
Nur der Projekteigentümer kann Einstellungen ändern.
/api/v1/projects/{id}Projekt löschen (nur Eigentümer)
Löscht das Projekt. Dokumente werden nicht gelöscht, sondern getrennt. Gibt 204 No Content zurück.
Nutzung & Profil
/api/v1/meProfilinformationen abrufen
Antwort
{
"id": 12345,
"email": "user@example.com",
"display_name": "John Doe",
"plan": "pro",
"is_pro": true,
"created_at": "2025-01-01T00:00:00Z"
}/api/v1/usageAPI-Nutzung des aktuellen Monats abrufen
Antwort
{
"month": "2025-01",
"docs_created": 23,
"docs_limit": 100,
"remaining": 77
}Fehlercodes
Alle Fehler werden in einem einheitlichen JSON-Format mit Fehlercode und Nachricht zurückgegeben.
| Status | Beschreibung |
|---|---|
401 | Ungültiger oder fehlender API-Schlüssel |
403 | Unzureichende Berechtigungen (z.B. kein Projekteigentümer) |
404 | Ressource nicht gefunden oder nicht in Ihrem Besitz |
422 | Ungültiger Anfragekörper oder Parameter |
429 | Monatliches Dokumenterstellungslimit erreicht |
Ratenlimits
Nur die Dokumenterstellung wird auf Ihr monatliches Kontingent angerechnet. Alle anderen Operationen sind unbegrenzt.
| Operation | Limit |
|---|---|
| Dokumenterstellung (POST) | 100 pro Monat |
| Lesen / Aktualisieren / Löschen | Unbegrenzt |
| KI-Chat (pro Dokument) | 50 Fragen |
Bereit loszulegen? Erstellen Sie jetzt Ihren API-Schlüssel.