FlipText.io API
Developer API
Fast, secure, and predictable. Use our JSON API to flip, reverse, and style text from any app.
Base URL
http://localhost:8000/api/v1
Auth
Bearer token in
Authorization
headerRate Limits
Plan-based limits returned as headers
Authentication
Create a tokenSend your API token as a Bearer token. Example:
curl -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ http://localhost:8000/api/v1/health
Endpoints
Method | Path | Description | Auth |
---|---|---|---|
GET | /api/v1/health | Basic health check | Optional |
POST | /api/v1/transform/reverse | Reverse a string | Bearer |
POST | /api/v1/transform/flip | Flip (upside-down) a string | Bearer |
POST | /api/v1/transform/style | Apply a style preset (e.g. bold, fancy) | Bearer |
GET | /api/v1/history | List saved flip history | Bearer |
Reverse Text
POST /api/v1/transform/reverse
Request
curl -X POST "http://localhost:8000/api/v1/transform/reverse" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"text":"Flip me!"}'
Response
{ "data": { "original": "Flip me!", "result": "!em pilF" }, "meta": { "request_id": "req_123" } }
Flip (Upside-Down)
POST /api/v1/transform/flip
Request
curl -X POST "http://localhost:8000/api/v1/transform/flip" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"text":"Hello"}'
Response
{ "data": { "original": "Hello", "result": "oʃʃǝH" }, "meta": { "request_id": "req_456" } }
Style Preset
POST /api/v1/transform/style
Request
curl -X POST "http://localhost:8000/api/v1/transform/style" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"text":"Fancy","preset":"bold"}'
JavaScript (fetch)
fetch("http://localhost:8000/api/v1/transform/style", { method: "POST", headers: { "Authorization": "Bearer YOUR_TOKEN", "Content-Type": "application/json" }, body: JSON.stringify({ text: "Fancy", preset: "bold" }) }).then(r => r.json()).then(console.log);
History
GET /api/v1/history
Response (example)
{ "data": [{ "id": "hist_001", "text": "oʃʃǝH", "original": "Hello", "type": "flip", "created_at": "2025-09-01T05:00:00Z" }], "meta": { "next_cursor": null } }
Error Format
{ "error": { "code": "invalid_request", "message": "Missing field: text" }, "meta": { "request_id": "req_789" } }
400
invalid request401
unauthorized / bad token429
rate limit exceeded5xx
server errors
Rate Limits
We return helpful headers so you can self-throttle:
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 997 X-RateLimit-Reset: 1693526400
Limits vary by plan. See pricing.
Build in minutes