Appearance
IPFS
Pin images to IPFS through Pinata and list files you previously uploaded. Related: Collections (image metadata values are typically ipfs://… URIs from this endpoint).
Uploads are images only (PNG, JPEG, WebP, GIF, max 5MB). The API compresses each file to WebP (≤1MB) before pinning. Pinning is free (no credits).
The gallery catalog is per Mintea user. Pins made before the catalog existed are on Pinata but will not appear in GET /v1/ipfs/files.
TIP
Requires PINATA_JWT on the API. Browser sessions use the mintea_session cookie; scripts use Authorization: Bearer mtk_… / mts_….
| Method | Path | Auth | Credits | Description |
|---|---|---|---|---|
POST | /v1/ipfs/pin | Yes | — | Pin a single image (multipart field file) |
GET | /v1/ipfs/files | Yes | — | List your pinned images (cursor, limit, q) |
Pin
POST /v1/ipfs/pin with multipart/form-data and field file.
Success (catalog write succeeded):
json
{
"uri": "ipfs://bafy…",
"cid": "bafy…",
"id": "clx…",
"name": "photo.webp",
"mimeType": "image/webp",
"sizeBytes": 184320,
"createdAt": "2026-09-18T19:00:00.000Z"
}If Pinata succeeds but the catalog write fails, the response is still { "uri", "cid" } so minting is not blocked.
Errors: missing file or invalid type → 400; larger than 5MB → 400; Pinata unset/unavailable → 503.
bash
curl -b cookies.txt -X POST https://api.mintea.tech/v1/ipfs/pin \
-F 'file=@./cover.png'List
GET /v1/ipfs/files?cursor=&limit=&q=
limit: 1–48, default 24cursor: opaque token from the previous pageq: optional case-insensitive filter on filename or CID
json
{
"page": [
{
"id": "clx…",
"cid": "bafy…",
"uri": "ipfs://bafy…",
"name": "photo.webp",
"mimeType": "image/webp",
"sizeBytes": 184320,
"createdAt": "2026-09-18T19:00:00.000Z"
}
],
"nextCursor": null,
"total": 1
}Only the authenticated user’s files are returned.