🔑 API Key Manager v2.0

Click "Generate Key" to create your key

Keys are stored in localStorage. Never share your API key publicly. Use Test keys for development.

📊 Usage Dashboard

47
Requests Today
/ 1,000 quota
2.3 GB
Storage Used
/ 10 GB limit
98.2%
Success Rate
Last 30 days
312ms
Avg Response
p50 latency
Requests (47 / 1,000)4.7%
Storage (2.3 GB / 10 GB)23%

Resets daily at 00:00 UTC. Upgrade plan for higher limits.

🚀 Live API Playground

POST https://api.gifmakes.com/v1/upload/gif
Authorization: Bearer YOUR_API_KEY
Content-Type:  multipart/form-data
Accept:         application/json
X-API-Version:  2.0
// Response will appear here after sending a request...

💻 Code Examples

cURL
JavaScript
Python
PHP
Node.js
✓ Copied!
✓ Copied!
✓ Copied!
✓ Copied!
✓ Copied!

📋 Upload History

Filename Type Size Status Date Link

🔔 Webhook Configuration

Upload finished
After conversion
Compression done
On any error
File removed
URL expired

📜 Delivery Log

2026-06-27 13:41 upload_completed → yourapp.com 200
2026-06-27 11:22 conversion_completed → yourapp.com 200
2026-06-26 09:14 job_failed → yourapp.com 500

📖 Endpoint Reference

Method Endpoint Description Auth Rate Limit
POST/v1/upload/gifUpload a GIF file directly✓ Yes100/min
POST/v1/upload/mp4Upload an MP4 video file✓ Yes50/min
POST/v1/convert/mp4-to-gifConvert uploaded MP4 to GIF✓ Yes50/min
POST/v1/convert/images-to-gifStitch images into animated GIF✓ Yes50/min
POST/v1/gif/resizeResize GIF dimensions✓ Yes200/min
POST/v1/gif/compressCompress GIF, reduce file size✓ Yes200/min
POST/v1/gif/rotateRotate GIF by degrees✓ Yes200/min
POST/v1/gif/reverseReverse GIF animation playback✓ Yes200/min
POST/v1/gif/mergeMerge multiple GIFs into one✓ Yes100/min
POST/v1/gif/splitSplit GIF into segments✓ Yes100/min
GET/v1/gif/frames/countGet frame count of a GIF✓ Yes500/min
POST/v1/gif/frames/extractExtract frames as PNG images✓ Yes100/min
POST/v1/gif/frames/base64Get frames as base64 strings✓ Yes100/min
POST/v1/gif/watermarkOverlay watermark text or image✓ Yes200/min
POST/v1/gif/textAdd text caption to GIF✓ Yes200/min
POST/v1/gif/blur-facesAuto-detect and blur faces✓ Yes50/min
GET/v1/storage/listList all stored files✓ Yes300/min
DELETE/v1/storage/{id}Delete a stored file by ID✓ Yes100/min
POST/v1/url/publicGenerate a public shareable URL✓ Yes200/min
POST/v1/url/privateGenerate a private signed URL✓ Yes200/min
POST/v1/url/passwordPassword-protected URL✓ Yes100/min
POST/v1/url/expiringTime-limited expiring URL✓ Yes100/min
GET/v1/analytics/usageGet API usage statistics✓ Yes60/min
GET/v1/analytics/uploadsGet upload analytics data✓ Yes60/min
POST/v1/webhooks/configureConfigure webhook endpoints✓ Yes20/min

🔐 Authentication

All API requests must include your API key in the Authorization header:

Authorization: Bearer gm_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
X-API-Version:  2.0
Accept:         application/json

API keys are scoped per account. Use gm_test_ keys for sandbox testing and gm_live_ keys for production. Never expose keys in client-side code.

⚠️ Error Codes

Code Status Description
400Bad RequestInvalid parameters or malformed request body.
401UnauthorizedMissing or invalid API key in Authorization header.
403ForbiddenValid key but insufficient permissions for this action.
404Not FoundThe requested resource or GIF ID does not exist.
413Payload Too LargeFile exceeds maximum size limit (100 MB).
422UnprocessableFile format invalid or processing parameters conflict.
429Rate LimitedDaily quota exceeded. Retry after the reset window.
500Server ErrorInternal server error. Our team has been notified.
503UnavailableService temporarily unavailable. Check status page.

⬇️ Downloads & Tools

📮
Postman Collection
All 25 endpoints ready to test
📋
OpenAPI 3.0.3 Spec
YAML schema for all endpoints
💻
CLI Tool
Command-line interface for the API
🐳
Docker Image
Self-hosted API proxy container

GIF Upload API — Full Developer Documentation

The GIFMakes API (v2.0) gives developers programmatic access to every GIF tool on the platform. Upload GIF and MP4 files, convert between formats, resize and compress animations, add text captions and watermarks, extract individual frames as base64 or PNG, blur faces automatically, manage your CDN storage, generate time-limited or password-protected sharing URLs, and retrieve analytics — all from a single RESTful API with predictable JSON responses.

Getting Started

1. Generate an API Key

Use the API Key Manager panel above to generate your first key. Choose Live for production workloads or Test for development. Keys are prefixed with gm_live_ or gm_test_ respectively. Your key is stored securely in browser localStorage for this demo.

2. Authenticate Every Request

Include the Authorization header with every request: Authorization: Bearer YOUR_KEY. Also send X-API-Version: 2.0 to pin to the current stable version and avoid breaking changes during future releases.

3. Try the Live Playground

Select any of the 25 endpoints from the dropdown in the Live Playground section, review the auto-populated headers and request body, optionally attach a file, then hit ▶ Send Request. The playground simulates real responses with accurate status codes, response times, and JSON bodies so you can prototype your integration before writing code.

Upload Endpoints

POST /v1/upload/gif — Upload a GIF directly (multipart/form-data). Returns CDN URL, dimensions, frame count, and duration.
POST /v1/upload/mp4 — Upload an MP4 video for storage without conversion.
POST /v1/convert/mp4-to-gif — Upload MP4 and immediately convert to GIF with configurable FPS, start/end trim, and width.
POST /v1/convert/images-to-gif — Pass an array of image URLs or a zip of images to stitch into an animated GIF with custom delays per frame.

Processing Endpoints

After upload, reference your GIF by its ID to process it: resize to specific dimensions, compress with color-depth and dithering controls, rotate by arbitrary degrees, reverse playback direction, add text overlays with font/size/color/position options, apply watermark images or text, blur detected faces automatically with our ML model, merge up to 10 GIFs side-by-side or sequentially, or split a long GIF into timed segments.

Frame-Level Access

The frames API lets you inspect and extract individual frames. GET /v1/gif/frames/count returns frame count and per-frame delay. POST /v1/gif/frames/extract saves frames as PNG files to your storage. POST /v1/gif/frames/base64 returns frames inline as base64-encoded strings — ideal for canvas processing in browser environments.

Sharing URLs

Generate four types of shareable links from any stored GIF: Public (open CDN URL), Private (signed URL with HMAC expiry), Password-protected (viewer must enter password), and Expiring (URL auto-invalidates after a set duration in seconds). All link types are configurable via the /v1/url/* endpoints.

Webhooks

Register your HTTPS endpoint via POST /v1/webhooks/configure or use the Webhook Configuration panel above. Subscribe to: upload_completed, conversion_completed, compression_completed, job_failed, file_deleted, and link_expired. Payloads are signed with HMAC-SHA256 — verify the X-GIFMakes-Signature header in your receiver.

Rate Limits & Quotas

Free tier: 1,000 requests/day, 10 GB storage, 100 MB max file size. Pro tier: 50,000 requests/day, 100 GB storage. Enterprise: custom limits with dedicated infrastructure. Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

SDK Quick Start

Official SDKs are available for PHP, Python, JavaScript, Node.js, Go, Java, C#/.NET, and Ruby. All SDKs wrap the REST API with typed models and async/await support. Install via your language's package manager (see the SDK Libraries panel above) then initialize with your API key.

🚀 Ready to Build with the GIF API?

Generate your API key above and start making requests in seconds. Visit our full platform to explore all GIF tools.