canonical: https://jentic.com/apis/agentset.ai/agentset

# Agentset API

Jentic publishes the only available OpenAPI specification for Agentset API, keeping it validated and agent-ready. Agentset is an agentic RAG-as-a-service platform that exposes namespace, document, ingest job, and search endpoints behind 11 routes. Agents create a namespace, ingest source documents, then run semantic search with optional filtering and reranking. The API removes the need to operate a vector database, embeddings pipeline, or reranker on your own infrastructure.

## For AI agents

Build retrieval-augmented generation pipelines: create namespaces, ingest documents, and run semantic search with reranking - without managing a vector store.

## Scope

Does not handle direct LLM completions, conversational state, document OCR, or web crawling - use for namespace, document ingestion, and semantic search only.

## Capabilities

- Provision an isolated namespace per knowledge base or per tenant via POST /v1/namespace
- Submit ingest jobs that chunk, embed, and index source documents into a namespace via POST /v1/namespace/{namespaceId}/ingest
- Run semantic search with metadata filters and built-in reranking via POST /v1/namespace/{namespaceId}/search
- List or delete documents within a namespace to keep retrieval results fresh
- Track ingest job status to know when newly added documents are searchable

## Use cases

### Customer Support Knowledge Base

Create a namespace per product line, ingest help articles and PDF manuals, then query the namespace from a support chatbot to retrieve grounding chunks. Agentset handles chunking, embeddings, and reranking - the agent only needs to call /v1/namespace/{id}/search with the user query. Suited to teams that want RAG without operating a vector database.

Example prompt: Create a namespace 'support-v1', ingest 200 help articles, then search with query='how do I reset my password' and top_k=5

### Internal Document Search for Agents

Index company policies, runbooks, and meeting notes in dedicated namespaces so a Jentic agent can pull grounded answers during longer plans. The agent calls /v1/namespace/{id}/search and feeds the returned chunks into its prompt before responding. This replaces hand-built retrieval pipelines on top of Pinecone or Weaviate.

Example prompt: Search the 'eng-runbooks' namespace for chunks about 'database failover' and feed the top 3 into the model context

### Per-Tenant RAG in a SaaS Product

Map each end customer to its own Agentset namespace so a multi-tenant SaaS app can offer search and Q&A over the customer's uploaded documents. The agent provisions a namespace on signup, ingests files as the customer uploads them, and scopes searches by namespace id. This is a faster path than running per-tenant vector indexes in-house.

Example prompt: On user signup, POST /v1/namespace with name=user_id; on each upload, POST an ingest job; on each query, search the user's namespace

### Agent Memory and Tool Result Indexing

Use a Jentic-connected agent to write its own intermediate findings and tool results into Agentset, then search that namespace later in long-running plans to recover earlier context. The agent treats Agentset as an external memory store with semantic recall, removing the need to keep all prior steps in the model's context window.

Example prompt: After each tool call, ingest the result as a new document in the 'agent-memory' namespace; before the next step, search the namespace for related prior results

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v1/namespace | Create a namespace |
| POST | /v1/namespace/{namespaceId}/ingest | Submit an ingest job |
| POST | /v1/namespace/{namespaceId}/search | Run semantic search inside a namespace |
| GET | /v1/namespace/{namespaceId}/document | List indexed documents |
| DELETE | /v1/namespace/{namespaceId}/document/{documentId} | Remove a document from the index |

## Key resources

- **Namespaces** — Isolated containers for documents and embeddings; one per knowledge base or tenant
- **Documents** — Source files that have been chunked, embedded, and indexed inside a namespace
- **Ingest Jobs** — Asynchronous pipelines that chunk and embed newly submitted documents
- **Search** — Semantic search over a namespace with optional metadata filtering and reranking

## Why Jentic

- **Setup:** Wiring the Agentset API by hand means managing its bearer auth and coding calls across namespace creation, document ingestion, and semantic search. Through Jentic you install once, import the Agentset API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Agentset puts the namespace id in the URL path (/v1/namespace/{namespaceId}/...), so a rule can pin the agent to one namespace. You choose which operations it may call, such as ingesting documents or searching, so document deletion is not included unless you add it.
- **Credential handling:** Your Agentset bearer token is stored once, encrypted, by your own Jentic One instance and injected as the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search a knowledge base' or 'ingest documents', and Jentic returns the matching Agentset operation with its input schema, including the namespace path parameter, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Pinecone API** — Managed vector database; you bring the embeddings model and chunking
- **OpenAI API** — Language models that consume the chunks Agentset returns
- **Cohere API** — Embeddings, rerank, and generation models for custom RAG stacks

## FAQ

### Why is there no official OpenAPI spec for Agentset API?

Agentset does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Agentset API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Agentset API use?

Agentset uses HTTP bearer token authentication - pass your token in the Authorization header as 'Bearer <token>'. Through Jentic the token is stored in the credential vault and injected at execution time, so the raw value never enters the agent's context.

### Can I run RAG without operating my own vector database with the Agentset API?

Yes. Agentset handles chunking, embeddings, vector storage, and reranking. The agent only calls POST /v1/namespace to create a knowledge base, POST /v1/namespace/{id}/ingest to add documents, and POST /v1/namespace/{id}/search to retrieve relevant chunks.

### What are the rate limits for the Agentset API?

Limits depend on the Agentset plan and apply to ingest job throughput and search QPS rather than a single fixed cap. Watch for 429 responses and retry with exponential backoff; long ingest jobs are processed asynchronously and tracked via /v1/namespace/{id}/ingest.

### How do I run a semantic search through Jentic?

Use the Jentic search 'search a knowledge base'. Jentic returns POST /v1/namespace/{namespaceId}/search; load its schema, supply the namespace id and your query string, and execute. The response contains ranked chunks with source document references.

### Does Agentset support metadata filtering on search?

Yes. The /v1/namespace/{id}/search endpoint accepts filter and rerank options in the request body so the agent can constrain results by document type, source, or other metadata attached at ingest time.

### Can I limit what my agent is allowed to do with the Agentset API?

Yes. Because you run Jentic One yourself, your own rules decide which Agentset operations and credentials the agent may use. Agentset puts the namespace id in the URL path (/v1/namespace/{namespaceId}/...), so you can pin the agent to a single namespace and still control which calls it makes. For example, you can allow searching (POST /v1/namespace/{namespaceId}/search) and ingesting documents while leaving document deletion (DELETE /v1/namespace/{namespaceId}/document/{documentId}) off the allowed list.
