Antfly

Antfly provides a self‑learning retrieval engine for AI agents, enabling hybrid search over user‑owned data sources such as PostgreSQL, S3, and file systems. It offers built‑in vector embeddings, reranking, multimodal support (text, images, audio, video), and a knowledge graph, all running locally or in the Antfly Cloud. The platform is open‑source, free for self‑hosted use, and includes managed growth and enterprise plans with RBAC, SSO, autoscaling, and unlimited queries.

Antfly publishes 20 API contracts indexed on the APIs.io network, including AI API, Cluster Management API, Data Operations API, and 17 more. Tagged areas include AI, Search, Retrieval, Vector, and Hybrid.

The Antfly catalog on APIs.io includes 1 event-driven AsyncAPI specification, 1 JSON-LD context, and 1 Spectral governance ruleset.

Antfly’s developer surface includes changelog, authentication, documentation, API reference, getting-started guide, engineering blog, pricing, and 23 more developer resources.

50.7/100 developing Agent 45/100 agent native Full breakdown ↓
scored 2026-10-31 · rubric v0.25.0 · Show this score on your site →
1 published contract
AISearchRetrievalVectorHybrid

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-10-31 · rubric v0.25.0
Regulatory Posture applies to this provider. Its tags matched the Horizontal (data, software, accessibility, platform) regime, so Regulatory Posture carries 15 points of the composite. If this regime is wrong for your business, say so on your provider repo — the applicability map is public and we will correct it.
Create-or-Update Ergonomics could not be measured. We hold no machine-readable contract for this provider to read, so there is nothing to measure a write surface against. Excluded rather than scored zero: never-measured and measured-empty are different facts. Publishing an OpenAPI is what makes this facet — and several others — scorable at all.
The six quality facets above are damped to 85 points between them, because the conditional facet above carries the other 15. That is why each facet's contribution is shown against a damped maximum: raising a quality facet moves the composite by 85% of its nominal weight, not 100%. The full arithmetic is at apis.io/rating/.
Show this score on your site. Kin Score badge preview for Antfly It updates itself when the score changes. Paste this where you link to your API docs:
<a href="https://apis.io/providers/antfly/"><img src="https://apis.io/badge/antfly/card.svg" alt="Antfly on APIs.io — Kin Score by API Evangelist"></a>
Other styles, a README pill and a shields.io endpoint are on the badge page.
Raise your score.
Agent readiness — checks not met, largest first (exact, from this profile):
  • MCP Server +12 pts — deployment.mode + probe verdict on the mcp/ manifest, not the pointer; an unprobed slug falls back to authorship
  • A2A Agent Card +8 pts — a2a/-a2a.yml manifest, graded on conformance.grade against A2A 1.0.0
  • Delegated User Identity +6 pts — a served discovery document listing authorization_code in grant_types_supported (served), else an oauth2 authorizationCode flow or openIdConnect declared in an OpenAPI (documented)
  • Registration Without a Human +6 pts — a `registration_endpoint` in the served RFC 8414 / OIDC discovery document
  • Documented Reversibility +6 pts — a reversal operation in the contract, graded up when a window is documented too
  • Pagination +5 pts — share of collection GETs (an array, or one wrapped in data/items/results ...) that declare a page/limit/offset/cursor parameter, a Link header or a next/cursor field; na with no collection GETs
4 more unmet checks in the Agent Readiness table above.
Kin Score — facets with the most composite points still available (weight × headroom):
Each check links to what satisfies it. Publish the artifact, or tell us where it already lives, and the score moves on the next scoring run.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from the provider profile at artifacts.apis.io/antfly/apis.yml: open an issue on github.com/api-evangelist/antfly to ask a question or point us at an artifact you publish. Submit an artifact on GitHub — free → Manage your own listing — the Influence plan, $499/mo →

Markets this provider is in provisional

The Kin Score Market layer reads a provider inside its market: its position, and how deep its integrations go. Depth is only comparable within a position. Provisional and unweighted: not part of the Kin Score or agent readiness.

MarketPositionDepthRegistered MCP serverDeclares compatibility
Typed Decision Models undeclared - - 1

Registered MCP server and declares compatibility are report only — not weighted. Undeclared means we found nothing we can read, so there is no number: we never infer integrations.

APIs 20

Individual APIs this provider publishes, each with its own machine-readable definition.

Antfly AI API

The Ai API from Antfly — 24 operation(s) for ai.

Antfly Cluster Management API

Monitor and manage your Antfly cluster's health and status. ## Cluster Health The cluster health endpoint provides real-time status of all stores and shards: - **healthy**: All ...

Antfly Data Operations API

Perform data operations including batch inserts/deletes, linear merge sync, backup/restore, and individual key lookups. ## Batch Operations Efficiently insert or delete multiple...

Antfly Documents API

The Documents API from Antfly — 12 operation(s) for documents.

Antfly Index Management API

Create and manage indexes for full-text search, vector similarity search, and multimodal content. ## Index Types Antfly supports two primary index types: ### `full_text` - Full-...

Antfly Inference API

The Inference API from Antfly — 1 operation(s) for inference.

Antfly Installed API

PostgreSQL-style installed extension lifecycle.

Antfly Memory API

Evidence-backed temporal agent memory

Antfly Ml API

The Ml API from Antfly — 3 operation(s) for ml.

Antfly Models API

The Models API from Antfly — 2 operation(s) for models.

Antfly Packages API

Signed installable artifacts known to Antfly.

Antfly Permission API

Operations related to permissions

Antfly Personal Connections API

The personal_connections API from Antfly — 5 operation(s) for personal_connections.

Antfly Query Operations API

Execute queries across tables using full-text search, vector similarity search, or hybrid approaches combining both with Reciprocal Rank Fusion (RRF). ## Query Types ### Full-Te...

Antfly Resolver Curation API

Durable resolver identity correction, suppression, review and replay.

Antfly Role API

Operations related to Casbin role and group membership

Antfly Row Filter API

Operations related to row-level security filters

Antfly Table Management API

Manage tables in your Antfly cluster. Tables store your documents and support multiple indexes. ## Schema Schemas define the structure and types of data in your tables using **J...

Antfly User API

Operations related to users

Antfly API Key API

Operations related to API key management

Scroll for all 20

Pricing Plans 1

Published pricing tiers and plan structures.

Antfly Plans Pricing

3 plans

PLANS

Event Specifications 1

AsyncAPI definitions for this provider's event-driven and streaming APIs.

Antfly Webhooks

ASYNCAPI

Semantic Vocabularies 1

JSON-LD contexts and semantic vocabularies used across these APIs.

Antfly Context

120 classes · 325 properties

JSON-LD

Spectral Rules 1

Spectral governance rulesets for linting and validating these APIs.

Antfly API Rules

13 rules · 6 errors 5 warnings 2 info

SPECTRAL

JSON Schema 12

Standalone JSON Schema definitions for this provider's data models.

InferenceGenerateRequest

33 properties

JSON SCHEMA

MemoryInspection

2 properties

JSON SCHEMA

MemoryRecallResult

13 properties

JSON SCHEMA

MemoryRecordPage

4 properties

JSON SCHEMA

MemoryRecord

16 properties

JSON SCHEMA

MemoryRelationshipProposal

15 properties

JSON SCHEMA

PostAiV1ChatCompletionsRequest

33 properties

JSON SCHEMA

PostAiV1GenerateBatchRequest

2 properties

JSON SCHEMA

PostAiV1GenerateContextPrepareRequest

10 properties

JSON SCHEMA

PostAiV1GenerateRequest

33 properties

JSON SCHEMA

PostGenerateContextCheckpointRequest

28 properties

JSON SCHEMA

Scroll for all 12

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Antfly Authentication

apiKey/http · 3 schemes

SECURITY

Antfly Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Antfly Agentic Access

338 operations · 218 acting · 5 human-in-the-loop

338 operations · 218 acting

AGENTIC

Resources

Get Started 1

Portal, sign-up, and the first successful call

Documentation 2

Reference material describing how the API behaves

Agent Surfaces 2

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 9

Pagination, idempotency, versioning, errors, and events

Scroll for all 9

Build 3

SDKs, sample code, and the tooling you integrate with

Access & Security 2

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 4

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Other 3

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: antfly
name: Antfly
description: Antfly provides a self‑learning retrieval engine for AI agents, enabling hybrid search over user‑owned data sources
  such as PostgreSQL, S3, and file systems. It offers built‑in vector embeddings, reranking, multimodal support (text, images,
  audio, video), and a knowledge graph, all running locally or in the Antfly Cloud. The platform is open‑source, free for
  self‑hosted use, and includes managed growth and enterprise plans with RBAC, SSO, autoscaling, and unlimited queries.
url: https://artifacts.apis.io/antfly/apis.yml
image: https://antfly.io/af-logo.svg
x-type: company
x-source: harvest:vc-portfolio
x-tier: profiled
x-tier-reason: enrichment pass 2026-10-29 (modular-v1; was harvest)
specificationVersion: '0.20'
created: '2026-10-29'
modified: '2026-10-29'
tags:
- AI
- Search
- Retrieval
- Vector
- Hybrid
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
- FN: APIs.json
  email: info@apis.io
common:
- type: AgenticAccess
  url: agentic-access/antfly-agentic-access.yml
- type: Plans
  url: plans/antfly-plans-pricing.yml
- type: Spectral
  url: rules/antfly-rules.yml
- type: JSONLD
  url: json-ld/antfly-context.jsonld
- type: Vocabulary
  url: vocabulary/antfly-vocabulary.yml
- type: AgentSkill
  url: skills/_index.yml
- type: Webhooks
  url: asyncapi/antfly-webhooks.yml
- type: DataModel
  url: data-model/antfly-data-model.yml
- type: ChangeLog
  url: changelog/antfly-changelog.yml
- type: Idempotency
  url: conventions/antfly-conventions.yml
- type: Conventions
  url: conventions/antfly-conventions.yml
- type: ErrorCatalog
  url: errors/antfly-problem-types.yml
- type: Conformance
  url: conformance/antfly-conformance.yml
- type: Hosts
  url: hosts/antfly-hosts.yml
- type: Vendors
  url: vendors/antfly-vendors.yml
- type: SDKs
  url: packages/antfly-packages.yml
- type: Packages
  url: packages/antfly-packages.yml
- type: Leadership
  url: https://antfly.io/team
- type: ChangeLog
  url: https://antfly.io/releases
- type: Authentication
  url: authentication/antfly-authentication.yml
- type: DomainSecurity
  url: security/antfly-domain-security.yml
- type: Website
  url: https://www.antfly.io
- type: Documentation
  url: https://antfly.io/docs
- type: APIReference
  url: https://antfly.io/docs/api
- type: GettingStarted
  url: https://antfly.io/docs/guides/quickstart
- type: Blog
  url: https://antfly.io/thoughts
- type: GitHubOrganization
  url: https://github.com/antflydb/antfly
- type: Pricing
  url: https://antfly.io/pricing
- type: TermsOfService
  url: https://antfly.io/terms
- type: PrivacyPolicy
  url: https://antfly.io/privacy
apis:
- aid: antfly:antfly-ai-api
  name: Antfly AI API
  description: The Ai API from Antfly — 24 operation(s) for ai.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Ai
  properties:
  - type: OpenAPI
    url: openapi/antfly-ai-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-cluster-management-api
  name: Antfly Cluster Management API
  description: 'Monitor and manage your Antfly cluster''s health and status.


    ## Cluster Health


    The cluster health endpoint provides real-time status of all stores and shards:

    - **healthy**: All nodes and shards operational

    - **degraded**: Some shards unavailable but cluster functional

    - **unhealthy**: Critical failures affecting availability

    - **error**: Cluster-wide failures


    ## Monitoring


    - Health check endpoint: `GET /healthz`

    - Prometheus metrics: `GET /metrics` on port 4200


    Use these endpoints to integrate with monitoring systems and alerting infrastructure.'
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - cluster_management
  properties:
  - type: OpenAPI
    url: openapi/antfly-cluster-management-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-data-operations-api
  name: Antfly Data Operations API
  description: "Perform data operations including batch inserts/deletes, linear merge sync,\nbackup/restore, and individual\
    \ key lookups.\n\n## Batch Operations\n\nEfficiently insert or delete multiple documents in a single request. The batch\n\
    endpoint accepts both inserts (map of key-value pairs) and deletes (array of keys).\n\n## Distributed Transactions\n\n\
    Antfly provides atomic cross-shard write transactions using a coordinator-based\n2-phase commit (2PC) protocol. When a\
    \ batch operation spans multiple shards, Antfly\nautomatically executes it as a distributed transaction.\n\n**How it works:**\n\
    1. Metadata server allocates HLC timestamp and selects coordinator shard\n2. Coordinator writes transaction record, participants\
    \ write intents\n3. After all intents succeed, coordinator commits transaction\n4. Participants are notified asynchronously\
    \ to resolve intents\n5. Recovery loop ensures notifications complete even after coordinator failure\n\n**Features:**\n\
    - **Automatic**: No special API required - just use the batch endpoint\n- **Atomic**: All writes across all shards commit\
    \ or abort together\n- **Recoverable**: Coordinator failures are handled via recovery loops\n- **Efficient**: ~20ms latency\
    \ for cross-shard transactions\n\n**Performance:**\n- Single-shard batches: < 5ms latency\n- Cross-shard transactions:\
    \ ~20ms latency\n- Intent resolution: < 30 seconds worst-case (via recovery loop)\n\n**Guarantees:**\n- All writes succeed\
    \ or all fail (atomicity)\n- Coordinator failure is recoverable (new leader resumes notifications)\n- Idempotent resolution\
    \ (duplicate notifications are safe)\n\n**Use Cases:**\n- Updating related records across shards (e.g., user profile +\
    \ preferences)\n- Multi-table inserts that must succeed together\n- Bulk imports requiring all-or-nothing semantics\n\n\
    ## Linear Merge (Data Sync)\n\nSynchronize and keep Antfly in sync with external data sources like Shopify,\nPostgres,\
    \ S3, or any sorted record source. Also known as: data synchronization,\ndatabase sync, incremental sync, e-commerce sync.\n\
    \nBoth source and Antfly must be sorted by the same key. Performs three-way merge:\ninserts new records, updates changed\
    \ records, deletes records absent from source.\n\n**How it works:**\n1. Query external source with pagination (sorted\
    \ by key)\n2. Send sorted page to linear merge endpoint\n3. Antfly merges: upserts present records, deletes Antfly records\
    \ absent from page\n4. Repeat for next page - no sync state required between pages\n\n**Use Cases:**\n\n- **Postgres/MySQL**:\
    \ `SELECT * FROM products ORDER BY id LIMIT 1000 OFFSET 0`\n  - Sync production DB to Antfly for hybrid search\n  - Run\
    \ periodically (hourly/daily) to stay in sync\n\n- **Shopify API**: `GET /admin/api/2024-01/products.json?order=id&limit=250`\n\
    \  - Sync e-commerce catalog with cursor pagination\n  - Antfly becomes searchable product index\n\n- **S3 Data Lake**:\
    \ Sorted JSON files (`data/0001.json`, `data/0002.json`, ...)\n  - Batch import from data warehouse exports\n  - Process\
    \ files in order, send contents page by page\n\n- **Databricks**: `SELECT * FROM delta_table ORDER BY key LIMIT 10000`\n\
    \  - Sync data warehouse tables to Antfly\n  - Enable low-latency search over warehouse data\n\n**Benefits:**\n- **Stateless**:\
    \ No cursors or checkpoints - restart from any page\n- **Idempotent**: Safe to re-run if interrupted\n- **Efficient**:\
    \ Stream comparison, no random access needed\n\n**WARNING**: Not safe for concurrent merges with overlapping ranges.\n\
    Single-client sync API only.\n\n## Backup and Restore\n\nCreate backups to various storage backends:\n- `file:///path/to/backup`\
    \ - Local filesystem\n- `s3://bucket/path` - Amazon S3\n\nRestore operations rebuild tables from backup snapshots.\n\n\
    ## Key Lookups\n\nDirect key-value lookups for retrieving individual documents by their unique key."
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - data_operations
  properties:
  - type: OpenAPI
    url: openapi/antfly-data-operations-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-documents-api
  name: Antfly Documents API
  description: The Documents API from Antfly — 12 operation(s) for documents.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Documents
  properties:
  - type: OpenAPI
    url: openapi/antfly-documents-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-index-management-api
  name: Antfly Index Management API
  description: "Create and manage indexes for full-text search, vector similarity search, and multimodal content.\n\n## Index\
    \ Types\n\nAntfly supports two primary index types:\n\n### `full_text` - Full-Text Search Index\nBM25-based full-text\
    \ search using Antfly's native Zig full-text index (a segmented, Lucene-style inverted index). Automatically uses schema\
    \ information for field mappings.\n\n**Configuration**:\n```json\n{\n  \"type\": \"full_text\",\n  \"name\": \"search_idx\"\
    ,\n  \"mem_only\": false\n}\n```\n\n**Options**:\n- `mem_only` (optional): If true, stores index in memory only (useful\
    \ for testing)\n\n**Features**:\n- BM25 ranking algorithm\n- Field-specific queries (`title:computer`)\n- Boolean operators\
    \ (`AND`, `OR`, `NOT`)\n- Range queries (`year:>2020`)\n- Phrase queries (`\"exact phrase\"`)\n- Uses schema's `x-antfly-types`\
    \ for field analyzers\n- Respects `x-antfly-include-in-all` for cross-field search\n\n### `embeddings` - Vector Similarity\
    \ Index\nApproximate k-nearest neighbors (AKNN) index for semantic similarity search using vector embeddings.\n\n**Performance\
    \ Features**:\n- Hardware-accelerated distance calculations using SIMD instructions\n- x86/AMD: AVX2 and AVX-512 optimizations\
    \ for vector operations\n- ARM: NEON and SME (Scalable Matrix Extension) acceleration\n- RaBitQ quantization for reduced\
    \ memory footprint and faster search\n- No GPU required - optimized for CPU-based deployments\n\n**Basic Configuration**:\n\
    ```json\n{\n  \"type\": \"embeddings\",\n  \"name\": \"embedding_idx\",\n  \"field\": \"description\",\n  \"embedder\"\
    : {\n    \"provider\": \"ollama\",\n    \"model\": \"all-minilm\",\n    \"url\": \"http://localhost:11434\"\n  }\n}\n\
    ```\n\n**Index Modes**:\n\n**Managed indexes** (`external: false`, default)\n- Antfly owns embedding generation\n- Must\
    \ specify `field` or `template`\n- Must specify `embedder`\n- Reject manual `_embeddings` writes for that index\n\n**External\
    \ indexes** (`external: true`)\n- Your application owns embedding generation\n- Must not specify `field`, `template`,\
    \ or `embedder`\n- Dense external indexes must specify `dimension`\n- Vectors are written directly through the document\
    \ `_embeddings` field\n\n**Managed Index Fields**:\n- `field`: Field to embed using JSONPath syntax (e.g., `\"description\"\
    `, `\"metadata.content\"`, `\"$.user.bio\"`)\n- `template`: Handlebars template for custom prompt generation\n- `embedder`:\
    \ Embedder configuration for generating vectors\n- `dimension`: Optional for dense indexes; inferred from the embedder\
    \ if omitted\n- `mem_only`: Store index in memory only\n\n**External Index Fields**:\n- `external: true`\n- `dimension`:\
    \ Required for dense indexes\n- `sparse: true`: Use sparse vectors supplied through `_embeddings`\n\n**External Dense\
    \ Example**:\n```json\n{\n  \"type\": \"embeddings\",\n  \"name\": \"manual_dense_idx\",\n  \"external\": true,\n  \"\
    dimension\": 384\n}\n```\n\n**External Sparse Example**:\n```json\n{\n  \"type\": \"embeddings\",\n  \"name\": \"manual_sparse_idx\"\
    ,\n  \"external\": true,\n  \"sparse\": true\n}\n```\n\n**Writing Manual Embeddings**:\n- Manual `_embeddings` writes\
    \ are only accepted for `external: true` indexes\n- Dense vectors use arrays: `\"_embeddings\": { \"manual_dense_idx\"\
    : [0.1, 0.2, 0.3] }`\n- Sparse vectors use token-weight maps: `\"_embeddings\": { \"manual_sparse_idx\": { \"7\": 1.5,\
    \ \"42\": 2.0 } }`\n- Explicit delete uses `null`: `\"_embeddings\": { \"manual_dense_idx\": null }`\n- Omitting `_embeddings[<index>]`\
    \ is a no-op; it does not delete the stored vector\n\n## Embedder Providers\n\nManaged index creation supports `antfly`,\
    \ `ollama`, `openai`, and `bedrock`\nthrough the purpose-specific `IndexEmbedderConfig`. Other providers in the\nbroader\
    \ `EmbedderConfig` are available only on surfaces whose runtime can\nexecute them.\n\n### Antfly Inference\n```json\n\
    {\n  \"provider\": \"antfly\",\n  \"model\": \"BAAI/bge-small-en-v1.5\"\n}\n```\n\n### Ollama (Local Models)\n```json\n\
    {\n  \"provider\": \"ollama\",\n  \"model\": \"all-minilm\",\n  \"url\": \"http://localhost:11434\"\n}\n```\nPopular models:\
    \ `all-minilm`, `nomic-embed-text`, `mxbai-embed-large`\n\n### OpenAI\n```json\n{\n  \"provider\": \"openai\",\n  \"model\"\
    : \"text-embedding-3-small\",\n  \"api_key\": \"sk-...\"\n}\n```\nModels: `text-embedding-3-small` (1536d), `text-embedding-3-large`\
    \ (3072d), `text-embedding-ada-002` (1536d)\n\n### AWS Bedrock\n```json\n{\n  \"provider\": \"bedrock\",\n  \"model\"\
    : \"amazon.titan-embed-text-v1\",\n  \"region\": \"us-east-1\"\n}\n```\nModels: `amazon.titan-embed-text-v1`, `amazon.titan-embed-text-v2`,\
    \ `cohere.embed-english-v3`, `cohere.embed-multilingual-v3`\n\n## Multimodal Indexing\n\n`EmbeddingsIndexConfig` does\
    \ not accept a `summarizer`. For two-stage\nmultimodal indexing, generate a textual description into a document field\n\
    before indexing and configure the managed index against that field. If the\napplication already owns the final vectors,\
    \ use an `external: true` index\nand write them through `_embeddings`.\n\n## Template-Based Prompts\n\nCustomize how documents\
    \ are converted to text before embedding using Handlebars templates:\n\n```json\n{\n  \"type\": \"embeddings\",\n  \"\
    dimension\": 384,\n  \"field\": \"description\",\n  \"template\": \"Product: {{title}}\\nCategory: {{category}}\\nDescription:\
    \ {{description}}\",\n  \"embedder\": {\n    \"provider\": \"ollama\",\n    \"model\": \"all-minilm\"\n  }\n}\n```\n\n\
    **Template System:**\n- **Syntax**: Handlebars templating (https://handlebarsjs.com/guide/)\n- **Caching**: Templates\
    \ are automatically cached with configurable TTL (default: 5 minutes)\n- **Context**: Templates receive the full document\
    \ as context\n\n**Basic Syntax:**\n- `{{fieldName}}`: Insert field value\n- `{{#if field}}...{{/if}}`: Conditional logic\n\
    - `{{#each array}}...{{/each}}`: Iterate arrays\n- `{{#unless condition}}...{{/unless}}`: Inverse conditional\n- `{{@index}}`,\
    \ `{{@key}}`, `{{@first}}`, `{{@last}}`: Loop variables\n\n**Built-in Helpers:**\n\n1. **scrubHtml** - Remove script/style\
    \ tags and extract clean text from HTML\n   ```handlebars\n   {{scrubHtml html_content}}\n   ```\n   - Removes `<script>`\
    \ and `<style>` tags\n   - Adds newlines after block elements (p, div, h1-h6, li, etc.)\n   - Returns plain text with\
    \ preserved readability\n\n2. **eq** - Equality comparison for conditionals\n   ```handlebars\n   {{#if (eq status \"\
    active\")}}Active{{/if}}\n   {{#if (eq @key \"special\")}}Special field{{/if}}\n   ```\n\n3. **media** - GenKit dotprompt\
    \ media directive for multimodal content\n   ```handlebars\n   {{media url=imageDataURI}}\n   {{media url=this.image_url}}\n\
    \   {{media url=\"https://example.com/image.jpg\"}}\n   {{media url=\"s3://endpoint/bucket/image.png\"}}\n   {{media url=\"\
    file:///path/to/image.jpg\"}}\n   ```\n\n   **Supported URL Schemes:**\n   - `data:` - Base64 encoded data URIs (e.g.,\
    \ `data:image/jpeg;base64,...`)\n   - `http://` / `https://` - Web URLs with automatic content type detection\n   - `file://`\
    \ - Local filesystem paths\n   - `s3://` - S3-compatible storage (format: `s3://endpoint/bucket/key`)\n\n   **Automatic\
    \ Content Processing:**\n   - **Images**: Downloaded, resized (if needed), converted to data URIs\n   - **PDFs**: Text\
    \ extracted or first page rendered as image\n   - **HTML**: Readable text extracted using Mozilla Readability\n\n   **Security\
    \ Controls:**\n   Downloads are protected by content security settings:\n   - Allowed host whitelist\n   - Private IP\
    \ blocking (prevents SSRF attacks)\n   - Download size limits (default: 100MB)\n   - HTTP downloads time out after 30\
    \ seconds by default; zero disables the deadline\n   - Image dimension limits (default: 2048px, auto-resized)\n\n   See:\
    \ https://antfly.io/docs/configuration#security--cors\n\n4. **encodeToon** is not available in these templates. It is\
    \ a helper of the\n   retrieval agent's `document_renderer`, which renders documents into the\n   generation prompt as\
    \ TOON by default.\n\nWithout a template, the `field` value is used directly, or the entire document is serialized.\n\n\
    ## Field Extraction with JSONPath\n\nThe `field` parameter supports JSONPath syntax for extracting values from nested\
    \ document structures:\n\n```json\n{\n  \"type\": \"embeddings\",\n  \"field\": \"metadata.description\",\n  \"embedder\"\
    : {\"provider\": \"ollama\", \"model\": \"all-minilm\"}\n}\n```\n\n**JSONPath Examples**:\n- `\"title\"` - Top-level field\n\
    - `\"user.bio\"` - Nested field (auto-prepends `$.` if not present)\n- `\"$.metadata.content\"` - Explicit JSONPath\n\
    - `\"$.items[0].name\"` - Array indexing\n\nThe extracted value must be a string. Use `template` for complex transformations\
    \ or combining multiple fields.\n\n## Configuration Examples\n\n### Simple Text Embedding\n```json\n{\n  \"type\": \"\
    embeddings\",\n  \"field\": \"content\",\n  \"embedder\": {\n    \"provider\": \"ollama\",\n    \"model\": \"all-minilm\"\
    \n  }\n}\n```\nNote: `dimension` is omitted and will be inferred from the `all-minilm` model (384).\n\n### Text Embedding\
    \ with Custom Template\n```json\n{\n  \"type\": \"embeddings\",\n  \"dimension\": 1536,\n  \"template\": \"{{title}}:\
    \ {{description}}\",\n  \"embedder\": {\n    \"provider\": \"openai\",\n    \"model\": \"text-embedding-3-small\"\n  }\n\
    }\n```\n\n### Production OpenAI Setup\n```json\n{\n  \"type\": \"embeddings\",\n  \"dimension\": 1536,\n  \"field\": \"\
    body\",\n  \"embedder\": {\n    \"provider\": \"openai\",\n    \"model\": \"text-embedding-3-small\",\n    \"api_key\"\
    : \"${OPENAI_API_KEY}\"\n  }\n}\n```\n\n## Best Practices\n\n- **Choose dimension wisely**: Higher dimensions improve\
    \ accuracy but increase storage/compute costs\n- **Use templates for structured data**: Combine multiple fields into meaningful\
    \ prompts\n- **Local vs Cloud**: Ollama for development/privacy, cloud providers for production/scale\n- **Field specification**:\
    \ Specify `field` when embedding a single field to avoid whole-document serialization\n\n## Implementing Autocomplete\
    \ Search\n\nTo implement autocomplete/search-as-you-type functionality:\n\n**1. Define schema with search_as_you_type\
    \ type:**\n```json\n{\n  \"document_schemas\": {\n    \"product\": {\n      \"schema\": {\n        \"type\": \"object\"\
    ,\n        \"properties\": {\n          \"name\": {\n            \"type\": \"string\",\n            \"x-antfly-types\"\
    : [\"text\", \"search_as_you_type\"]\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n**2. Create full-text index:**\n\
    ```json\n{\n  \"indexes\": {\n    \"search_idx\": {\n      \"type\": \"full_text\"\n    }\n  }\n}\n```\n\n**3. Query with\
    \ bool-prefix multi-match:**\n```json\n{\n  \"full_text_search\": {\n    \"multi_match\": {\n      \"query\": \"lap\"\
    ,\n      \"type\": \"bool_prefix\",\n      \"fields\": [\"name\"]\n    }\n  }\n}\n```\n\nThe `search_as_you_type` type\
    \ creates shingle and prefix subfields that match partial input\nas users type. For example, \"lap\" matches \"laptop\"\
    , \"lapel\", etc.\n\n## Reindexing Data\n\nWhat happens when you need to reindex? Antfly handles reindexing through async\
    \ enrichment,\nautomatically rebuilding indexes in the background. Here's what to expect when reindexing\ndata (after\
    \ adding a new index or changing configuration):\n\n### Adding a New Index to Existing Table\n\nAntfly handles reindexing\
    \ automatically through async enrichment:\n\n**1. Add the index:**\n```bash\nPOST /tables/{tableName}/indexes/{indexName}\n\
    {\n  \"type\": \"embeddings\",\n  \"embedder\": {...}\n}\n```\n\n**2. Enrichment happens automatically:**\n- Existing\
    \ documents are enriched in the background\n- New writes are enriched immediately\n- Leader-only processing prevents duplicate\
    \ work\n- Check index status to monitor progress\n\n**3. Monitor progress:**\n```bash\nGET /tables/{tableName}/indexes/{indexName}\n\
    ```\n\nLook at `shard_status` for enrichment progress per shard.\n\n### Error Handling for Async Enrichment\n\nWhen embedding\
    \ generation or enrichment fails, Antfly handles errors gracefully:\n\n**Retry Behavior:**\n- Failed enrichments are automatically\
    \ retried with exponential backoff\n- Leader-only processing ensures no duplicate work during retries\n- Enrichment continues\
    \ for other documents even if some fail\n\n**Monitoring Failures:**\n- Check index status (`GET /tables/{table}/indexes/{index}`)\
    \ for error counts\n- Prometheus metrics expose enrichment failure rates\n- Failed documents remain searchable via full-text\
    \ index (if configured)\n\n**Common Failure Scenarios:**\n\n1. **Embedding API Unavailable**\n   - Enrichment retries\
    \ automatically when service recovers\n   - Documents remain indexed (without embeddings) for full-text search\n   - Use\
    \ `sync_level: enrichments` to precompute enrichments before committing.\n     A synchronous producer failure rejects\
    \ the write. Failures detected after a\n     document has committed retain it and may report `committed_repair_required`\
    \ so\n     operators can repair the derived state.\n\n2. **Rate Limiting**\n   - Automatic backoff and retry\n   - Consider\
    \ using local Ollama to avoid rate limits\n   - Or increase API quota with embedding provider\n\n3. **Model Errors (invalid\
    \ input, size limits)**\n   - Logged with document ID for investigation\n   - Retries stop after max attempts\n   - Document\
    \ remains in table without enrichment\n\n### Changing Index Configuration\n\nTo change index configuration:\n1. Drop the\
    \ existing index: `DELETE /tables/{table}/indexes/{index}`\n2. Recreate with new config: `POST /tables/{table}/indexes/{index}`\n\
    3. Existing data is automatically re-enriched\n\n**Note:** Full-text indexes (`full_text`) reindex immediately on creation\
    \ and automatically\nrebuild when schema changes are made. Vector indexes (`embeddings`) enrich asynchronously in the\
    \ background.\n\n### Backup Before Major Reindexing\n\nFor large datasets, backup before reindexing:\n```bash\nPOST /tables/{tableName}/backup\n\
    {\n  \"backup_id\": \"before-reindex-2025-01\",\n  \"location\": \"s3://mybucket/backups/products\"\n}\n```\n\n## Graph\
    \ Indexes and Edge TTL\n\nGraph indexes (`graph`) enable relationship modeling and traversal queries.\nEdge TTL is under\
    \ development. The stateful runtime currently stamps edge\nartifacts and selects live projected contributors for adjacency\
    \ reads, but\nauthoritative cleanup, metric invalidation, and\nserverless visibility are not complete. Do not rely on\
    \ graph TTL in\nproduction until those pieces are implemented.\n\n### Graph Index Overview\n\nGraph indexes store directed\
    \ edges between documents, enabling queries like:\n- Finding all connections from a document\n- Traversing multi-hop paths\n\
    - Filtering relationships by type\n\n**Basic graph index:**\n```json\n{\n  \"type\": \"graph\",\n  \"name\": \"social_graph\"\
    \n}\n```\n\n### Edge TTL Configuration\n\nGraph indexes accept an index-level `ttl.duration` policy. The legacy\n`ttl_duration`\
    \ field is an alias; do not specify both.\n\n```json\n{\n  \"type\": \"graph\",\n  \"name\": \"recent_interactions\",\n\
    \  \"ttl\": {\"duration\": \"7d\"}\n}\n```\n\nThe duration uses the same format as document TTL, such as `30s`, `5m`,\n\
    `24h`, or `7d`. Each source contribution receives a server-assigned\ncreation timestamp. Stateful graph reads filter expired\
    \ contributions\nand select the highest-priority live source when sources overlap.\n\nGraph TTL is currently incomplete.\
    \ There is no authoritative edge\ncleanup worker, published graph metric invalidation at a deadline, or\nserverless segment\
    \ expiration filter. See `zig/GRAPH.md` for the design\nand current implementation status."
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - index_management
  properties:
  - type: OpenAPI
    url: openapi/antfly-index-management-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-inference-api
  name: Antfly Inference API
  description: The Inference API from Antfly — 1 operation(s) for inference.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Inference
  properties:
  - type: OpenAPI
    url: openapi/antfly-inference-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-installed-api
  name: Antfly Installed API
  description: PostgreSQL-style installed extension lifecycle.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Installed
  properties:
  - type: OpenAPI
    url: openapi/antfly-installed-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-memory-api
  name: Antfly Memory API
  description: Evidence-backed temporal agent memory
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - memory
  properties:
  - type: OpenAPI
    url: openapi/antfly-memory-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-ml-api
  name: Antfly Ml API
  description: The Ml API from Antfly — 3 operation(s) for ml.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Ml
  properties:
  - type: OpenAPI
    url: openapi/antfly-ml-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-models-api
  name: Antfly Models API
  description: The Models API from Antfly — 2 operation(s) for models.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Models
  properties:
  - type: OpenAPI
    url: openapi/antfly-models-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-packages-api
  name: Antfly Packages API
  description: Signed installable artifacts known to Antfly.
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Packages
  properties:
  - type: OpenAPI
    url: openapi/antfly-packages-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-inspection-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-page-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-record-schema.json
  - type: JSONSchema
    url: json-schema/antfly-memory-relationship-proposal-schema.json
  - type: JSONSchema
    url: json-schema/antfly-inference-generate-request-schema.json
- aid: antfly:antfly-permission-api
  name: Antfly Permission API
  description: Operations related to permissions
  humanURL: https://antfly.io/docs/api
  baseURL: https://api.antfly.io
  tags:
  - Permission
  properties:
  - type: OpenAPI
    url: openapi/antfly-permission-api-openapi.yml
  - type: JSONSchema
    url: json-schema/antfly-memory-recall-result-schema.json


# --- truncated at 32 KB (58 KB total) ---
# Full source: https://artifacts.apis.io/antfly/apis.yml

Antfly API — frequently asked questions

Does Antfly have an API?

Yes. APIs.io lists 20 APIs from Antfly, including Antfly AI API, Antfly Cluster Management API and Antfly Data Operations API, and 17 more.

Is there an OpenAPI specification for the Antfly API?

Yes. APIs.io indexes 20 OpenAPI specifications for Antfly, each linked for download from this page.

How do I authenticate with the Antfly API?

Antfly uses bearer-token authentication (apiKey/http · 3 schemes). The details are profiled on APIs.io as Antfly Authentication.

How much does the Antfly API cost?

APIs.io lists 3 pricing plans for Antfly, with each plan's price, limits and inclusions under Pricing Plans on this page.

Is the Antfly API ready for AI agents?

Antfly has a Kin Score of 50.7 out of 100 (developing) and an Agent Readiness score of 44.6 (agent-native), scored by API Evangelist on 2026-10-31.

Work with this as data

Every provider 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 providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • 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 provider
curl "https://apis.io/api/v1/providers/antfly"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/antfly/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/antfly/evidence"

Discovery needs no key. Ratings and market analysis are Pro.

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.