Upload images to picrd.com and get back permanent, embeddable URLs.
No API key required. No account needed. Images are served from a CDN at i.picrd.com.
FormatMax sizePNG10 MBJPEG10 MBWebP10 MBGIF10 MB
Endpoint: POST https://picrd.com/api/upload Content-Type: multipart/form-data
FieldDescriptionfileThe image file (PNG, JPEG, WebP, or GIF)
FieldDescriptionDefaultvisibility``"unlisted" or "public"``unlisted``ttl_secondsAuto-delete after this many seconds (omit = permanent)permanentalbum_idAdd the image to an existing albumnone
bash
curl -s -F "file=@/path/to/image.png" -F "visibility=unlisted" https://picrd.com/api/upload
json
{
"image_id": "Ab3xK9xQ2Lm",
"page_url": "https://picrd.com/Ab3xK9xQ2Lm",
"image_url": "https://i.picrd.com/images/Ab3xK9xQ2Lm.png",
"delete_url": "https://picrd.com/delete/<token>",
"expires_at": null
}
image_url to embed the image in markdown: page_url to link to the image's landing page.delete_url somewhere safe — it is a single-use secret URL and cannot be retrieved later.Group multiple images into an album.
Endpoint: POST https://picrd.com/api/albums
bash
curl -s -X POST https://picrd.com/api/albums
json
{
"album_id": "J82Lm9Qp2X1",
"album_url": "https://picrd.com/a/J82Lm9Qp2X1"
}
Then pass the album_id in subsequent upload requests:
bash
curl -s -F "file=@/path/to/image.png" -F "album_id=J82Lm9Qp2X1" https://picrd.com/api/upload
Endpoint: GET https://picrd.com/api/albums/<album_id>
bash
curl -s https://picrd.com/api/albums/J82Lm9Qp2X1
json
{
"album_id": "J82Lm9Qp2X1",
"images": [
{
"image_id": "Ab3xK9xQ2Lm",
"page_url": "https://picrd.com/Ab3xK9xQ2Lm",
"image_url": "https://i.picrd.com/images/Ab3xK9xQ2Lm.png"
}
]
}
HTTP statusMeaningAction400Invalid file type, file too large, or bad paramsCheck file format is PNG/JPEG/WebP/GIF and ≤ 10 MB429Rate limitedWait and retry — limit is 60 uploads/hour
If the upload fails with a 400 error due to file size, try compressing or resizing the image first:
bash
# macOS — resize to max 1920px wide using sips
sips --resampleWidth 1920 /path/to/image.png --out /path/to/resized.png
# Linux — resize using ImageMagick
convert /path/to/image.png -resize 1920x /path/to/resized.png
Then retry the upload with the resized file.
A common end-to-end workflow:
Capture a screenshot (using whatever tool is available).
Upload it: bash
curl -s -F "file=@screenshot.png" -F "visibility=unlisted" https://picrd.com/api/upload
Parse the JSON response to extract image_url.
Embed in markdown: markdown

Store the delete_url if the image may need to be removed later.
unlisted are not listed publicly but are accessible if someone has the URL.delete_url is a one-time secret. Store it immediately — it cannot be recovered.i.picrd.com are permanent and served with long cache headers.