Hlix Model Config API

The model-config API from Hlix — 6 operation(s) for model-config.

GitHub OpenAPI

Operations 8

GET /v1/api/model-config List the workspace's AI settings rows #
GET /v1/api/model-config/catalog List current tool-capable chat models #
GET /v1/api/model-config/projects/{projectId}/resolved Resolve a project's AI settings, with provenance #
DELETE /v1/api/model-config/projects/{projectId}/{slot} Clear a project's override of one settings group #
PUT /v1/api/model-config/projects/{projectId}/{slot} Set a project's override of one settings group #
GET /v1/api/model-config/resolved Resolve the workspace's AI settings, with provenance #
DELETE /v1/api/model-config/{slot} Clear one workspace settings group #
PUT /v1/api/model-config/{slot} Set one workspace settings group #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hlix-ai:hlix-ai-model-config-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hlix-ai-model-config-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Explore the Hlix API for projects, agent teams, and delivery workflows. Authenticate with `x-api-key` and select a Workspace with `X-Organization-Id`. Session-only operations require a signed-in user session. Authentication setup.
  title: reference Model Config API
  version: 1.0.0
servers:
- url: https://server.hlix.ai
  description: API server
security:
- apiKey: []
- sessionCookie: []
tags:
- name: model-config
paths:
  /v1/api/model-config:
    get:
      operationId: listAiSettings
      parameters:
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CoreSettingsRow'
                type: array
          description: 'Configured AI settings: workspace rows have `projectId: null`, followed by project overrides. Omitted groups use defaults.'
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.
      summary: List the workspace's AI settings rows
      tags:
      - model-config
  /v1/api/model-config/catalog:
    get:
      operationId: listModelCatalog
      parameters:
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelCatalog'
          description: Model catalog, with freshness metadata.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.
      summary: List current tool-capable chat models
      tags:
      - model-config
  /v1/api/model-config/projects/{projectId}/resolved:
    get:
      operationId: getResolvedProjectAiSettings
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResolvedSettings'
          description: What would run for this project (its override, else the workspace's, else the default), and which setting chose each field.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No such project in this workspace.
      summary: Resolve a project's AI settings, with provenance
      tags:
      - model-config
  /v1/api/model-config/projects/{projectId}/{slot}:
    delete:
      operationId: clearProjectAiSettings
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: slot
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedAck'
          description: Cleared; the project now uses the workspace's setting, or the default.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The path segment is not a settings group (`operator` or `cycle`), or the request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Changing a project's settings is agency administration; a client collaborator is refused even with steer access.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No such project in this workspace, or it had no override to clear.
      summary: Clear a project's override of one settings group
      tags:
      - model-config
    put:
      operationId: setProjectAiSettings
      parameters:
      - in: path
        name: projectId
        required: true
        schema:
          type: string
      - in: path
        name: slot
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/OrganizationId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertSettings'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoreSettingsRow'
          description: The stored row. Omitted fields keep their value and null clears one; a cleared field inherits from the workspace.
        '400':
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ValidationError'
                - $ref: '#/components/schemas/ApiError'
          description: The path segment is not a settings group (`operator` or `cycle`), the JSON body failed validation, the operator group was given a cycle-only field, the harness cannot use the selected provider, or the request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Changing a project's settings is agency administration; a client collaborator is refused even with steer access.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No such project in this workspace.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The settings changed while this request was being checked; read them again and retry.
      summary: Set a project's override of one settings group
      tags:
      - model-config
  /v1/api/model-config/resolved:
    get:
      operationId: getResolvedAiSettings
      parameters:
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResolvedSettings'
          description: What the workspace resolves to, and which setting chose each field.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.
      summary: Resolve the workspace's AI settings, with provenance
      tags:
      - model-config
  /v1/api/model-config/{slot}:
    delete:
      operationId: clearAiSettings
      parameters:
      - in: path
        name: slot
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/OrganizationId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeletedAck'
          description: Cleared; the group falls back to the default.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The path segment is not a settings group (`operator` or `cycle`), or the request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Changing workspace settings requires owner or admin access because these settings select the coder and default models across projects.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: That group had no workspace setting to clear.
      summary: Clear one workspace settings group
      tags:
      - model-config
    put:
      operationId: setAiSettings
      parameters:
      - in: path
        name: slot
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/OrganizationId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertSettings'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CoreSettingsRow'
          description: The stored row. Omitted fields keep their value and null clears one. Moving the harness without naming a provider resets an incompatible provider to hlix-managed.
        '400':
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ValidationError'
                - $ref: '#/components/schemas/ApiError'
          description: The path segment is not a settings group (`operator` or `cycle`), the JSON body failed validation, the operator group was given a cycle-only field, the harness cannot use the selected provider, or the request named no active organization.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: No valid session or API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: Changing workspace settings requires owner or admin access because these settings select the coder and default models across projects.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: The settings changed while this request was being checked; read them again and retry.
      summary: Set one workspace settings group
      tags:
      - model-config
components:
  schemas:
    ApiError:
      additionalProperties: {}
      properties:
        error:
          type: string
      required:
      - error
      type: object
    ModelCatalog:
      properties:
        models:
          items:
            properties:
              contextWindow:
                type: number
              created:
                type: number
              identifier:
                type: string
              name:
                type: string
            required:
            - identifier
            - name
            - contextWindow
            - created
            type: object
          type: array
        stale:
          type: boolean
        updatedAt:
          type:
          - string
          - 'null'
      required:
      - models
      - updatedAt
      - stale
      type: object
    CoreSettingsRow:
      properties:
        createdAt:
          type: string
        effort:
          anyOf:
          - enum:
            - low
            - medium
            - high
            type: string
          - type: 'null'
        funding:
          anyOf:
          - properties:
              accountId:
                type:
                - string
                - 'null'
              mode:
                enum:
                - managed
                - api_key
                - subscription
                type: string
              nativeModel:
                type:
                - string
                - 'null'
            required:
            - mode
            - accountId
            - nativeModel
            type: object
          - type: 'null'
        harness:
          anyOf:
          - enum:
            - claude-code
            - openai-agents
            - codex
            - aider
            - opencode
            - goose
            - qwen-code
            - pi
            - hlix
            type: string
          - type: 'null'
        id:
          type: string
        maxParallelCycles:
          anyOf:
          - maximum: 9007199254740991
            minimum: -9007199254740991
            type: integer
          - type: 'null'
        model:
          type:
          - string
          - 'null'
        projectId:
          type:
          - string
          - 'null'
        slot:
          enum:
          - operator
          - cycle
          type: string
        updatedAt:
          type: string
      required:
      - id
      - projectId
      - slot
      - harness
      - funding
      - model
      - effort
      - maxParallelCycles
      - createdAt
      - updatedAt
      type: object
    UpsertSettings:
      additionalProperties: false
      properties:
        effort:
          anyOf:
          - enum:
            - low
            - medium
            - high
            type: string
          - type: 'null'
        funding:
          anyOf:
          - additionalProperties: false
            properties:
              accountId:
                anyOf:
                - maxLength: 200
                  minLength: 1
                  type: string
                - type: 'null'
              mode:
                enum:
                - managed
                - api_key
                - subscription
                type: string
              nativeModel:
                anyOf:
                - maxLength: 200
                  minLength: 1
                  type: string
                - type: 'null'
              providerId:
                anyOf:
                - maxLength: 200
                  minLength: 1
                  type: string
                - type: 'null'
            required:
            - mode
            - accountId
            - nativeModel
            type: object
          - type: 'null'
        harness:
          anyOf:
          - enum:
            - claude-code
            - codex
            - opencode
            - goose
            - qwen-code
            - pi
            - hlix
            type: string
          - type: 'null'
        maxParallelCycles:
          anyOf:
          - maximum: 20
            minimum: 1
            type: integer
          - type: 'null'
        model:
          anyOf:
          - maxLength: 200
            minLength: 1
            type: string
          - type: 'null'
      type: object
    DeletedAck:
      properties:
        ok:
          const: true
          type: boolean
      required:
      - ok
      type: object
    ValidationError:
      properties:
        error:
          properties:
            message:
              type: string
            name:
              type: string
          required:
          - name
          - message
          type: object
        success:
          const: false
          type: boolean
      required:
      - success
      - error
      type: object
    ResolvedSettings:
      properties:
        cycle:
          properties:
            effort:
              anyOf:
              - enum:
                - low
                - medium
                - high
                type: string
              - type: 'null'
            funding:
              properties:
                accountId:
                  type:
                  - string
                  - 'null'
                mode:
                  enum:
                  - managed
                  - api_key
                  - subscription
                  type: string
                nativeModel:
                  type:
                  - string
                  - 'null'
              required:
              - mode
              - accountId
              - nativeModel
              type: object
            harness:
              enum:
              - claude-code
              - openai-agents
              - codex
              - aider
              - opencode
              - goose
              - qwen-code
              - pi
              - hlix
              type: string
            harnessScopeId:
              type:
              - string
              - 'null'
            maxParallelCycles:
              anyOf:
              - maximum: 9007199254740991
                minimum: -9007199254740991
                type: integer
              - type: 'null'
            model:
              type:
              - string
              - 'null'
            source:
              properties:
                effort:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
                funding:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
                harness:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
                maxParallelCycles:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
                model:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
              required:
              - harness
              - funding
              - model
              - effort
              - maxParallelCycles
              type: object
          required:
          - harness
          - funding
          - model
          - effort
          - maxParallelCycles
          - source
          - harnessScopeId
          type: object
        operator:
          properties:
            effort:
              anyOf:
              - enum:
                - low
                - medium
                - high
                type: string
              - type: 'null'
            model:
              type:
              - string
              - 'null'
            source:
              properties:
                effort:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
                model:
                  enum:
                  - task-override
                  - agent
                  - project-preference
                  - organization-preference
                  - system-default
                  type: string
              required:
              - model
              - effort
              type: object
          required:
          - model
          - effort
          - source
          type: object
      required:
      - operator
      - cycle
      type: object
  parameters:
    OrganizationId:
      description: The workspace (organization) to act in. Omitted, the session's active organization is used.
      in: header
      name: X-Organization-Id
      required: false
      schema:
        type: string
      example: YOUR_WORKSPACE_ID
  securitySchemes:
    apiKey:
      description: An API key issued through `/v1/api/auth/api-key/*`. Browser clients can use their session cookie instead.
      in: header
      name: x-api-key
      type: apiKey
    sessionCookie:
      description: The complete session Cookie header issued by sign-in at the selected API host. Cookie names vary by hosting region and environment; preserve the issued name and value. Browsers send these HTTP-only cookies automatically. Session-only operations require this user session and do not accept an API key.
      in: header
      name: Cookie
      type: apiKey