API Documentation

picrd.com is free, account-free image hosting with a simple REST API.

Base URL: https://picrd.com — Images: https://i.picrd.com


POST /api/upload

Upload an image. Returns page and direct image URLs.

Request — multipart/form-data

file         (required) Image file — PNG, JPEG, WebP, GIF — max 10 MB
visibility   "unlisted" | "public"   default: unlisted
ttl_seconds  integer, optional       omit for permanent
album_id     string, optional        add to an existing album

Response 200

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

Errors

400  Invalid file type, too large, or bad params
429  Rate limited (60 uploads/hour per IP)

POST /api/album

Create an album. Use the returned album_id in upload requests.

Response 200

{
  "album_id":  "J82Lm9Qp2X1",
  "album_url": "https://picrd.com/a/J82Lm9Qp2X1"
}

GET /api/album/{album_id}

List images in an album, ordered by position.

Response 200

{
  "album_id": "J82Lm9Qp2X1",
  "images": [
    {
      "image_id":  "Ab3xK9xQ2Lm",
      "page_url":  "https://picrd.com/Ab3xK9xQ2Lm",
      "image_url": "https://i.picrd.com/images/Ab3xK9xQ2Lm.png"
    }
  ]
}

Image URLs

Raw images are served from https://i.picrd.com/images/{id}.{ext} with long cache headers. These URLs never change once assigned and are safe to embed anywhere.

Delete

The delete_url returned on upload is a secret single-use URL. Visit it in a browser to confirm deletion. Store it somewhere safe — it cannot be retrieved later.

Rate limits

60 uploads per hour per IP. Read endpoints are not rate limited.

curl example

curl -F "[email protected]" -F "visibility=unlisted" https://picrd.com/api/upload