Eigenpal Models API
List text, vision, and OCR models configured for the current tenant environment. This is a catalog inventory, not a live provider health probe.
List text, vision, and OCR models configured for the current tenant environment. This is a catalog inventory, not a live provider health probe.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/eigenpal:eigenpal-models-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Eigenpal Models API
version: 1.0.0
description: Public REST API for inspecting automations, starting and monitoring runs, managing files, collecting human reviews, and running evaluations.
contact:
name: Eigenpal
url: https://eigenpal.com
license:
name: Apache-2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.eigenpal.com
description: Production (canonical API hostname)
security:
- bearerAuth: []
tags:
- name: Models
description: List text, vision, and OCR models configured for the current tenant environment. This is a catalog inventory, not a live provider health probe.
paths:
/v1/models:
get:
operationId: models.list
summary: List configured models
description: 'List text, vision, and OCR models configured for this tenant''s environment from the workspace model catalog. This is a cheap read-only inventory: it does not call providers. `health` is `configured` or `unconfigured` from local credentials, never a live probe. Secrets and provider endpoints are never returned.'
tags:
- Models
parameters:
- in: query
name: capability
schema:
description: Return only models that support this capability (`text`, `vision`, or `ocr`).
type: string
enum:
- text
- vision
- ocr
description: Return only models that support this capability (`text`, `vision`, or `ocr`).
responses:
'200':
description: Configured models
content:
application/json:
schema:
$ref: '#/components/schemas/ListModelsResponse'
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'503':
description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
/v1/parsing/readiness:
get:
operationId: models.parserReadiness
summary: Inspect document parsing configuration
description: Read deployment-approved OCR/vision defaults and configuration readiness for ai.parse-v2. Does not probe live providers or worker native binaries. Run document smoke tests to verify live readiness.
tags:
- Models
responses:
'200':
description: Parsing configuration readiness
content:
application/json:
schema:
$ref: '#/components/schemas/ParsingReadiness'
'400':
description: Validation error. Request shape did not match the spec.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'403':
description: API key lacks required scope
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'404':
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'413':
description: Payload too large. Upload exceeded the per-request size cap.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'429':
description: Rate limit exceeded
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
'503':
description: Rate-limit accounting is temporarily unavailable. The request was not processed; retry.
headers:
Retry-After:
description: Seconds until the next request may succeed
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorEnvelope'
components:
schemas:
ApiErrorEnvelope:
type: object
properties:
issues:
type: array
items:
$ref: '#/components/schemas/ApiErrorIssue'
requestId:
type: string
description: Request id echoed via the x-request-id header
hint:
description: Suggested fix for known error patterns
type: string
docsUrl:
description: Link to relevant docs
type: string
conflictingWorkflowId:
description: Present on 409 workflow_name_conflict responses. Id of the workflow that already owns the requested name.
type: string
required:
- issues
- requestId
additionalProperties: false
ApiErrorIssue:
type: object
properties:
field:
type: string
description: JSON path of the offending field, or "<root>"
message:
type: string
description: Human-readable error message
code:
type: string
description: Machine-readable error code (e.g. invalid_value, not_found, api_trigger_disabled, manual_trigger_disabled)
severity:
type: string
enum:
- error
- warning
description: Issue severity
required:
- field
- message
- code
- severity
additionalProperties: false
PublicModel:
type: object
properties:
id:
type: string
kind:
type: string
enum:
- llm
- ocr
provider:
type: string
label:
type: string
capabilities:
minItems: 1
type: array
items:
type: string
enum:
- text
- vision
- ocr
configured:
type: boolean
available:
type: boolean
health:
type: string
enum:
- configured
- unconfigured
- unknown
description: 'Configuration state only: `configured` means credentials are present in this environment; `unconfigured` means the catalog entry exists but credentials are missing. This list does not probe live providers, so it never reports healthy/degraded/outage. `unknown` is reserved and is not emitted by this endpoint.'
defaultFor:
type: array
items:
type: string
enum:
- text
- vision
- ocr
location:
type: string
enum:
- local
- hosted
description: '`local` means on-prem / no cloud provider egress (`local: true` or tesseract). `hosted` means the provider is a cloud API. Endpoints are never returned.'
limits:
$ref: '#/components/schemas/PublicModelLimits'
cost:
description: Static Eigenpal credit rates when known without a live vendor catalog. Omitted for OpenParser OCR and for LLMs (token prices are not part of this catalog).
$ref: '#/components/schemas/PublicModelCost'
aliases:
type: array
items:
type: string
tags:
type: array
items:
type: string
capabilityRank:
description: Optional picker rank. Higher is more capable. Omitted on catalog rows that do not set it. Does not change role defaults.
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
required:
- id
- kind
- provider
- label
- capabilities
- configured
- available
- health
- defaultFor
- location
- aliases
- tags
additionalProperties: false
ListModelsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PublicModel'
total:
type: integer
minimum: 0
maximum: 9007199254740991
required:
- data
- total
additionalProperties: false
PublicModelLimits:
type: object
properties:
requestTimeoutSeconds:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
maxConcurrentRequests:
type: integer
exclusiveMinimum: 0
maximum: 9007199254740991
additionalProperties: false
ParsingReadiness:
type: object
properties:
stepType:
type: string
const: ai.parse-v2
imageReading:
type: string
enum:
- configured
- unconfigured
providers:
type: object
properties:
ocr:
anyOf:
- type: string
- type: 'null'
vision:
anyOf:
- type: string
- type: 'null'
required:
- ocr
- vision
additionalProperties: false
nativeExtraction:
type: string
const: requires-worker-probe
liveProbe:
type: boolean
const: false
warnings:
type: array
items:
type: string
required:
- stepType
- imageReading
- providers
- nativeExtraction
- liveProbe
- warnings
additionalProperties: false
PublicModelCost:
type: object
properties:
creditsPerPage:
type: number
minimum: 0
unit:
type: string
const: credits
required:
- unit
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'API key issued from Settings → API Keys. Pass as `Authorization: Bearer <key>`.'
x-provenance:
method: harvested
publisher: Eigenpal
source: https://docs.eigenpal.com/api-reference/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)