Skip to content
rankion.ai

API Reference

This page is the developer reference for the REST API v1: 400+ endpoints, bearer-token authentication and programmatic access to every feature.

Integrate AI content generation, SEO analysis, keyword research, and content management into your applications. Authenticate with bearer tokens via Laravel Sanctum.

# Quick Start curl -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ https://rankion.ai/api/v1/team

Connect in 60 seconds

One Sanctum token, three ways in. Everything is included in every plan — even the free plan with 50 credits.

MCP-Server

Every endpoint becomes a typed tool for Claude & AI agents.

https://rankion.ai/mcp
Claude-Skill

A single markdown file that Claude Code loads natively.

https://rankion.ai/claude-skill
OpenAPI-Spec

Machine-readable for n8n, Zapier, the ChatGPT connector, and your own agents.

/api/v1/openapi.yaml ↓
# 1) Token holen: Dashboard → Einstellungen → API Tokens # 2) MCP-Server in Claude Code verbinden claude mcp add rankion --transport http https://rankion.ai/mcp \ --header "Authorization: Bearer rk_live_..." # 3) Oder direkt per REST testen (Free-Plan reicht) curl -H "Authorization: Bearer rk_live_..." https://rankion.ai/api/v1/team

Authentication

All API requests require a bearer token. Create your token under Settings → API Tokens in the dashboard.

# Jeden Request mit Bearer Token authentifizieren curl -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ https://rankion.ai/api/v1/team
Note: Send Accept: application/json with every request, and additionally Content-Type: application/json for POST/PUT requests.

Errors & status codes

CodeMeaning
200Success
201Resource created
202Accepted – background processing started
204Deleted (no content)
401Not authenticated – invalid token
402Insufficient credits
403No permission for this resource
404Resource not found
422Validation error – check the parameters
429Rate limit reached
500Server error

Credit system

Some endpoints consume credits. Usage is checked before execution. If your balance is insufficient, you'll receive a 402 error.

EndpointCredits
AI Scanner – Detection2 Credits
AI Scanner – Humanization4+ Credits
Keyword research5 Credits
Image generation5 Credits
Content Audit10 Credits
Article generation10+ Credits
Bulk Generation4 / article
Competitor analysis20 Credits

Team

Retrieve information about your current team.

GET /v1/team

Returns team info with plan, credits, and statistics.

// Response 200 { "id": 1, "name": "Mein Team", "plan": "pro", "credit_balance": 5000, "members_count": 3, "projects_count": 5, "articles_count": 120 }

Projects

Manage projects. Each project has its own domain, language, and brand voice.

GET /v1/projects

List all of the team's projects with brand voice.

GET /v1/projects/{project}

Single project with brand voice and the last 10 articles.

POST /v1/projects

Create a new project.

ParameterTypeInfo
namestringRequired Project name
domainstringOptional Website URL
languagestringOptional de, en, es, fr (default: de)
descriptionstringOptional Project description
# Beispiel curl -X POST https://rankion.ai/api/v1/projects \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"name":"Mein Blog","domain":"https://blog.example.com","language":"de"}'
PUT /v1/projects/{project}

Update a project. Same parameters as POST (all optional).

DEL /v1/projects/{project}

Delete the project and all associated data. Not reversible.

Articles

Manage, score, optimize, and check the freshness of articles.

GET /v1/projects/{project}/articles

Paginated list of a project's articles (20 per page).

GET /v1/articles/{article}

Retrieve a single article with all details (content, scores, metadata).

POST /v1/projects/{project}/articles

Create a new article manually (not generated).

ParameterTypeInfo
titlestringRequired
contentstringRequired HTML content
target_keywordstringOptional
languagestringOptional de, en, es, fr
statusstringOptional draft, published
PUT /v1/articles/{article}

Update an article (title, content, status, meta_title, meta_description, target_keyword).

DEL /v1/articles/{article}

Delete an article.

POST /v1/articles/{article}/score

Start SEO scoring as a background process. Returns 202 Accepted.

POST /v1/articles/{article}/optimize

Start content optimization based on a URL.

ParameterTypeInfo
urlstringRequired URL of the existing article
GET /v1/articles/{article}/freshness

Check content freshness: age, score, status (fresh/aging/stale/critical).

GET /v1/articles/{article}/link-suggestions

Retrieve internal linking suggestions for an article.

Keywords

Manage keywords and run AI-based keyword research.

GET /v1/projects/{project}/keywords

Paginated list of a project's keywords.

POST /v1/projects/{project}/keywords

Add a keyword.

ParameterTypeInfo
keywordstringRequired min. 2 characters
search_volumeintegerOptional
difficultyintegerOptional 0-100
languagestringOptional de, en, es, fr
DEL /v1/keywords/{keyword}

Delete a keyword.

POST /v1/keywords/research 5 Credits

AI-based keyword research with search volume and difficulty.

ParameterTypeInfo
keywordstringRequired min. 2 characters
languagestringOptional de, en, es, fr
countrystringOptional Country code (default: de)
# Beispiel curl -X POST https://rankion.ai/api/v1/keywords/research \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{"keyword":"seo optimierung","language":"de"}'

Images

Manage generated images.

GET /v1/projects/{project}/images

List all images of a project.

GET /v1/images/{image}

Retrieve a single image with metadata.

DEL /v1/images/{image}

Delete an image.

Style Profiles

Create and manage writing style profiles for consistent content.

GET /v1/projects/{project}/style-profiles

All style profiles of a project.

POST /v1/projects/{project}/style-profiles

Create a style profile.

ParameterTypeInfo
namestringRequired
tonestringOptional e.g. professional, casual, academic
writing_stylestringOptional
vocabulary_levelstringOptional
sentence_structurestringOptional
rulesobjectOptional Custom rules
PUT /v1/style-profiles/{styleProfile}

Update a style profile.

DEL /v1/style-profiles/{styleProfile}

Delete a style profile.

Knowledge Base

Upload knowledge documents that are used as context during content generation.

GET /v1/projects/{project}/knowledge-base

List all documents in the knowledge base.

POST /v1/projects/{project}/knowledge-base

Create a new knowledge document.

ParameterTypeInfo
titlestringRequired
contentstringRequired Text content
typestringOptional text, url, pdf
DEL /v1/knowledge-base/{knowledgeDocument}

Delete a knowledge document.

Goals

Define content goals that are taken into account during generation.

GET /v1/goals

List all goals (system + custom).

POST /v1/goals

Create a custom goal.

ParameterTypeInfo
namestringRequired
descriptionstringOptional
prompt_instructionsstringOptional AI instructions
metricsobjectOptional Metrics
DEL /v1/goals/{goal}

Delete a custom goal (system goals are protected).

Editorial calendar

Manage the editorial calendar for content planning.

GET /v1/projects/{project}/calendar

List calendar entries. Optionally filter with ?from=2026-01-01&to=2026-03-31.

POST /v1/projects/{project}/calendar

Create a calendar entry.

ParameterTypeInfo
titlestringRequired
planned_datedateRequired YYYY-MM-DD
statusstringOptional planned, in_progress, published
notesstringOptional
PUT /v1/calendar/{entry}

Update a calendar entry.

DEL /v1/calendar/{entry}

Delete a calendar entry.

AI Scanner

Detect and humanize AI-generated text.

POST /v1/ai-scanner/detect 2 Credits

Analyze text for AI generation.

ParameterTypeInfo
textstringRequired min. 50 characters
scan_typestringOptional quick, deep (default: quick)
// Response 200 { "score": 85, "scan_type": "quick", "word_count": 250, "details": { ... } }
POST /v1/ai-scanner/humanize 4+ Credits

Humanize an article (background process, 202 Accepted).

ParameterTypeInfo
article_idintegerRequired
levelstringOptional light, medium, aggressive

Content Audit

Automatically analyze and score website content.

GET /v1/content-audits

List all content audits of the team.

POST /v1/content-audits 10 Credits

Start a new content audit (background process).

ParameterTypeInfo
source_urlstringRequired URL of the website to analyze
typestringOptional full, quick
GET /v1/content-audits/{audit}

Retrieve a single audit with all analyzed pages.

Competitor analysis

Analyze competitors and identify content gaps.

GET /v1/competitor-analyses

List all competitor analyses.

POST /v1/competitor-analyses 20 Credits

Start a new competitor analysis.

ParameterTypeInfo
project_idintegerRequired
domainstringRequired Domain without protocol
languagestringOptional de, en, es, fr
competitor_limitintegerOptional max. number of competitors
GET /v1/competitor-analyses/{analysis}

Retrieve the analysis result with competitors and content gaps.

AI Visibility Tracking

Monitor your domain's visibility in AI search engines (ChatGPT, Perplexity, Gemini).

GET /v1/tracking-projects

List all tracking projects with scores.

GET /v1/tracking-projects/{trackingProject}

Single tracking project with visibility history and keyword details.

POST /v1/tracking-projects/{trackingProject}/run

Start a manual tracking run (background process).

Content generation

Generate articles and images with AI.

POST /v1/generate/article 10+ Credits

Generate an AI article (background process, 202 Accepted).

ParameterTypeInfo
project_idintegerRequired
keywordstringRequired Main keyword
typestringOptional blog-post, guide, listicle, review, comparison, pillar
lengthintegerOptional 300-5000 words (default: 1500)
tonestringOptional e.g. professional, casual
languagestringOptional de, en, es, fr
# Beispiel: Blog-Artikel generieren curl -X POST https://rankion.ai/api/v1/generate/article \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json" \ -d '{ "project_id": 1, "keyword": "seo optimierung 2026", "type": "guide", "length": 2000, "language": "de" }' // Response 202 { "message": "Article generation queued", "article_id": 42 }
POST /v1/generate/image 5 Credits

Generate an AI image (background process, 202 Accepted).

ParameterTypeInfo
project_idintegerRequired
promptstringRequired Image description
stylestringOptional photo, illustration, 3d, watercolor

Bulk Generation

Generate multiple articles at once.

GET /v1/bulk-generations

List all bulk generations with status.

POST /v1/bulk-generations 4 / article

Start a bulk generation.

ParameterTypeInfo
project_idintegerRequired
keywordsarrayRequired Array of keywords
settingsobjectOptional {type, length, tone, language}
GET /v1/bulk-generations/{bulk}

Retrieve the status of a bulk generation with individual items.

Autopilot

Configure automatic content generation on a schedule.

GET /v1/autopilot

List all autopilot schedules.

POST /v1/autopilot

Create an autopilot schedule.

ParameterTypeInfo
project_idintegerRequired
namestringRequired
frequencystringRequired daily, weekly, biweekly, monthly
keyword_sourcestringOptional manual, keyword_list, ai_suggest
keywordsarrayOptional If manual: keyword array
settingsobjectOptional {type, length, tone}
PUT /v1/autopilot/{schedule}

Update the schedule. Additionally: is_active (boolean) to activate/deactivate.

DEL /v1/autopilot/{schedule}

Delete the schedule.

Credits

Query credit balance and history.

GET /v1/credits

Retrieve the current balance and plan.

// Response 200 { "balance": 5000, "plan": "pro" }
GET /v1/credits/history

Paginated credit history (20 entries per page).

Blog (Admin)

Manage blog categories and posts.

Categories

GET /v1/blog/categories

List all blog categories.

POST /v1/blog/categories

Create a category.

ParameterTypeInfo
namestringRequired
slugstringOptional (auto-generated)
descriptionstringOptional
PUT /v1/blog/categories/{category}

Update a category.

DEL /v1/blog/categories/{category}

Delete a category.

Posts

GET /v1/blog/posts

List all blog posts (paginated).

GET /v1/blog/posts/{post}

Retrieve a single blog post.

POST /v1/blog/posts

Create a blog post.

ParameterTypeInfo
titlestringRequired
contentstringRequired
category_idintegerOptional
statusstringOptional draft, published
localestringOptional de, en, es, fr
PUT /v1/blog/posts/{post}

Update a blog post.

DEL /v1/blog/posts/{post}

Delete a blog post.

Health Check

Public endpoint (no token required) for monitoring.

GET /api/health

Returns the server status. No authentication required.

// Response 200 { "status": "ok", "timestamp": "2026-02-24T12:00:00Z" }

Ready to use the API?

Create a free account, grab your token under Settings → API and get going. 50 free credits, no credit card.

Cookies: We use strictly necessary cookies only (session & security) — no analytics or marketing trackers. Details