API Overview
The Pictify API is a RESTful JSON API for generating images, GIFs, and PDFs programmatically.Base URL
Authentication
All requests require a Bearer token:Request Format
- Content-Type:
application/json - Request bodies are JSON
- Dates use ISO 8601 format
Response Format
Successful responses return JSON with relevant data:Rate Limits
Rate limits vary by plan:| Plan | Requests/Minute | Requests/Day |
|---|---|---|
| Free | 60 | 1,000 |
| Pro | 300 | 10,000 |
| Business | 1,000 | 100,000 |
| Enterprise | Custom | Custom |
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Requests remaining in window |
X-RateLimit-Reset | Unix timestamp when window resets |
Retry-After | Seconds to wait (on 429 responses) |
Pagination
List endpoints return paginated results:HTTP Status Codes
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 202 | Accepted (async operation started) |
| 400 | Bad Request (validation error) |
| 401 | Unauthorized (invalid API key) |
| 403 | Forbidden (access denied) |
| 404 | Not Found |
| 422 | Unprocessable Entity |
| 429 | Rate Limit Exceeded |
| 500 | Internal Server Error |
Idempotency
POST requests can include anIdempotency-Key header for safe retries:
Versioning
The API does not currently use URL-based versioning. All endpoints are accessed directly from the base URL. Breaking changes will be communicated in advance via release notes.SDK Libraries
Official SDKs handle authentication, retries, and error handling:Endpoints
Generation
| Endpoint | Method | Description |
|---|---|---|
/image | POST | Generate an image |
/image/canvas | POST | Image from FabricJS canvas |
/image/agent-screenshot | POST | AI-powered screenshot |
/templates/{uid}/render | POST | Render template to image |
/gif | POST | Generate a GIF |
/gif/capture | POST | Capture GIF from URL |
/pdf/render | POST | Generate a PDF |
/pdf/multi-page | POST | Multi-page PDF |
Templates
| Endpoint | Method | Description |
|---|---|---|
/templates | GET | List templates |
/templates | POST | Create template |
/templates/{uid} | GET | Get template |
/templates/{uid} | PUT | Update template |
/templates/{uid} | DELETE | Delete template |
/templates/{uid}/render | POST | Render template |
/templates/{uid}/variables | GET | Get variables |
Batch Operations
| Endpoint | Method | Description |
|---|---|---|
/templates/{uid}/batch-render | POST | Start batch job |
/templates/batch/{id}/results | GET | Get batch results |
/templates/batch/{id}/cancel | POST | Cancel batch |
Webhooks
| Endpoint | Method | Description |
|---|---|---|
/webhook-subscriptions | GET | List subscriptions |
/webhook-subscriptions | POST | Create subscription |
/webhook-subscriptions/{uid} | GET | Get subscription |
/webhook-subscriptions/{uid} | PUT | Update subscription |
/webhook-subscriptions/{uid} | DELETE | Delete subscription |
Bindings
| Endpoint | Method | Description |
|---|---|---|
/bindings | GET | List bindings |
/bindings | POST | Create binding |
/bindings/{uid} | GET | Get binding |
/bindings/{uid} | PUT | Update binding |
/bindings/{uid} | DELETE | Delete binding |