Skip to main content
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.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/users.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=9430328e9e72bfbdcf40cada3267a54d

Me & Users

Retrieve the authenticated user and their organization, and list members of your organization with their roles.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/buildings.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=502d79feff8fce0d76765caecf8e6a56

Workspaces

List and inspect the websites you track in Semji. Each workspace contains pages, contents, keywords, and workflow configuration.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/file.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=2966b51f5f57bf849486bf31792a6d67

Pages

Import URLs into a workspace, trigger crawls to fetch metadata, and associate focus keywords for SEO analysis.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/pen-nib.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=c1c44ac87bb22fc6d27fa44cd2da3f1a

Contents

Create and manage SEO content drafts, track their Content Score (0–100), and generate full articles with Atomic Content AI.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/magnifying-glass.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=f789e4a20fb44ad78636d77d228b05af

Keywords

Analyze search terms to get SERP-based recommendations: topics, questions, search intents, and links to add.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/robot.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=f2809d0ed1870939fa35026818611252

Prompts

Analyze questions asked to AI engines (ChatGPT, Google AI Overviews) to get GEO recommendations and AI citation data.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/microphone.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=c79229c8bf687b03aecd382c65afb867

Brand Voices

Configure editorial identities that Atomic Content uses to match your writing style, tone, and brand guidelines.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/book-open-text.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=6e2d640eca5baf2d51b333a7b34634ce

Knowledge Documents

Upload reference materials that the AI draws from during content generation to produce more accurate, brand-aligned output.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/lightning.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=af53bb7878487d64e6c80c43f60e65f1

Content Generations

Track the status of Atomic Content AI generation jobs, confirm generated drafts, or cancel them.
https://mintcdn.com/semji/LJ0P0Pdna2J2p9bi/images/icons/phosphor/coins.svg?fit=max&auto=format&n=LJ0P0Pdna2J2p9bi&q=85&s=a90115096fbfe552f0851ac6f153a5d6

Credit Usages

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