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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/kurrent-projections-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
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.
OpenAPI Specification
openapi: 3.2.0
info:
title: KurrentDB HTTP Projections API
version: v26.1
summary: AtomPub-over-HTTP interface to KurrentDB streams, subscriptions, projections, users and node administration.
description: KurrentDB (formerly EventStoreDB) exposes a native AtomPub-over-HTTP interface alongside its primary gRPC protocol.
contact:
name: Kurrent
url: https://www.kurrent.io/
license:
name: Kurrent License
url: https://www.kurrent.io/terms-of-use
x-apievangelist-provenance:
generated: '2026-07-19'
method: generated
source: https://docs.kurrent.io/server/v26.1/http-api/api.html
note: Faithful transcription of the provider's published HTTP API reference table. Operation summaries mirror the reference; request/response schemas are intentionally left open where the provider does not publish them.
servers:
- url: https://{host}:{port}
description: Your KurrentDB node or Kurrent Cloud cluster
variables:
host:
default: localhost
description: Hostname of the KurrentDB node (the same host you use for the admin UI)
port:
default: '2113'
description: KurrentDB HTTP port
security:
- basicAuth: []
tags:
- name: Projections
description: Create, manage and query projections
paths:
/projections/any:
get:
tags:
- Projections
operationId: listAllProjections
summary: List all projections
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
/projections/all-non-transient:
get:
tags:
- Projections
operationId: listNonTransientProjections
summary: List all non-transient projections
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
/projections/transient:
get:
tags:
- Projections
operationId: listTransientProjections
summary: List all transient projections
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Projections
operationId: createTransientProjection
summary: Create a transient projection
parameters:
- $ref: '#/components/parameters/ProjectionName'
requestBody:
$ref: '#/components/requestBodies/ProjectionQuery'
responses:
'201':
$ref: '#/components/responses/Created'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/projections/onetime:
get:
tags:
- Projections
operationId: listOneTimeProjections
summary: List all one-time projections (queries)
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Projections
operationId: createOneTimeProjection
summary: Create a one-time projection
requestBody:
$ref: '#/components/requestBodies/ProjectionQuery'
responses:
'201':
$ref: '#/components/responses/Created'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/projections/continuous:
get:
tags:
- Projections
operationId: listContinuousProjections
summary: List all continuous projections
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Projections
operationId: createContinuousProjection
summary: Create a continuous projection
parameters:
- $ref: '#/components/parameters/ProjectionName'
- name: emit
in: query
description: Whether the projection is allowed to emit events
schema:
type: boolean
requestBody:
$ref: '#/components/requestBodies/ProjectionQuery'
responses:
'201':
$ref: '#/components/responses/Created'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/projections/read-events:
post:
tags:
- Projections
operationId: readProjectionEvents
summary: Query the events of a projection
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
$ref: '#/components/responses/JsonOk'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/projection/{name}:
parameters:
- $ref: '#/components/parameters/Name'
get:
tags:
- Projections
operationId: getProjection
summary: Get the details of a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
tags:
- Projections
operationId: deleteProjection
summary: Delete a projection
responses:
'204':
description: No Content — the projection was deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/query:
parameters:
- $ref: '#/components/parameters/Name'
get:
tags:
- Projections
operationId: getProjectionQuery
summary: Get the definition of a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Projections
operationId: updateProjectionQuery
summary: Update the definition of a projection
requestBody:
$ref: '#/components/requestBodies/ProjectionQuery'
responses:
'200':
$ref: '#/components/responses/JsonOk'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/projection/{name}/state:
parameters:
- $ref: '#/components/parameters/Name'
get:
tags:
- Projections
operationId: getProjectionState
summary: Get the state of a projection
parameters:
- $ref: '#/components/parameters/Partition'
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/result:
parameters:
- $ref: '#/components/parameters/Name'
get:
tags:
- Projections
operationId: getProjectionResult
summary: Get the result of a projection
parameters:
- $ref: '#/components/parameters/Partition'
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/statistics:
parameters:
- $ref: '#/components/parameters/Name'
get:
tags:
- Projections
operationId: getProjectionStatistics
summary: Get the statistics of a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/config:
parameters:
- $ref: '#/components/parameters/Name'
get:
tags:
- Projections
operationId: getProjectionConfig
summary: Get the configuration of a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
tags:
- Projections
operationId: updateProjectionConfig
summary: Update the configuration of a projection
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectionConfig'
responses:
'200':
$ref: '#/components/responses/JsonOk'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/projection/{name}/command/enable:
parameters:
- $ref: '#/components/parameters/Name'
post:
tags:
- Projections
operationId: enableProjection
summary: Enable a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/command/disable:
parameters:
- $ref: '#/components/parameters/Name'
post:
tags:
- Projections
operationId: disableProjection
summary: Disable a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/command/reset:
parameters:
- $ref: '#/components/parameters/Name'
post:
tags:
- Projections
operationId: resetProjection
summary: Reset a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/projection/{name}/command/abort:
parameters:
- $ref: '#/components/parameters/Name'
post:
tags:
- Projections
operationId: abortProjection
summary: Abort a projection
responses:
'200':
$ref: '#/components/responses/JsonOk'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
BadRequest:
description: Bad Request — the request was malformed or violated an expected version
content:
text/plain:
schema:
type: string
Unauthorized:
description: Unauthorized — credentials were missing, invalid, or lacked ACL permission
content:
text/plain:
schema:
type: string
JsonOk:
description: OK
content:
application/json:
schema:
type: object
NotFound:
description: Not Found — the stream, event, projection, subscription or user does not exist
content:
text/plain:
schema:
type: string
Created:
description: Created
headers:
Location:
description: URI of the created resource
schema:
type: string
parameters:
ProjectionName:
name: name
in: query
description: Name to give the projection
schema:
type: string
Partition:
name: partition
in: query
description: Partition of a partitioned projection to read
schema:
type: string
Name:
name: name
in: path
required: true
description: Name of the projection
schema:
type: string
schemas:
ProjectionConfig:
type: object
description: Runtime configuration of a projection
properties:
emitEnabled:
type: boolean
trackEmittedStreams:
type: boolean
checkpointAfterMs:
type: integer
checkpointHandledThreshold:
type: integer
checkpointUnhandledBytesThreshold:
type: integer
pendingEventsThreshold:
type: integer
maxWriteBatchLength:
type: integer
requestBodies:
ProjectionQuery:
required: true
description: The projection definition, as JavaScript
content:
application/json:
schema:
type: string
securitySchemes:
basicAuth:
type: http
scheme: basic
description: KurrentDB supports HTTP Basic authentication for the HTTP API, with access control lists (ACLs) applied per stream. See https://docs.kurrent.io/server/v26.1/http-api/security.html
externalDocs:
description: KurrentDB HTTP API documentation
url: https://docs.kurrent.io/server/v26.1/http-api/introduction.html