API Requests
DrakoPaste lets you create and retrieve pastes via a simple REST API.
Base URL
https://your-domain.com/api/v1
Rate Limits
POST /pastes → 20 req/min per IP
GET /pastes → 10 req/min per IP
Headers in every response:
X-RateLimit-Limit
X-RateLimit-Remaining
X-RateLimit-Reset
Authentication
No authentication required. All endpoints are public (with rate limits).
Endpoints
1. Create Paste
POST /pastes
content
string
✅
Paste text (1MB)
title
string
❌
Max 100 chars
language
string
❌
Syntax highlighting
visibility
string
❌
public
, unlisted
, private
burnAfterRead
boolean
❌
Delete after first view
expiration
string
❌
never
, 1hour
, 1day
, 1week
, 1month
password
string
❌
Protect paste
maxViews
number
❌
1–1000 views
Example:
curl -X POST https://your-domain.com/api/v1/pastes \
-H "Content-Type: application/json" \
-d '{
"title": "Hello World",
"content": "console.log(\"Hello, World!\");",
"language": "javascript",
"visibility": "public",
"expiration": "1week"
}'
2. Retrieve Paste
GET /pastes?id={pasteId}
id
string
✅
Paste ID
Example:
curl "https://your-domain.com/api/v1/pastes?id=abc123def"
Error Codes
INVALID_JSON
Bad JSON body
EMPTY_BODY
Request body missing
VALIDATION_ERROR
Missing/invalid fields
CONTENT_TOO_LARGE
Exceeds 1MB
TITLE_TOO_LONG
Title >100 chars
INVALID_EXPIRATION
Wrong expiration value
RATE_LIMIT_EXCEEDED
Too many requests
MISSING_ID
Paste ID required
PASTE_NOT_FOUND
Paste does not exist
PASTE_EXPIRED
Paste expired
PASTE_BURNED
Burn-after-read triggered
MAX_VIEWS_REACHED
View limit hit
DATABASE_ERROR
DB issue
Examples
Simple text
curl -X POST https://your-domain.com/api/v1/pastes \
-H "Content-Type: application/json" \
-d '{"content": "My notes"}'
Code snippet
-d '{
"title": "React Component",
"content": "function App(){return <div>Hello</div>}",
"language": "javascript"
}'
Private + password
-d '{
"content": "api_key=secret123",
"visibility": "private",
"password": "mypassword"
}'
Burn after read
-d '{
"content": "One-time secret",
"burnAfterRead": true
}'
Limited views
-d '{
"content": "5-view paste",
"maxViews": 5
}'
Supported Languages
DrakoPaste supports 90+ languages and formats.
Web:
javascript
,typescript
,jsx
,tsx
,html
,css
,scss
General:
python
,java
,csharp
,cpp
,c
,go
,rust
,php
,ruby
,swift
Functional:
haskell
,clojure
,elixir
,erlang
,fsharp
,ocaml
Shell & Scripts:
bash
,zsh
,powershell
,batch
Data/Config:
json
,yaml
,toml
,ini
,xml
,csv
Database:
sql
,plsql
,mongodb
Docs:
markdown
,latex
,asciidoc
DevOps:
docker
,terraform
,kubernetes
,nginx
,apache
Other:
regex
,diff
,git
,protobuf
,graphql
,solidity
,wasm
,assembly
Scientific/Legacy:
r
,matlab
,julia
,fortran
,cobol
,pascal
👉 For plain text, use text
or leave language
empty.
Client Examples
Node.js
const res = await fetch("https://your-domain.com/api/v1/pastes", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ content: "console.log('Hello')" })
});
console.log(await res.json());
Python
import requests
res = requests.post("https://your-domain.com/api/v1/pastes", json={
"content": "print('Hello')"
})
print(res.json())
Last updated