Two file operations: put an image into GREM to attach it to a listing or pass it to a tool, and collect a tool's generated result.
Base URL: https://developers.grem.capital/api/v1.
Upload an image
curl -X POST https://developers.grem.capital/api/v1/uploads \
-H "Authorization: Bearer gsk_live_xxx" \
-F "[email protected]"
{ "files": [ { "id": "...", "url": "..." } ], "requestId": "req_..." }
Needs the media:write scope. Uploads are not charged.
Limits:
| Parameter | Value |
|---|---|
| Formats | JPG, PNG, WEBP |
| One file | up to 15 MB; larger - 413 |
| Files per request | up to 10 |
| Whole request | up to 30 MB |
Form field names do not matter - send as many file parts as fit the limits.
Put the returned ids into photos when creating or editing a listing (Listings), and the urls wherever a tool takes photo addresses (content pack, form.media.photos):
{ "photos": ["<first file id>", "<second file id>"] }
Only you get the link to the original. Once the photo is attached to a published listing, the catalog serves others only the watermarked variants.
Download a result
Download files through the GREM domain with the same key:
curl -H "Authorization: Bearer gsk_live_xxx" \
https://developers.grem.capital/api/v1/artifacts/<path> \
-o presentation.pdf
Needs the tools:artifacts scope. A download is a GET, so it is free and is not counted as an API call.
Partial downloads via the Range header are supported: large videos and presentations can be fetched in parts or resumed.
The key is needed here too: an artifact link is not public. Do not embed it in a page your visitors see - serve the file from your own server instead.
You cannot pass an arbitrary path: only result download paths and /files/... files are accepted, everything else returns 404. The full list of paths is in Jobs and results.
Related
- Tools via API - what creates these files.
- Listings - the listing and photo shape.
- Errors - refusal codes.