Aautoranko

API reference

AI models

Each step of the content pipeline (outlines, drafting, keyword analysis, images and more) runs on a configurable AI model. Any token can read the configuration; only admin tokens can change it, and changes apply platform-wide.

2 endpointsBase URL https://autoranko.com/api/public/v1Every request needs a bearer token

List AI models

GEThttps://autoranko.com/api/public/v1/ai/models

Shows which AI model each step of the content pipeline uses. Each entry in tasks has the model in effect (model) and its built-in default (default); kind says whether the task runs a text model (chat) or an image model (image). chat_models and image_models list the models a task can be switched to.

The configuration is platform-wide and read-only for regular accounts. It's useful for showing which model wrote your content.

Request

No parameters. Send the request with your token, nothing else.

curl https://autoranko.com/api/public/v1/ai/models \
  -H "Authorization: Bearer $AUTORANKO_TOKEN"

Response

200OKThe pipeline tasks with their models, and the model catalog.

Response bodyapplication/json
  • tasksarray of objects
    Pipeline tasks and the model each one uses.
    tasks items(6)AiTask
    • idstring
      Task ID. This is what PUT /ai/models takes as task.

      One ofdraftoutlinekeywordssite_analysispersonascontent_planenrichmentrewritelinkingseo_metaimage

    • labelstring
      Human-readable name.
    • kindstring
      chat tasks run a model from chat_models; the image task runs one from image_models.

      One ofchatimage

    • descriptionstring
      What the task does in the pipeline.
    • modelstring
      The model the task currently uses.
    • defaultstring
      The task's built-in default model.
  • chat_modelsarray of objects
    Models available to chat tasks.
    chat_models items(2)AiModel
    • idstring
      Model ID. Pass it as model to PUT /ai/models.
    • labelstring
      Human-readable name and positioning.
  • image_modelsarray of objects
    Models available to the image task.
    image_models items(2)AiModel
    • idstring
      Model ID. Pass it as model to PUT /ai/models.
    • labelstring
      Human-readable name and positioning.

Example

Current configuration

GET/ai/models

Response · 200 OK
{
  "tasks": [
    {
      "id": "draft",
      "label": "Article drafting",
      "kind": "chat",
      "description": "Writes the full article HTML from the outline",
      "model": "gpt-6-astra",
      "default": "claude-opus-5-5"
    },
    {
      "id": "outline",
      "label": "Article outlines",
      "kind": "chat",
      "description": "Title, meta, sections, FAQs, image plan",
      "model": "gpt-6-luna",
      "default": "claude-sonnet-5-5"
    },
    {
      "id": "keywords",
      "label": "Keyword analysis",
      "kind": "chat",
      "description": "Keyword ideas, volume/difficulty estimates",
      "model": "gpt-6-luna",
      "default": "claude-haiku-5-5"
    },
    {
      "id": "site_analysis",
      "label": "Site analysis",
      "kind": "chat",
      "description": "Business profile & language detection at onboarding",
      "model": "gpt-6-luna",
      "default": "gpt-6-luna"
    },
    {
      "id": "personas",
      "label": "Buyer personas",
      "kind": "chat",
      "description": "Audience personas that steer tone & examples",
      "model": "gpt-6-luna",
      "default": "claude-sonnet-5-5"
    },
    {
      "id": "content_plan",
      "label": "Content planning",
      "kind": "chat",
      "description": "30-day topic calendar generation",
      "model": "gpt-6-luna",
      "default": "claude-sonnet-5-5"
    },
    {
      "id": "enrichment",
      "label": "Content enrichment",
      "kind": "chat",
      "description": "Improvement suggestions for existing posts",
      "model": "gpt-6-luna",
      "default": "claude-sonnet-5-5"
    },
    {
      "id": "rewrite",
      "label": "Full rewrites",
      "kind": "chat",
      "description": "Rewrites underperforming articles",
      "model": "gpt-6-astra",
      "default": "claude-opus-5-5"
    },
    {
      "id": "linking",
      "label": "Internal linking",
      "kind": "chat",
      "description": "Anchor placement across existing content",
      "model": "gpt-6-luna",
      "default": "claude-haiku-5-5"
    },
    {
      "id": "seo_meta",
      "label": "SEO metadata",
      "kind": "chat",
      "description": "Meta descriptions, focus keywords, categorization, E-E-A-T",
      "model": "gpt-6-luna",
      "default": "claude-haiku-5-5"
    },
    {
      "id": "image",
      "label": "Image generation",
      "kind": "image",
      "description": "Hero & in-article images",
      "model": "nano-banana-2",
      "default": "nano-banana-2"
    }
  ],
  "chat_models": [
    {
      "id": "claude-opus-5-5",
      "label": "Claude Opus 5.5 — highest quality"
    },
    {
      "id": "claude-fable-5",
      "label": "Claude Fable 5"
    },
    {
      "id": "claude-sonnet-5-5",
      "label": "Claude Sonnet 5.5 — balanced"
    },
    {
      "id": "claude-haiku-5-5",
      "label": "Claude Haiku 5.5 — fast & cheap"
    },
    {
      "id": "claude-sonnet-5",
      "label": "Claude Sonnet 5"
    },
    {
      "id": "gpt-6-astra",
      "label": "GPT-6 Astra — most capable GPT"
    },
    {
      "id": "gpt-6-luna",
      "label": "GPT-6 Luna"
    },
    {
      "id": "gpt-6-sol",
      "label": "GPT-6 Sol"
    },
    {
      "id": "gpt-5.6-luna",
      "label": "GPT-5.6 Luna"
    }
  ],
  "image_models": [
    {
      "id": "nano-banana-2",
      "label": "Nano Banana 2 — 2K, best default"
    },
    {
      "id": "gpt-image-2",
      "label": "GPT Image 2"
    },
    {
      "id": "seedream-3",
      "label": "Seedream 3.0"
    },
    {
      "id": "z-image",
      "label": "Z-Image — fastest"
    }
  ]
}

Errors

ErrorWhen
401missing_tokenThe Authorization: Bearer … header is missing.
401invalid_tokenThe token is malformed, unknown or revoked.
429rate_limitedThe token made more than 120 requests in the last 60 seconds.

Set a task's AI model

PUThttps://autoranko.com/api/public/v1/ai/modelsAdmin token

Changes the AI model one pipeline task uses. Admin only: the token must belong to an Autoranko administrator account, and tokens from regular accounts get 403 forbidden. The setting is platform-wide and takes effect from the next AI call, for every site.

The model must fit the task's kind: pick from chat_models for chat tasks and from image_models for the image task (see GET /ai/models).

The change applies to every site on the platform, immediately.

Request

Body parametersapplication/json
  • taskstringRequired
    The pipeline task to change: an id from tasks in GET /ai/models.

    One ofdraftoutlinekeywordssite_analysispersonascontent_planenrichmentrewritelinkingseo_metaimage

    Example
    outline
  • modelstringRequired
    The model to use: an id from chat_models for chat tasks, or from image_models for the image task.
    Example
    claude-sonnet-5-5
curl -X PUT https://autoranko.com/api/public/v1/ai/models \
  -H "Authorization: Bearer $AUTORANKO_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "task": "outline",
    "model": "claude-sonnet-5-5"
  }'

Response

200OKThe model was saved.

Response bodyapplication/json
  • okboolean
    Always true.
  • taskstring
    The task that changed.

    One ofdraftoutlinekeywordssite_analysispersonascontent_planenrichmentrewritelinkingseo_metaimage

  • modelstring
    The model it now uses.

Examples

PUT/ai/models

Request body
{
  "task": "outline",
  "model": "claude-sonnet-5-5"
}
Response · 200 OK
{
  "ok": true,
  "task": "outline",
  "model": "claude-sonnet-5-5"
}

Errors

ErrorWhen
400invalid_bodyThe body isn't valid JSON (Invalid JSON body.).
400invalid_bodytask isn't one of the task IDs (Unknown task.).
400invalid_bodymodel isn't available for the task's kind (Unknown model for this task kind.).
401missing_tokenThe Authorization: Bearer … header is missing.
401invalid_tokenThe token is malformed, unknown or revoked.
403forbiddenThe token doesn't belong to an administrator account.
429rate_limitedThe token made more than 120 requests in the last 60 seconds.

API version v1. Every path on this page is relative to https://autoranko.com/api/public/v1.