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.
| Format | Max size |
|---|---|
| -------- | ---------- |
| PNG | 10 MB |
| JPEG | 10 MB |
| WebP | 10 MB |
| GIF | 10 MB |
Endpoint: POST https://picrd.com/api/upload
Content-Type: multipart/form-data
| Field | Description |
|---|---|
| -------- | ------------------------------------------ |
file | The image file (PNG, JPEG, WebP, or GIF) |
| Field | Description | Default |
|---|---|---|
| --------------- | ------------------------------------------------------ | ------------ |
visibility | "unlisted" or "public" | unlisted |
ttl_seconds | Auto-delete after this many seconds (omit = permanent) | permanent |
album_id | Add the image to an existing album | none |
curl -s -F "file=@/path/to/image.png" -F "visibility=unlisted" https://picrd.com/api/upload
{
"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: !descriptionpage_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
curl -s -X POST https://picrd.com/api/albums
{
"album_id": "J82Lm9Qp2X1",
"album_url": "https://picrd.com/a/J82Lm9Qp2X1"
}
Then pass the album_id in subsequent upload requests:
curl -s -F "file=@/path/to/image.png" -F "album_id=J82Lm9Qp2X1" https://picrd.com/api/upload
Endpoint: GET https://picrd.com/api/albums/
curl -s https://picrd.com/api/albums/J82Lm9Qp2X1
{
"album_id": "J82Lm9Qp2X1",
"images": [
{
"image_id": "Ab3xK9xQ2Lm",
"page_url": "https://picrd.com/Ab3xK9xQ2Lm",
"image_url": "https://i.picrd.com/images/Ab3xK9xQ2Lm.png"
}
]
}
| HTTP status | Meaning | Action |
|---|---|---|
| ------------- | -------------------------------------------------- | --------------------------------------------- |
| 400 | Invalid file type, file too large, or bad params | Check file format is PNG/JPEG/WebP/GIF and ≤ 10 MB |
| 429 | Rate limited | Wait 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:
# 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:
```bash
curl -s -F "file=@screenshot.png" -F "visibility=unlisted" https://picrd.com/api/upload
```
image_url.```markdown
```
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.共 1 个版本