Entity Enricher API

Entity Enricher API as documented publicly: 54 operations. Contract generated from the documentation by API Evangelist (2026-11-06); not the provider's own document.

GitHub OpenAPI

Operations 54

POST /api/attachments Upload one or more files (multipart/form-data) #
POST /api/attachments/base64 Upload one file via JSON base64 (for non‑multipart clients) #
DELETE /api/attachments/{id} Delete an attachment (post‑enrichment cleanup) #
GET /api/attachments/{id}/download Download the original file bytes #
POST /api/auth/api-keys Create API keys from the API Keys page #
POST /api/batch/fetch Fetch entities from an external URL #
POST /api/batch/start Start batch enrichment for multiple entities #
GET /api/benchmarks List benchmark scenarios #
POST /api/benchmarks/{id}/reference Save and verify the gold reference a scenario is scored against #
POST /api/benchmarks/{id}/run Run a scenario across models — each result is scored automatically #
GET /api/billing/balance Current credit balance #
GET /api/billing/plans Available plans and their limits #
GET /api/billing/transactions Credit transaction history, including embedding spend #
GET /api/databases List the organization’s database registrations, with pending delta counts #
POST /api/databases Register a database on a schema #
POST /api/databases/{id}/ack Acknowledge applied deltas up to an id — releases the lease #
GET /api/databases/{id}/changes Fetch the next FIFO window of deltas; claim them to lease for acknowledged delivery #
POST /api/databases/{id}/clear-acked Purge delivered and acknowledged deltas #
GET /api/databases/{id}/snapshot Download the full state as a .sql snapshot — bootstrap from zero #
GET /api/enrichment/options GET /api/enrichment/options #
POST /api/fusion/merge Merge results from multiple models #
POST /api/llm/cancel/{jobId} Cancel a running or paused job #
POST /api/llm/continue/{jobId} Resume a paused job (e.g., after classification mismatch) #
GET /api/llm/stream/{jobId} SSE stream for any LLM job (enrichment, schema, fusion) #
GET /api/records List records with pagination and filtering #
POST /api/records/batch-delete Delete multiple records (max 100) #
GET /api/records/{id} Get full record detail with structured output #
POST /api/schema/analyze-sample Analyze sample JSON for ambiguous property names — those admitting several readings in the context of their parent, or none — and for related items mixing entity facts with per-par #
POST /api/schema/generate/stream Generate schema from sample data (SSE) #
POST /api/schema/sample/generate/stream Generate 1..N sample JSON objects of one entity type (returns job_id for SSE) #
GET /api/schema/saved List saved schemas #
POST /api/schema/saved Create a new schema #
POST /api/schema/saved/{id}/analyze Run the ambiguity and identity‑scoping checks on a saved schema and write their annotations (a rewritten description per ambiguous name) #
DELETE /api/schema/saved/{id}/enrichment-data Purge a schema's enrichment data — records and entity state — keeping the schema (owner+) #
POST /api/schema/saved/{id}/prompt/stream AI-edit schema with natural language (SSE) #
POST /api/schema/saved/{id}/publish Publish a linked schema’s working copy as the contract enrichment and its databases run against. Nothing structural takes effect until this runs #
GET /api/semantic-concepts Browse the concept vocabulary, filtered by type and scored against a reference concept #
POST /api/semantic-concepts/delete-impact What deleting concepts would affect — usage counts and resync cost #
GET /api/semantic-concepts/export Export the vocabulary as CSV #
POST /api/semantic-concepts/import Batch‑resolve a CSV of identity texts (minting requires owner) #
GET /api/semantic-concepts/migration/status State of the embedding‑model migration, if one is running #
POST /api/semantic-concepts/probe Dry-run the resolution ladder for a text — what would it match, and how closely #
GET /api/semantic-concepts/review Concept pairs the identity judge left for a person: escalated, found duplicated while answering another question, or separated at a similarity worth confirming #
GET /api/semantic-concepts/types List concept types with their counts and embedding models #
POST /api/single/enrich/stream Start single entity enrichment (returns job_id for SSE) #
POST /api/single/enrich/sync Blocking single enrichment for non‑SSE clients #
POST /api/tunnel Ollama Tunnels - Entity Enricher Documentation #
POST /api/tunnel/confirm Ollama Tunnels - Entity Enricher Documentation #
POST /api/tunnel/poll Ollama Tunnels - Entity Enricher Documentation #
POST /enrich/stream n8n connector entry point that starts a streaming enrichment job and returns a job_id. #
POST /enrich/sync Make.com connector endpoint that internally awaits the enrichment flow and returns the final bundle. #
GET /install-eedatabase.sh install script for ee-database client #
GET /install.sh Ollama Tunnels - Entity Enricher Documentation #
GET /llm/stream/{id} Poll the Server‑Sent Events stream for a given enrichment job id, yielding events and the final bundle. #

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/entityenricher-ai:entityenricher-ai-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

entityenricher-ai-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Entity Enricher API
  version: '2026-11-06'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-06: 54 operation(s) read from 9 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Entity Enricher has published no machine-readable contract that
    the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 1
    documentation: 53
    pages-with-code: 4
    pages-read: 9
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-06'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://entityenricher.ai/docs/api
  - https://entityenricher.ai/docs/platform/api-keys
  - https://entityenricher.ai/docs/integrations/tunnels
  - https://entityenricher.ai/docs/integrations/ee-database
  - https://entityenricher.ai/docs/enrichment/attachments
  - https://entityenricher.ai/docs/schemas/ambiguity
  - https://entityenricher.ai/docs/database-sync
  - https://entityenricher.ai/docs/integrations/n8n
  - https://entityenricher.ai/docs/integrations/make
paths:
  /api/attachments:
    post:
      operationId: post_api_attachments
      tags:
      - Api
      summary: Upload one or more files (multipart/form-data)
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/attachments/base64:
    post:
      operationId: post_api_attachments_base64
      tags:
      - Api
      summary: Upload one file via JSON base64 (for non‑multipart clients)
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/attachments/{id}:
    delete:
      operationId: delete_api_attachments_id
      tags:
      - Api
      summary: Delete an attachment (post‑enrichment cleanup)
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/attachments/{id}/download:
    get:
      operationId: get_api_attachments_id_download
      tags:
      - Api
      summary: Download the original file bytes
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/auth/api-keys:
    post:
      operationId: post_api_auth_api_keys
      tags:
      - Api
      summary: Create API keys from the API Keys page
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/batch/fetch:
    post:
      operationId: post_api_batch_fetch
      tags:
      - Api
      summary: Fetch entities from an external URL
      x-source: https://entityenricher.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiBatchFetchRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/batch/start:
    post:
      operationId: post_api_batch_start
      tags:
      - Api
      summary: Start batch enrichment for multiple entities
      x-source: https://entityenricher.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiBatchStartRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiBatchStartResponse'
      x-evidence:
        kind: documentation
  /api/benchmarks:
    get:
      operationId: get_api_benchmarks
      tags:
      - Api
      summary: List benchmark scenarios
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/benchmarks/{id}/reference:
    post:
      operationId: post_api_benchmarks_id_reference
      tags:
      - Api
      summary: Save and verify the gold reference a scenario is scored against
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/benchmarks/{id}/run:
    post:
      operationId: post_api_benchmarks_id_run
      tags:
      - Api
      summary: Run a scenario across models — each result is scored automatically
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/billing/balance:
    get:
      operationId: get_api_billing_balance
      tags:
      - Api
      summary: Current credit balance
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/billing/plans:
    get:
      operationId: get_api_billing_plans
      tags:
      - Api
      summary: Available plans and their limits
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/billing/transactions:
    get:
      operationId: get_api_billing_transactions
      tags:
      - Api
      summary: Credit transaction history, including embedding spend
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/databases:
    get:
      operationId: get_api_databases
      tags:
      - Api
      summary: List the organization’s database registrations, with pending delta counts
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_databases
      tags:
      - Api
      summary: Register a database on a schema
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/databases/{id}/ack:
    post:
      operationId: post_api_databases_id_ack
      tags:
      - Api
      summary: Acknowledge applied deltas up to an id — releases the lease
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/databases/{id}/changes:
    get:
      operationId: get_api_databases_id_changes
      tags:
      - Api
      summary: Fetch the next FIFO window of deltas; claim them to lease for acknowledged delivery
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/databases/{id}/clear-acked:
    post:
      operationId: post_api_databases_id_clear_acked
      tags:
      - Api
      summary: Purge delivered and acknowledged deltas
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/databases/{id}/snapshot:
    get:
      operationId: get_api_databases_id_snapshot
      tags:
      - Api
      summary: Download the full state as a .sql snapshot — bootstrap from zero
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/enrichment/options:
    get:
      operationId: get_api_enrichment_options
      tags:
      - Api
      summary: GET /api/enrichment/options
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -H "X-API-Key: ent_your_key_here"  https://your-instance.example.com/api/enrichment/options Create API keys from the API
          Keys page or via POST /api/auth/api-keys . See the API Keys guide for details on key types and permissions. Key Endpoints Enrichment
          Method Endpoint Description GET /api/enrichment/options Available models, languages, and strategies POST /api/single/enrich/stream Start
          sing'
  /api/fusion/merge:
    post:
      operationId: post_api_fusion_merge
      tags:
      - Api
      summary: Merge results from multiple models
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/llm/cancel/{jobId}:
    post:
      operationId: post_api_llm_cancel_jobId
      tags:
      - Api
      summary: Cancel a running or paused job
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/llm/continue/{jobId}:
    post:
      operationId: post_api_llm_continue_jobId
      tags:
      - Api
      summary: Resume a paused job (e.g., after classification mismatch)
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/llm/stream/{jobId}:
    get:
      operationId: get_api_llm_stream_jobId
      tags:
      - Api
      summary: SSE stream for any LLM job (enrichment, schema, fusion)
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/records:
    get:
      operationId: get_api_records
      tags:
      - Api
      summary: List records with pagination and filtering
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/records/batch-delete:
    post:
      operationId: post_api_records_batch_delete
      tags:
      - Api
      summary: Delete multiple records (max 100)
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/records/{id}:
    get:
      operationId: get_api_records_id
      tags:
      - Api
      summary: Get full record detail with structured output
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiRecordsIdResponse'
      x-evidence:
        kind: documentation
  /api/schema/analyze-sample:
    post:
      operationId: post_api_schema_analyze_sample
      tags:
      - Api
      summary: Analyze sample JSON for ambiguous property names — those admitting several readings in the context of their parent, or none — and
        for related items mixing entity facts with per-parent facts (stateless
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/schema/generate/stream:
    post:
      operationId: post_api_schema_generate_stream
      tags:
      - Api
      summary: Generate schema from sample data (SSE)
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/schema/sample/generate/stream:
    post:
      operationId: post_api_schema_sample_generate_stream
      tags:
      - Api
      summary: Generate 1..N sample JSON objects of one entity type (returns job_id for SSE)
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/schema/saved:
    get:
      operationId: get_api_schema_saved
      tags:
      - Api
      summary: List saved schemas
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_schema_saved
      tags:
      - Api
      summary: Create a new schema
      x-source: https://entityenricher.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiSchemaSavedRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiSchemaSavedResponse'
      x-evidence:
        kind: documentation
  /api/schema/saved/{id}/analyze:
    post:
      operationId: post_api_schema_saved_id_analyze
      tags:
      - Api
      summary: Run the ambiguity and identity‑scoping checks on a saved schema and write their annotations (a rewritten description per ambiguous
        name)
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/schema/saved/{id}/enrichment-data:
    delete:
      operationId: delete_api_schema_saved_id_enrichment_data
      tags:
      - Api
      summary: Purge a schema's enrichment data — records and entity state — keeping the schema (owner+)
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/schema/saved/{id}/prompt/stream:
    post:
      operationId: post_api_schema_saved_id_prompt_stream
      tags:
      - Api
      summary: AI-edit schema with natural language (SSE)
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/schema/saved/{id}/publish:
    post:
      operationId: post_api_schema_saved_id_publish
      tags:
      - Api
      summary: Publish a linked schema’s working copy as the contract enrichment and its databases run against. Nothing structural takes effect
        until this runs
      x-source: https://entityenricher.ai/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts:
    get:
      operationId: get_api_semantic_concepts
      tags:
      - Api
      summary: Browse the concept vocabulary, filtered by type and scored against a reference concept
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/delete-impact:
    post:
      operationId: post_api_semantic_concepts_delete_impact
      tags:
      - Api
      summary: What deleting concepts would affect — usage counts and resync cost
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/export:
    get:
      operationId: get_api_semantic_concepts_export
      tags:
      - Api
      summary: Export the vocabulary as CSV
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/import:
    post:
      operationId: post_api_semantic_concepts_import
      tags:
      - Api
      summary: Batch‑resolve a CSV of identity texts (minting requires owner)
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/migration/status:
    get:
      operationId: get_api_semantic_concepts_migration_status
      tags:
      - Api
      summary: State of the embedding‑model migration, if one is running
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/probe:
    post:
      operationId: post_api_semantic_concepts_probe
      tags:
      - Api
      summary: Dry-run the resolution ladder for a text — what would it match, and how closely
      x-source: https://entityenricher.ai/docs/api
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/review:
    get:
      operationId: get_api_semantic_concepts_review
      tags:
      - Api
      summary: 'Concept pairs the identity judge left for a person: escalated, found duplicated while answering another question, or separated
        at a similarity worth confirming'
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/semantic-concepts/types:
    get:
      operationId: get_api_semantic_concepts_types
      tags:
      - Api
      summary: List concept types with their counts and embedding models
      x-source: https://entityenricher.ai/docs/api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/single/enrich/stream:
    post:
      operationId: post_api_single_enrich_stream
      tags:
      - Api
      summary: Start single entity enrichment (returns job_id for SSE)
      x-source: https://entityenricher.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiSingleEnrichStreamRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiSingleEnrichStreamResponse'
      x-evidence:
        kind: documentation
  /api/single/enrich/sync:
    post:
      operationId: post_api_single_enrich_sync
      tags:
      - Api
      summary: Blocking single enrichment for non‑SSE clients
      x-source: https://entityenricher.ai/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiSingleEnrichSyncRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiSingleEnrichSyncResponse'
      x-evidence:
        kind: documentation
  /api/tunnel:
    post:
      operationId: post_api_tunnel
      tags:
      - Api
      summary: Ollama Tunnels - Entity Enricher Documentation
      x-source: https://entityenricher.ai/docs/integrations/tunnels
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiTunnelRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiTunnelResponse'
      x-evidence:
        kind: documentation
  /api/tunnel/confirm:
    post:
      operationId: post_api_tunnel_confirm
      tags:
      - Api
      summary: Ollama Tunnels - Entity Enricher Documentation
      x-source: https://entityenricher.ai/docs/integrations/tunnels
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        description: Bearer <user JWT, role=owner>
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiTunnelConfirmRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiTunnelConfirmResponse'
      x-evidence:
        kind: documentation
  /api/tunnel/poll:
    post:
      operationId: post_api_tunnel_poll
      tags:
      - Api
      summary: Ollama Tunnels - Entity Enricher Documentation
      x-source: https://entityenricher.ai/docs/integrations/tunnels
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiTunnelPollResponse'
      x-evidence:
        kind: documentation
  /enrich/stream:
    post:
      operationId: post_enrich_stream
      tags:
      - Enrich
      summary: n8n connector entry point that starts a streaming enrichment job and returns a job_id.
      x-source: https://entityenricher.ai/docs/integrations/make
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostEnrichStreamResponse'
      x-evidence:
        kind: documentation
  /enrich/sync:
    post:
      operationId: post_enrich_sync
      tags:
      - Enrich
      summary: Make.com connector endpoint that internally awaits the enrichment flow and returns the final bundle.
      x-source: https://entityenricher.ai/docs/integrations/make
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostEnrichSyncResponse'
      x-evidence:
        kind: documentation
  /install-eedatabase.sh:
    get:
      operationId: get_install_eedatabase_sh
      tags:
      - Install Eedatabase
      summary: install script for ee-database client
      x-source: https://entityenricher.ai/docs/integrations/ee-database
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /install.sh:
    get:
      operationId: get_install_sh
      tags:
      - Install
      summary: Ollama Tunnels - Entity Enricher Documentation
      x-source: https://entityenricher.ai/docs/integrations/tunnels
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInstallShResponse'
      x-evidence:
        kind: documentation
  /llm/stream/{id}:
    get:
      operationId: get_llm_stream_id
      tags:
      - Llm
      summary: Poll the Server‑Sent Events stream for a given enrichment job id, yielding events and the final bundle.
      x-source: https://entityenricher.ai/docs/integrations/make
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLlmStreamIdResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApiBatchFetchRequest:
      type: object
      properties:
        url:
          type: string
        schema_id:
          type: string
      required:
      - url
      - schema_id
    PostApiBatchStartRequest:
      type: object
      properties:
        entities:
          type: array
        schema_id:
          type: string
        models:
          type: array
        strategy:
          type: string
        arbitration_model:
          type: string
      required:
      - entities
      - schema_id
    PostApiBatchStartResponse:
      type: object
      properties:
        job_id:
          type: string
    GetApiRecordsIdResponse:
      type: object
      properties:
        structured_output:
          type: object
    PostApiSchemaSavedRequest:
      type: object
      properties:
        schema_name:
          type: string
        definition:
          type: object
      required:
      - schema_name
      - definition
    PostApiSchemaSavedResponse:
      type: object
      properties:
        id:
          type: string
    PostApiSingleEnrichStreamRequest:
      type: object
      properties:
        entity_data:
          type: object
        schema_id:
          type: string
        models:
          type: array
        strategy:
          type: string
      required:
      - entity_data
      - schema_id
    PostApiSingleEnrichStreamResponse:
      type: object
      properties:
        job_id:
          type: string
    PostApiSingleEnrichSyncRequest:
      type: object
      properties:
        entity_data:
          type: object
        schema_id:
          type: string
        models:
          type: array
        strategy:
          type: string
      required:
      - entity_data
      - schema_id
    PostApiSingleEnrichSyncResponse:
      type: object
      properties:
        structured_output:
          type: object
    PostApiTunnelRequest:
      type: object
      properties:
        device_code:
          type: string
          description: Device code generated by the CLI for pairing
      required:
      - device_code
    PostApiTunnelResponse:
      type: object
      properties:
        device_code:
          type: string
          description: Device code for the pairing flow
        user_code:
          type: string
          description: Short code shown to the user
        verification_uri:
          type: string
          description: URL the user must visit to confirm pairing
    PostApiTunnelConfirmRequest:
      type: object
      properties:
        label:
          type: string
          description: Human‑readable label for the tunnel
        user_code:
          type: string
          description: The short code entered by the user
      required:
      - label
      - user_code
    PostApiTunnelConfirmResponse:
      type: object
      properties:
        tunnel_metadata:
          type: object
          description: Metadata describing the created tunnel
    PostApiTunnelPollResponse:
      type: object
      properties:
        status:
          type: string
          description: Result status, e.g., 'ok'
        refresh_token:
          type: string
          description: Token used by the CLI to authenticate future requests
        server_url:
          type: string
          description: Base URL of the Entity Enricher server
        tunnel_id:
          type: string
          description: Identifier of the paired tunnel
    PostEnrichStreamResponse:
      type: object
      properties:
        job_id:
          type: string
          description: Identifier of the streaming enrichment job to be polled via GET /llm/stream/{id}.
    PostEnrichSyncResponse:
      type: object
      properties:
        final_bundle:
          type: string
          description: The final enriched entity result returned after the server‑side processing completes.
    GetInstallShResponse:
      type: object
      properties:
        script:
          type: string
          description: Shell script installer for the ee‑tunnel CLI
    GetLlmStreamIdResponse:
      type: object
      properties:
        events:
          type: string
          description: Streaming SSE events representing incremental enrichment progress.
        final_bundle:
          type: string
          description: The final enriched entity bundle emitted when the job completes.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
security:
- apiKey: []
tags:
- name: Api
- name: Enrich
- name: Install
- name: Install Eedatabase
- name: Llm