API Overview

The InkWell API is a RESTful interface that allows you to interact with our blog platform programmatically. Create, read, update, and delete articles, manage authors, and engage with community content.

Base URL: https://api.inkwell.com/v1

All API requests should be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Authentication

The InkWell API uses Bearer Token authentication. You can generate API keys from your Dashboard Settings. Always keep your API key secure and never expose it in client-side code.

Header
# Include in every request
Authorization: Bearer sk_live_your_api_key_here

Articles

Articles are the core content resource on InkWell. Each article contains metadata, formatting, author information, and engagement metrics.

GET /articles
Retrieve a paginated list of published articles. Supports filtering by tag, author, and sort order.

Query Parameters

ParameterTypeDescription
limitintegerNumber of results (default: 20, max: 100)
offsetintegerPagination offset
tagstringFilter by tag slug
sortstringpublished_at, views, likes

Response Example

JSON
{
  "data": [
    {
      "id": "art_8x92k1m4",
      "title": "The Future of AI Content",
      "slug": "future-ai-content-2025",
      "excerpt": "How generative models are reshaping...",
      "author_id": "usr_7j2p9",
      "tags: ["technology, "ai, "trends],
      "views: 14820,
      "published_at: "2024-12-15T09:00:00Z
    }
  ],
  "meta": {
    "total: 854,
    "next_offset: 20
  }
}
POST /articles
Create a new article. Requires authentication with write permissions.

Request Body

JSON
{
  "title: "Getting Started with InkWell API",
  "content: "# Introduction...",
  "tags: ["developer, "guide],
  "status: "draft,
  "featured_image_url: "https://img.inkwell.com/...
}

Response Status Codes

201Article created successfully
400Invalid payload or missing fields
401Unauthorized / Invalid token
403Insufficient permissions
DELETE /articles/:article_id
Permanently delete an article. This action cannot be undone.

Response

JSON
{
  "success: true,
  "message: "Article successfully deleted
}

Authors

Manage author profiles, permissions, and publishing history.

GET /authors/:author_id
Retrieve detailed information about a specific author, including bio, social links, and article count.
Response
{
  "id: "usr_7j2p9",
  "username: "sarah_codes",
  "display_name: "Sarah Kim",
  "bio: "Senior Frontend Engineer & Tech Writer",
  "avatar_url: "https://cdn.inkwell.com/avatars/...",
  "article_count: 42,
  "joined_at: "2023-03-14T10:22:00Z
}

Rate Limits

To ensure platform stability, API requests are throttled based on your plan tier.

  • Free Tier: 60 requests / minute
  • Pro Tier: 600 requests / minute
  • Enterprise: Custom limits

Rate limit headers are included in every response:

Headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
X-RateLimit-Reset: 1702654320

Exceeding limits returns a 429 Too Many Requests status with a Retry-After header.

Error Handling

InkWell uses conventional HTTP status codes to indicate success or failure. Codes in the 2xx range indicate success, 4xx indicate client errors, and 5xx indicate server errors.

Error Response
{
  "error: {
    "code: "resource_not_found",
    "message: "The requested article does not exist",
    "status: 404,
    "request_id: "req_9x2m4k1p
  }
}

Always include the request_id when contacting support for troubleshooting.

Need Help?

Check our Developer Forum or contact api-support@inkwell.com. For security concerns, please use our PGP Key.