Build with the InkWell API

Integrate powerful content management, analytics, and publishing tools into your applications with our RESTful API.

https://api.inkwell.com/v1

🔐 Authentication

API Key Authentication

All API requests must include your secret key in the Authorization header. Never expose your secret key in client-side code.

Request Example

Header Authorization: Bearer iw_live_sk_8x92j1k0m3n5p7q Content-Type: application/json Accept: application/json

📡 Core Endpoints

GET /posts Retrieve published blog posts with filtering

Returns a paginated list of posts. Supports query parameters: ?category=&limit=&offset=&sort=

Response 200 { "data": [ { "id": "post_9a8b7c6d", "title": "Future of AI Writing", "slug": "future-of-ai-writing", "author": "Sarah Kim", "published_at": "2024-12-15T10:00:00Z" } ], "meta": { "total": 142, "limit": 20, "offset": 0 } }
POST /posts Create a new draft or published post

Creates a new post. Returns the created resource with assigned IDs.

Payload { "title": "Getting Started with InkWell", "content": "Markdown or HTML content...", "category": "technology", "tags": ["tutorial", "api"], "status": "draft" }
GET /analytics/engagement Fetch reader engagement metrics

Returns aggregated reading time, shares, and conversion data.

Response 200 { "period": "last_30_days", "views": 48290, "unique_readers": 12403, "avg_read_time_s": 342, "top_posts": ["post_1a", "post_2b"] }

💻 Quick Start Examples

\n
JavaScript
Python
cURL
Node.js / Fetch const response = await fetch('https://api.inkwell.com/v1/posts', { headers: { 'Authorization': 'Bearer iw_live_sk_8x92j1k0m3n5p7q', 'Content-Type': 'application/json' } }); const data = await response.json(); console.log(data);
Python / Requests import requests url = "https://api.inkwell.com/v1/posts" headers = { "Authorization": "Bearer iw_live_sk_8x92j1k0m3n5p7q" } response = requests.get(url, headers=headers) print(response.json())
Terminal / cURL curl -X GET https://api.inkwell.com/v1/posts \ -H "Authorization: Bearer iw_live_sk_8x92j1k0m3n5p7q" \ -H "Content-Type: application/json"

Status Codes & Rate Limits

200 OK - Request succeeded
201 Created - Resource created
400 Bad Request - Invalid payload
401 Unauthorized - Invalid key
404 Not Found - Resource missing
429 Too Many Requests - Rate limited
PlanRequests / HourMax PayloadSupport
Developer1,0001 MBCommunity
Pro10,00010 MBEmail & Chat
EnterpriseUnlimited50 MB24/7 Dedicated