Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.semji.com/llms.txt

Use this file to discover all available pages before exploring further.

The Semji API is a REST API that lets you integrate Semji’s AI-powered content marketing platform into your own tools and workflows. Every endpoint returns JSON, requires a Bearer API key, and lives under https://api.semji.com/v1/. This page explains the fundamentals before you make your first request.

Base URL

All API v1 endpoints share the following base URL:
https://api.semji.com/v1
There is no version negotiation via headers — the version is part of the path. Every endpoint documented in this reference is prefixed with /v1/.

Your first API call

The quickest way to verify your API key is to fetch your own user record. Replace sk_... with your actual key:
cURL
curl https://api.semji.com/v1/me \
  -H "Authorization: Bearer sk_your_api_key_here"
A successful response looks like this:
200 OK
{
  "id": "usr_01hx9z3k4m5n6p7q8r9s0t1u",
  "firstName": "Alice",
  "lastName": "Martin",
  "email": "alice@example.com",
  "profileImageUrl": null,
  "jobTitle": "SEO Lead",
  "languageCode": "en",
  "organization": {
    "id": "org_01hx9z3k4m5n6p7q8r9s0t2v",
    "name": "Example Corp",
    "createdAt": "2024-01-10T08:00:00Z",
    "brandName": null,
    "brandImageUrl": null,
    "credits": {
      "analysis": 47,
      "aiWriting": 12,
      "contentIdeasSearches": 5
    },
    "usersCount": 3,
    "workspacesCount": 2
  },
  "createdAt": "2024-03-15T09:12:00Z"
}
Generate your API key in the Semji app at Settings > Organization > API Keys. See Authentication for full details.

Authentication

Every request must include an Authorization header with a Bearer token:
Authorization: Bearer sk_your_api_key_here
API keys begin with sk_. A missing or malformed key returns 401 Unauthorized. A valid key without access to the requested resource returns 403 Forbidden. See the Authentication guide for code examples in Python, Node.js, and more.

Response format

All responses use Content-Type: application/json. Single resources are returned as a flat JSON object:
{
  "id": "...",
  "name": "..."
}
Collections are wrapped in a standard pagination envelope:
{
  "data": [
    { "id": "...", "name": "..." }
  ],
  "pagination": {
    "total": 84,
    "page": 1,
    "limit": 25,
    "hasMore": true
  }
}
Use the page and limit query parameters to paginate. limit accepts values from 1 to 100 and defaults to 25.

Error format

All errors follow the same shape regardless of status code:
{
  "error": {
    "code": "not_found",
    "message": "The requested resource was not found."
  }
}
The code field is a stable machine-readable string you can match in code. The message field is a human-readable description, useful for debugging. See the Errors reference for the full list of codes and HTTP status codes.

Rate limits

Each API key is limited to 1,000 requests per hour on a rolling window, with a burst limit of 20 requests per second. Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. Exceeding the limit returns 429 Too Many Requests. See Rate Limits for details and retry guidance.

Resources

The API exposes the following resource groups. Click any card to go to the endpoint reference.

Me & Users

Retrieve the authenticated user and their organization, and list members of your organization with their roles.

Workspaces

List and inspect the websites you track in Semji. Each workspace contains pages, contents, keywords, and workflow configuration.

Pages

Import URLs into a workspace, trigger crawls to fetch metadata, and associate focus keywords for SEO analysis.

Contents

Create and manage SEO content drafts, track their Content Score (0–100), and generate full articles with Atomic Content AI.

Keywords

Analyze search terms to get SERP-based recommendations: topics, questions, search intents, and links to add.

Prompts

Analyze questions asked to AI engines (ChatGPT, Google AI Overviews) to get GEO recommendations and AI citation data.

Brand Voices

Configure editorial identities that Atomic Content uses to match your writing style, tone, and brand guidelines.

Knowledge Documents

Upload reference materials that the AI draws from during content generation to produce more accurate, brand-aligned output.

Content Generations

Track the status of Atomic Content AI generation jobs, confirm generated drafts, or cancel them.

Credit Usages

View your organization’s credit consumption history across keyword analyses, AI generation, and content ideas.