HTTP API Reference

The Base URL used in this documentation is https://eventstore.com, you should replace it with the same url you use to view the administration UI

Authentication

  • HTTP Authentication, scheme: basic

Streams

Endpoints for Stream operations

Read a stream

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/{stream}

1
2
3

GET /streams/{stream}Reads a stream

Read a stream, receiving a standard AtomFeed document as a response.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Append to a stream

Code samples

# You can also use wget
curl -X POST https://eventstore.com/streams/{stream} \
  -H 'Content-Type: application/json' \
  -H 'ES-ExpectedVersion: 0' \
  -H 'ES-EventType: string' \
  -H 'ES-EventId: 0' \
  -H 'ES-RequiresMaster: true'

1
2
3
4
5
6
7
8

POST /streams/{stream}Append to a stream

Append to a stream.

Body parameter

{
  "body": {}
}
1
2
3

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe name of the stream
ES-ExpectedVersionheaderintegerfalseExpected stream version
ES-EventTypeheaderstringfalseThe event type associated to a posted body
ES-EventIdheaderGUIDfalseEvent ID associated to a posted body
ES-RequiresMasterheaderbooleanfalseWether to run on a master node
bodybodystreamDatatrueStream events to create

Responses

StatusMeaningDescriptionSchema
201Createdopen in new windowNew stream createdNone
307Temporary Redirectopen in new windowTemporary RedirectNone
400Bad Requestopen in new windowAppend request body invalidNone

Delete a stream

Code samples

# You can also use wget
curl -X DELETE https://eventstore.com/streams/{stream}

1
2
3

DELETE /streams/{stream}Deletes a stream

Delete specified stream

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID to delete

Responses

StatusMeaningDescriptionSchema
204No Contentopen in new windowStream deletedNone

Alternative stream URL

Code samples

# You can also use wget
curl -X POST https://eventstore.com/streams/{stream}/incoming/{guid}

1
2
3

POST /streams/{stream}/incoming/{guid}An alternative URL to post events to

A URL generated by EventStoreDB if you don't supply an ID when creating a stream. You then use this URL to post events to.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe name of the stream
guidpathstringtrueAutogenerated UUID

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowNew event createdNone
400Bad Requestopen in new windowBad requestNone

Read stream event

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/{stream}/{event}

1
2
3

GET /streams/{stream}/{event}Read a stream event

Reads a single event from a stream.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID
eventpathstringtrueThe event ID
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get {n} events

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/{stream}/{event}/{count}

1
2
3

GET /streams/{stream}/{event}/{count}Paginate backwards through stream events

Paginate backwards though stream events by a specified amount.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID
eventpathstringtrueThe event ID
countpathinteger(int64)trueHow many events to skip backwards from in the request.
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Page back through events

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/{stream}/{event}/backward/{count}

1
2
3

GET /streams/{stream}/{event}/backward/{count}Paginate backwards through stream events

Paginate backwards though stream events by a specified amount.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID
eventpathstringtrueThe event ID
countpathinteger(int64)trueHow many events to skip backwards from in the request.
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Page forward through events

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/{stream}/{event}/forward/{count}

1
2
3

GET /streams/{stream}/{event}/forward/{count}Paginate forwards through stream events

Paginate forwards though stream events by a specified amount.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID
eventpathstringtrueThe event ID
countpathinteger(int64)trueHow many events to skip forwards in the request.
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Read stream metadata

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/{stream}/metadata

1
2
3

GET /streams/{stream}/metadataReads the metadata of a stream

Returns metadata of a stream, typically information associated with an event that is not part of the event.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream ID
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Update stream metadata

Code samples

# You can also use wget
curl -X POST https://eventstore.com/streams/{stream}/metadata \
  -H 'Content-Type: application/json'

1
2
3
4

POST /streams/{stream}/metadataUpdate stream metadata

Update the metadata of a stream.

Body parameter

{
  "eventId": "string",
  "eventType": "string",
  "data": {
    "maxAge": 0,
    "maxCount": 0,
    "truncateBefore": 0,
    "cacheControl": "string",
    "acl": {
      "r": "string",
      "w": "string",
      "d": "string",
      "mr": "string",
      "mw": "string"
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe name of the stream
bodybodyStreamMetadataItemfalseMetadata object

Responses

StatusMeaningDescriptionSchema
201Createdopen in new windowNew stream createdNone
400Bad Requestopen in new windowBad requestNone

Get all events

Code samples

# You can also use wget
curl -X GET https://eventstore.com/streams/$all

1
2
3

GET /streams/$allReturns all events from all streams

Returns all events from all streams, you must provide user details.

Parameters

NameInTypeRequiredDescription
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Subscriptions

Endpoints for Subscription operations

Get all subscriptions

Code samples

# You can also use wget
curl -X GET https://eventstore.com/subscriptions

1
2
3

GET /subscriptionsGet information for all subscriptions

Returns all subscriptions from all streams.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowNew persistant subscriptionNone
400Bad Requestopen in new windowbad input parameterNone

Get subscription stream information

Code samples

# You can also use wget
curl -X GET https://eventstore.com/subscriptions/{stream}

1
2
3

GET /subscriptions/{stream}Returns information about the subscriptions for a stream

Needed

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream name

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Get subscription information

Code samples

# You can also use wget
curl -X GET https://eventstore.com/subscriptions/{stream}/{subscription}/info

1
2
3

GET /subscriptions/{stream}/{subscription}/infoReads stream information via a persistent subscription

Needed

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Get a stream

Code samples

# You can also use wget
curl -X GET https://eventstore.com/subscriptions/{stream}/{subscription}

1
2
3

GET /subscriptions/{stream}/{subscription}Read a stream

Read a specified stream by a persistent subscription.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
embedquerystringfalseNeeded

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Update subscription

Code samples

# You can also use wget
curl -X POST https://eventstore.com/subscriptions/{stream}/{subscription} \
  -H 'Content-Type: application/json'

1
2
3
4

POST /subscriptions/{stream}/{subscription}Update a persistant subscription

You can edit the settings of an existing subscription while it is running. This will drop the current subscribers and will reset the subscription internally.

Body parameter

{
  "minCheckPointCount": 2,
  "startFrom": 0,
  "ResolveLinkTos": true,
  "readBatchSize": 5,
  "namedConsumerStrategy": "RoundRobin",
  "extraStatistics": true,
  "maxRetryCount": 7,
  "liveBufferSize": 1,
  "messageTimeoutMilliseconds": 3,
  "maxCheckPointCount": 2,
  "maxSubscriberCount": 9,
  "checkPointAfterMilliseconds": 6,
  "bufferSize": 5
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
bodybodySubscriptionItemfalseSubscription to create

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowSubscription updatedNone

Create subscription

Code samples

# You can also use wget
curl -X PUT https://eventstore.com/subscriptions/{stream}/{subscription} \
  -H 'Content-Type: application/json'

1
2
3
4

PUT /subscriptions/{stream}/{subscription}Create a persistent subscription

Before interacting with a subscription group, you need to create one. You will receive an error if you attempt to create a subscription group more than once. This requires admin permissions.

Body parameter

{
  "minCheckPointCount": 2,
  "startFrom": 0,
  "ResolveLinkTos": true,
  "readBatchSize": 5,
  "namedConsumerStrategy": "RoundRobin",
  "extraStatistics": true,
  "maxRetryCount": 7,
  "liveBufferSize": 1,
  "messageTimeoutMilliseconds": 3,
  "maxCheckPointCount": 2,
  "maxSubscriberCount": 9,
  "checkPointAfterMilliseconds": 6,
  "bufferSize": 5
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
bodybodySubscriptionItemfalseSubscription to create

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowSubscription createdNone

Delete subscription

Code samples

# You can also use wget
curl -X DELETE https://eventstore.com/subscriptions/{stream}/{subscription}

1
2
3

DELETE /subscriptions/{stream}/{subscription}Deletes a subscription

Deletes a subscription

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Get {n} subscription events

Code samples

# You can also use wget
curl -X GET https://eventstore.com/subscriptions/{stream}/{subscription}/{count}

1
2
3

GET /subscriptions/{stream}/{subscription}/{count}Reads a stream via a persistent subscription and return a specific number of events

Reads a stream via a persistent subscription and return a specific number of events

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
countpathinteger(int64)trueHow many events to return for the request.
embedquerystringfalsenone

Enumerated Values

ParameterValue
embedNone
embedContent
embedRich
embedBody
embedPrettyBody
embedTryHarder

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Acknowledge a single message

Code samples

# You can also use wget
curl -X POST https://eventstore.com/subscriptions/{stream}/{subscription}/ack/{messageid}

1
2
3

POST /subscriptions/{stream}/{subscription}/ack/{messageid}Acknowledge a single message

Clients must acknowledge (or not acknowledge) messages in the competing consumer model. If the client fails to respond in the given timeout period, the message will be retried. You should use the rel links in the feed for acknowledgements not bookmark URIs as they are subject to change in future versions.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
messageidpathstringtrueThe id of the message that needs to be acked

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowNew persistant subscriptionNone
400Bad Requestopen in new windowbad input parameterNone

Acknowledge multiple messages

Code samples

# You can also use wget
curl -X POST https://eventstore.com/subscriptions/{stream}/{subscription}/ack

1
2
3

POST /subscriptions/{stream}/{subscription}/ackAcknowledge multiple messages

Clients must acknowledge (or not acknowledge) messages in the competing consumer model. If the client fails to respond in the given timeout period, the message will be retried. You should use the rel links in the feed for acknowledgements not bookmark URIs as they are subject to change in future versions.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
idsquerystringfalseThe ids of the messages that need to be acked separated by commas

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowNew persistant subscriptionNone
400Bad Requestopen in new windowbad input parameterNone

Don't acknowledge a single message

Code samples

# You can also use wget
curl -X POST https://eventstore.com/subscriptions/{stream}/{subscription}/nack/{messageid}

1
2
3

POST /subscriptions/{stream}/{subscription}/nack/{messageid}Negative acknowledge a single message

Clients must acknowledge (or not acknowledge) messages in the competing consumer model. If the client fails to respond in the given timeout period, the message will be retried. You should use the rel links in the feed for acknowledgements not bookmark URIs as they are subject to change in future versions.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
messageidpathstringtrueThe id of the message that needs to be nacked
actionquerystringfalse
  • Park - Don't retry the message, park it until a request is sent to reply the parked messages
  • Retry - Retry the message
  • Skip - Discard the message
  • Stop - Stop the subscription

Enumerated Values

ParameterValue
actionPark
actionRetyr
actionSkip
actionStop

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowNew persistant subscriptionNone
400Bad Requestopen in new windowbad input parameterNone

Don't acknowledge multiple messages

Code samples

# You can also use wget
curl -X POST https://eventstore.com/subscriptions/{stream}/{subscription}/nack

1
2
3

POST /subscriptions/{stream}/{subscription}/nackNegative acknowledge multiple messages

Clients must acknowledge (or not acknowledge) messages in the competing consumer model. If the client fails to respond in the given timeout period, the message will be retried. You should use the rel links in the feed for acknowledgements not bookmark URIs as they are subject to change in future versions.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group
idsquerystringfalseThe ids of the messages that need to be nacked separated by commas
actionquerystringfalse
  • Park - Don't retry the message, park it until a request is sent to reply the parked messages
  • Retry - Retry the message
  • Skip - Discard the message
  • Stop - Stop the subscription

Enumerated Values

ParameterValue
actionPark
actionRetry
actionSkip
actionStop

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowNew persistant subscriptionNone
400Bad Requestopen in new windowbad input parameterNone

Replay previously parked messages

Code samples

# You can also use wget
curl -X POST https://eventstore.com/subscriptions/{stream}/{subscription}/replayParked

1
2
3

POST /subscriptions/{stream}/{subscription}/replayParkedReplay any previously parked messages in a stream

Replay any previously parked messages in a stream that were parked by a negative acknowledgement action.

Parameters

NameInTypeRequiredDescription
streampathstringtrueThe stream the persistent subscription is on
subscriptionpathstringtrueThe name of the subscription group

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Projections

Endpoints for Projection operations

Get all projections

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projections/any

1
2
3

GET /projections/anyGet all projections

Returns all projections defined in EventStoreDB.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get all non-transient projections

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projections/all-non-transient

1
2
3

GET /projections/all-non-transientGet all non-transient projections

Returns all known projections except ad-hoc projections.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get all queries

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projections/onetime

1
2
3

GET /projections/onetimeGet all queries

Returns all queries defined in EventStoreDB.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Create a onetime projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projections/onetime

1
2
3

POST /projections/onetimeCreate a onetime projection

Create a new onetime projection.

Parameters

NameInTypeRequiredDescription
namequerystringfalseName of the projection
typequerystringfalseThe projection type
enabledquerybooleanfalseIs the projection enabled
checkpointsquerybooleanfalseAre checkpoints enabled
emitquerybooleanfalseIs emit enabled
trackemittedstreamsquerybooleanfalseShould your projection create a separate stream and write any streams it emits to that stream.

Enumerated Values

ParameterValue
typeJS

Responses

StatusMeaningDescriptionSchema
201Createdopen in new windowNew projection createdNone
400Bad Requestopen in new windowBad requestNone

Get all continious projections

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projections/continuous

1
2
3

GET /projections/continuousGet all continious projections

Returns all continually running projections defined in EventStoreDB.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Create a continuous projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projections/continuous

1
2
3

POST /projections/continuousCreate a continious projection

Create a new continious projection.

Parameters

NameInTypeRequiredDescription
namequerystringfalseName of the projection
enabledquerybooleanfalseIs the projection enabled
checkpointsquerybooleanfalseAre checkpoints enabled
emitquerybooleanfalseIs emit enabled
typequerystringfalseThe projection type
trackemittedstreamsquerybooleanfalseShould your projection create a separate stream and write any streams it emits to that stream.

Enumerated Values

ParameterValue
typeJS

Responses

StatusMeaningDescriptionSchema
201Createdopen in new windowNew projection createdNone
400Bad Requestopen in new windowBad requestNone

Read projection events based on a query

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projections/read-events

1
2
3

POST /projections/read-eventsRead events from projection based on a query definition

Read events from projection based on a query definition, i.e. fromAll, fromStream, fromStreams

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get all transient projections

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projections/transient

1
2
3

GET /projections/transientGet all transient projections

Returns all transient projections defined in EventStoreDB.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Create a transient projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projections/transient

1
2
3

POST /projections/transientCreate a transient projection

Create a new transient projection.

Parameters

NameInTypeRequiredDescription
namequerystringfalseName of the projection
typequerystringfalseThe projection type
enabledquerybooleanfalseIs the projection enabled

Enumerated Values

ParameterValue
typeJS

Responses

StatusMeaningDescriptionSchema
201Createdopen in new windowNew user createdNone
400Bad Requestopen in new windowBad requestNone

Get projection definition

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projection/{name}/query

1
2
3

GET /projection/{name}/queryGet projection definition

Returns definition of the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
configquerybooleanfalseWether to return the projection definition config.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Update projection definition

Code samples

# You can also use wget
curl -X PUT https://eventstore.com/projection/{name}/query

1
2
3

PUT /projection/{name}/queryUpdate projection definition

Update the specified projection definition.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
typequerystringfalseThe projection type
emitquerybooleanfalseIs emit enabled

Enumerated Values

ParameterValue
typeJS

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get the projection state

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projection/{name}/state

1
2
3

GET /projection/{name}/stateGet the projection state

Return the current state of the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
partitionquerystringfalseThe partition name in state

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get result of projection

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projection/{name}/result

1
2
3

GET /projection/{name}/resultGet result of projection

Get the final result of a projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
partitionquerystringfalseThe partition name in state

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get projection statistics

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projection/{name}/statistics

1
2
3

GET /projection/{name}/statisticsGet projection statistics

Returns the statistics for a projection, such as how many events, the status etc.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Disable projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projection/{name}/command/disable

1
2
3

POST /projection/{name}/command/disableDisable projection

Disable the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
enableRunAsquerybooleanfalseRun as the user issuing the command.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Enable projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projection/{name}/command/enable

1
2
3

POST /projection/{name}/command/enableEnable projection

Enable the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
enableRunAsquerybooleanfalseRun as the user issuing the command.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Reset projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projection/{name}/command/reset

1
2
3

POST /projection/{name}/command/resetReset projection

Reset the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
enableRunAsquerybooleanfalseRun as the user issuing the command.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Abort projection

Code samples

# You can also use wget
curl -X POST https://eventstore.com/projection/{name}/command/abort

1
2
3

POST /projection/{name}/command/abortAbort projection

Abort the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection
enableRunAsquerybooleanfalseRun as the user issuing the command.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get projection config

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projection/{name}/config

1
2
3

GET /projection/{name}/configGet the config of a projection

Returns the performance configuration of the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Update projection config

Code samples

# You can also use wget
curl -X PUT https://eventstore.com/projection/{name}/config

1
2
3

PUT /projection/{name}/configUpdate the config of a projection

Update the performance configuration of the specified projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Get a projection

Code samples

# You can also use wget
curl -X GET https://eventstore.com/projection/{name}

1
2
3

GET /projection/{name}Get a projection

Returns a specific projection.

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe name of the projection

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Delete a projection

Code samples

# You can also use wget
curl -X DELETE https://eventstore.com/projection/{name}

1
2
3

DELETE /projection/{name}Deletes a projection

Deletes a projection

Parameters

NameInTypeRequiredDescription
namepathstringtrueThe projection to delete
deleteStateStreamquerybooleanfalseTBD
deleteCheckpointStreamquerybooleanfalseTBD
deleteEmittedStreamsquerybooleanfalseTBD

Responses

StatusMeaningDescriptionSchema
204No Contentopen in new windowProjection deletedNone

Admin

Endpoints for Admin operations

Shutdown a node

Code samples

# You can also use wget
curl -X POST https://eventstore.com/admin/shutdown

1
2
3

POST /admin/shutdownShutdown a node

Issues a shut down command to a node.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone

Scavenge a node

Code samples

# You can also use wget
curl -X POST https://eventstore.com/admin/scavenge

1
2
3

POST /admin/scavengeScavenge a node

Scavenge reclaims disk space by rewriting database chunks, minus the events to delete, and then deleting the old chunks.

Parameters

NameInTypeRequiredDescription
startFromChunkqueryintegerfalseThe chunk ID to start the scavenge operation from.
threadsqueryintegerfalseThe number of threads to run the scavenge operation on (max 4).

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
401Unauthorizedopen in new windowUnauthorizedNone

Stop a scavenge

Code samples

# You can also use wget
curl -X DELETE https://eventstore.com/admin/scavenge/{scavengeId}

1
2
3

DELETE /admin/scavenge/{scavengeId}Stop a scavenge operation

Stop a running scavenge operation.

Parameters

NameInTypeRequiredDescription
scavengeIdpathintegertrueThe scavenge ID

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
401Unauthorizedopen in new windowUnauthorizedNone

Merge Indexes

Code samples

# You can also use wget
curl -X POST -d{} https://eventstore.com/admin/mergeindexes

1
2
3

POST /admin/mergeindexesMerge indexes

Manually merge indexes after a scavenge operation

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
401Unauthorizedopen in new windowUnauthorizedNone

Info

Endpoints for Info operations

Get info for node

Code samples

# You can also use wget
curl -X GET https://eventstore.com/info

1
2
3

GET /infoGet info for node

Returns information about node.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
401Unauthorizedopen in new windowUnauthorizedNone

Get configuration for node

Code samples

# You can also use wget
curl -X GET https://eventstore.com/info/options

1
2
3

GET /info/optionsGet configuration for node

Returns configuration details about node.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
401Unauthorizedopen in new windowUnauthorizedNone

Users

Endpoints for User operations

Get all users

Code samples

# You can also use wget
curl -X GET https://eventstore.com/users/

1
2
3

GET /users/Get all users

Returns all users defined in EventStoreDB.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Create a user

Code samples

# You can also use wget
curl -X POST https://eventstore.com/users/ \
  -H 'Content-Type: application/json'

1
2
3
4

POST /users/Create a User

Create a new user.

Body parameter

{
  "LoginName": "admin",
  "FullName": "EventStore Admin",
  "Groups": [
    "Admin",
    "DataScience"
  ],
  "Password": "aVerySecurePassword"
}
1
2
3
4
5
6
7
8
9

Parameters

NameInTypeRequiredDescription
bodybodyUserItemfalseUser to create

Responses

StatusMeaningDescriptionSchema
201Createdopen in new windowNew user createdNone
400Bad Requestopen in new windowBad requestNone
401Unauthorizedopen in new windowUnauthorizedNone

Get a user

Code samples

# You can also use wget
curl -X GET https://eventstore.com/users/{login}

1
2
3

GET /users/{login}Get user

Returns the user currently authenticated with the API, or the user specified.

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user passed to the API call.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Update a user

Code samples

# You can also use wget
curl -X PUT https://eventstore.com/users/{login} \
  -H 'Content-Type: application/json'

1
2
3
4

PUT /users/{login}Update specified user

Update the FullName of Groups of the specified user.

Body parameter

{
  "FullName": "EventStore Admin",
  "Groups": [
    "Admin",
    "DataScience"
  ]
}
1
2
3
4
5
6
7

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user's name
bodybodyUserUpdateItemfalseUser to update

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Delete a user

Code samples

# You can also use wget
curl -X DELETE https://eventstore.com/users/{login}

1
2
3

DELETE /users/{login}Deletes a user

Delete specified user.

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user's name

Responses

StatusMeaningDescriptionSchema
204No Contentopen in new windowUser deletedNone

Enable a user

Code samples

# You can also use wget
curl -X PUT https://eventstore.com/users/{login}/command/enable

1
2
3

PUT /users/{login}/command/enableEnable the specified user

Enable the acount of the specified user.

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user's name

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Disable a user

Code samples

# You can also use wget
curl -X PUT https://eventstore.com/users/{login}/command/disable

1
2
3

PUT /users/{login}/command/disableDisable the specified user

Disable the acount of the specified user.

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user's name

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Reset password

Code samples

# You can also use wget
curl -X POST https://eventstore.com/users/{login}/command/reset-password \
  -H 'Content-Type: application/json'

1
2
3
4

POST /users/{login}/command/reset-passwordReset user password

Reset the password of the specified user.

Body parameter

{
  "NewPassword": "aNewSecurePassword"
}
1
2
3

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user's name
bodybodyPasswordResetItemtrueThe new password for the user

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
400Bad Requestopen in new windowBad requestNone

Change password

Code samples

# You can also use wget
curl -X POST https://eventstore.com/users/{login}/command/change-password \
  -H 'Content-Type: application/json'

1
2
3
4

POST /users/{login}/command/change-passwordChange user password

Change the password of the specified user.

Body parameter

{
  "CurrentPassword": "anOldSecurePassword",
  "NewPassword": "aNewSecurePassword"
}
1
2
3
4

Parameters

NameInTypeRequiredDescription
loginpathstringtrueThe user's name
bodybodyPasswordChangeItemtrueThe new password for the user

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
400Bad Requestopen in new windowBad requestNone

Stats

Endpoints for Statistics operations.

Get all stats

Code samples

# You can also use wget
curl -X GET https://eventstore.com/stats \
  -H 'Accept: application/json'

1
2
3
4

GET /statsGet all stats

Returns all stats enabled for EventStoreDB.

Example responses

200 Response

{
  "proc": {
    "startTime": "string",
    "id": 0,
    "mem": 0,
    "cpu": 0,
    "cpuScaled": 0,
    "threadsCount": 0,
    "contentionsRate": 0,
    "thrownExceptionsRate": 0,
    "gc": {
      "allocationSpeed": 0,
      "gen0ItemsCount": 0,
      "gen0Size": 0,
      "gen1ItemsCount": 0,
      "gen1Size": 0,
      "gen2ItemsCount": 0,
      "gen2Size": 0,
      "largeHeapSize": 0,
      "timeInGc": 0,
      "totalBytesInHeaps": 0
    },
    "diskIo": {
      "readBytes": 0,
      "writtenBytes": 0,
      "readOps": 0,
      "writeOps": 0
    },
    "tcp": {
      "connections": 0,
      "receivingSpeed": "string",
      "sendingSpeed": 0,
      "inSend": 0,
      "measureTime": 0,
      "pendingReceived": 0,
      "pendingSend": 0,
      "receivedBytesSinceLastRun": 0,
      "receivedBytesTotal": 0,
      "sentBytesSinceLastRun": 0,
      "sentBytesTotal": 0
    }
  },
  "sys": {
    "cpu": 0,
    "freeMem": 0,
    "drive": {
      "driveName": {
        "availableBytes": 0,
        "totalBytes": 0,
        "usage": 0,
        "usedBytes": 0
      }
    }
  },
  "es": {
    "checksum": 0,
    "checksumNonFlushed": 0,
    "queue": {
      "queueName": "string",
      "groupName": "string",
      "avgItemsPerSecond": 0,
      "avgProcessingTime": 0,
      "currentIdleTime": "string",
      "currentItemProcessingTime": "string",
      "idleTimePercent": 0,
      "length": 0,
      "lengthCurrentTryPeak": 0,
      "lengthLifetimePeak": 0,
      "totalItemsProcessed": 0,
      "inProgressMessage": "string",
      "lastProcessedMessage": "string"
    },
    "writer": {
      "lastFlushSize": 0,
      "lastFlushDelayMs": 0,
      "meanFlushSize": 0,
      "meanFlushDelayMs": 0,
      "maxFlushSize": 0,
      "maxFlushDelayMs": 0,
      "queuedFlushMessages": 0
    },
    "readIndex": {
      "cachedRecord": 0,
      "notCachedRecord": 0,
      "cachedStreamInfo": 0,
      "notCachedStreamInfo": 0,
      "cachedTransInfo": 0,
      "notCachedTransInfo": 0,
      "hashCollisions": 0
    }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?xml version="1.0" encoding="UTF-8" ?>
<Stats>
  <proc>
    <startTime>string</startTime>
    <id>0</id>
    <mem>0</mem>
    <cpu>0</cpu>
    <cpuScaled>0</cpuScaled>
    <threadsCount>0</threadsCount>
    <contentionsRate>0</contentionsRate>
    <thrownExceptionsRate>0</thrownExceptionsRate>
    <gc>
      <allocationSpeed>0</allocationSpeed>
      <gen0ItemsCount>0</gen0ItemsCount>
      <gen0Size>0</gen0Size>
      <gen1ItemsCount>0</gen1ItemsCount>
      <gen1Size>0</gen1Size>
      <gen2ItemsCount>0</gen2ItemsCount>
      <gen2Size>0</gen2Size>
      <largeHeapSize>0</largeHeapSize>
      <timeInGc>0</timeInGc>
      <totalBytesInHeaps>0</totalBytesInHeaps>
    </gc>
    <diskIo>
      <readBytes>0</readBytes>
      <writtenBytes>0</writtenBytes>
      <readOps>0</readOps>
      <writeOps>0</writeOps>
    </diskIo>
    <tcp>
      <connections>0</connections>
      <receivingSpeed>string</receivingSpeed>
      <sendingSpeed>0</sendingSpeed>
      <inSend>0</inSend>
      <measureTime>0</measureTime>
      <pendingReceived>0</pendingReceived>
      <pendingSend>0</pendingSend>
      <receivedBytesSinceLastRun>0</receivedBytesSinceLastRun>
      <receivedBytesTotal>0</receivedBytesTotal>
      <sentBytesSinceLastRun>0</sentBytesSinceLastRun>
      <sentBytesTotal>0</sentBytesTotal>
    </tcp>
  </proc>
  <sys>
    <cpu>0</cpu>
    <freeMem>0</freeMem>
    <drive>
      <driveName>
        <availableBytes>0</availableBytes>
        <totalBytes>0</totalBytes>
        <usage>0</usage>
        <usedBytes>0</usedBytes>
      </driveName>
    </drive>
  </sys>
  <es>
    <checksum>0</checksum>
    <checksumNonFlushed>0</checksumNonFlushed>
    <queue>
      <queueName>string</queueName>
      <groupName>string</groupName>
      <avgItemsPerSecond>0</avgItemsPerSecond>
      <avgProcessingTime>0</avgProcessingTime>
      <currentIdleTime>string</currentIdleTime>
      <currentItemProcessingTime>string</currentItemProcessingTime>
      <idleTimePercent>0</idleTimePercent>
      <length>0</length>
      <lengthCurrentTryPeak>0</lengthCurrentTryPeak>
      <lengthLifetimePeak>0</lengthLifetimePeak>
      <totalItemsProcessed>0</totalItemsProcessed>
      <inProgressMessage>string</inProgressMessage>
      <lastProcessedMessage>string</lastProcessedMessage>
    </queue>
    <writer>
      <lastFlushSize>0</lastFlushSize>
      <lastFlushDelayMs>0</lastFlushDelayMs>
      <meanFlushSize>0</meanFlushSize>
      <meanFlushDelayMs>0</meanFlushDelayMs>
      <maxFlushSize>0</maxFlushSize>
      <maxFlushDelayMs>0</maxFlushDelayMs>
      <queuedFlushMessages>0</queuedFlushMessages>
    </writer>
    <readIndex>
      <cachedRecord>0</cachedRecord>
      <notCachedRecord>0</notCachedRecord>
      <cachedStreamInfo>0</cachedStreamInfo>
      <notCachedStreamInfo>0</notCachedStreamInfo>
      <cachedTransInfo>0</cachedTransInfo>
      <notCachedTransInfo>0</notCachedTransInfo>
      <hashCollisions>0</hashCollisions>
    </readIndex>
  </es>
</Stats>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowA list of statsStats
404Not Foundopen in new windowNot foundNone

Get specified stat

Code samples

# You can also use wget
curl -X GET https://eventstore.com/stats/{statPath}

1
2
3

GET /stats/{statPath}Get stats sub path

Returns the sub path of the EventStoreDB statistics available.

Parameters

NameInTypeRequiredDescription
statPathpathstringtrueThe stats sub path

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Gossip

Return Gossip details

Code samples

# You can also use wget
curl -X GET https://eventstore.com/gossip

1
2
3

GET /gossipReturn Gossip details for cluster

Return Gossip details for nodes in cluster.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Update Gossip details

Code samples

# You can also use wget
curl -X POST https://eventstore.com/gossip

1
2
3

POST /gossipUpdate Gossip details for cluster

Update Gossip details for nodes in a cluster.

Responses

StatusMeaningDescriptionSchema
200OKopen in new windowOKNone
404Not Foundopen in new windowNot foundNone

Schemas

UserItem

{
  "LoginName": "admin",
  "FullName": "EventStore Admin",
  "Groups": [
    "Admin",
    "DataScience"
  ],
  "Password": "aVerySecurePassword"
}

1
2
3
4
5
6
7
8
9
10

Properties

NameTypeRequiredRestrictionsDescription
LoginNamestringfalsenoneThe new users login name.
FullNamestringfalsenoneThe full name for the new user.
Groups[string]falsenoneThe groups the new user is a member of.
PasswordstringfalsenoneThe password for the new user.

UserUpdateItem

{
  "FullName": "EventStore Admin",
  "Groups": [
    "Admin",
    "DataScience"
  ]
}

1
2
3
4
5
6
7
8

Properties

NameTypeRequiredRestrictionsDescription
FullNamestringfalsenoneThe full name of the new user.
Groups[string]falsenoneThe groups the new user should become a member of.

PasswordResetItem

{
  "NewPassword": "aNewSecurePassword"
}

1
2
3
4

Properties

NameTypeRequiredRestrictionsDescription
NewPasswordstringfalsenoneThe new password for the user

PasswordChangeItem

{
  "CurrentPassword": "anOldSecurePassword",
  "NewPassword": "aNewSecurePassword"
}

1
2
3
4
5

Properties

NameTypeRequiredRestrictionsDescription
CurrentPasswordstringfalsenoneThe current password for the user
NewPasswordstringfalsenoneThe new password for the user

streamData

{
  "body": {}
}

1
2
3
4

Properties

NameTypeRequiredRestrictionsDescription
bodyobjecttruenoneEvent data

StreamItem

{
  "minCheckPointCount": 2,
  "startFrom": 0,
  "ResolveLinkTos": true,
  "readBatchSize": 5,
  "namedConsumerStrategy": "RoundRobin",
  "extraStatistics": true,
  "maxRetryCount": 7,
  "liveBufferSize": 1,
  "messageTimeoutMilliseconds": 3,
  "maxCheckPointCount": 2,
  "maxSubscriberCount": 9,
  "checkPointAfterMilliseconds": 6,
  "bufferSize": 5
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Properties

NameTypeRequiredRestrictionsDescription
ResolveLinkTosbooleanfalsenoneWhether to resolve link events
startFrominteger(int64)falsenoneWhich event position in the stream the subscription should start from
extraStatisticsbooleanfalsenoneWhether to track latency statistics on this subscription
checkPointAfterMillisecondsinteger(int64)falsenoneThe amount of time to try to checkpoint after
liveBufferSizeinteger(int64)falsenoneThe size of the buffer (in-memory) listening to live messages as they happen before paging occurs
readBatchSizeinteger(int64)falsenoneThe number of events to read per batch when reading the history
bufferSizeinteger(int64)falsenoneThe number of events to cache when paging through history
maxCheckPointCountinteger(int64)falsenoneThe maximum number of messages not checkpointed before forcing a checkpoint
maxRetryCountinteger(int64)falsenoneThe maximum number of retries (due to timeout) before a message is considered to be parked
maxSubscriberCountinteger(int64)falsenoneThe maximum number of TCP subscribers allowed
messageTimeoutMillisecondsinteger(int64)falsenoneThe amount of time after which to consider a message as timedout and retried
minCheckPointCountinteger(int64)falsenoneThe minimum number of messages to write to a checkpoint
namedConsumerStrategystringfalsenoneThe strategy to use for distributing events to client consumers

Enumerated Values

PropertyValue
namedConsumerStrategyRoundRobin
namedConsumerStrategyDispatchToSingle
namedConsumerStrategyPinned

StreamMetadataItem

{
  "eventId": "string",
  "eventType": "string",
  "data": {
    "maxAge": 0,
    "maxCount": 0,
    "truncateBefore": 0,
    "cacheControl": "string",
    "acl": {
      "r": "string",
      "w": "string",
      "d": "string",
      "mr": "string",
      "mw": "string"
    }
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Properties

NameTypeRequiredRestrictionsDescription
eventIdstringfalsenoneAlphanumeric ID
eventTypestringfalsenoneThe type of event
dataStreamMetadataItem_datafalsenonenone

SubscriptionItem

{
  "minCheckPointCount": 2,
  "startFrom": 0,
  "ResolveLinkTos": true,
  "readBatchSize": 5,
  "namedConsumerStrategy": "RoundRobin",
  "extraStatistics": true,
  "maxRetryCount": 7,
  "liveBufferSize": 1,
  "messageTimeoutMilliseconds": 3,
  "maxCheckPointCount": 2,
  "maxSubscriberCount": 9,
  "checkPointAfterMilliseconds": 6,
  "bufferSize": 5
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Properties

NameTypeRequiredRestrictionsDescription
ResolveLinkTosbooleanfalsenoneWhether to resolve link events
startFrominteger(int64)falsenoneWhich event position in the stream the subscription should start from
extraStatisticsbooleanfalsenoneWhether to track latency statistics on this subscription
checkPointAfterMillisecondsinteger(int64)falsenoneThe amount of time to try to checkpoint after
liveBufferSizeinteger(int64)falsenoneThe size of the buffer (in-memory) listening to live messages as they happen before paging occurs
readBatchSizeinteger(int64)falsenoneThe number of events to read per batch when reading the history
bufferSizeinteger(int64)falsenoneThe number of events to cache when paging through history
maxCheckPointCountinteger(int64)falsenoneThe maximum number of messages not checkpointed before forcing a checkpoint
maxRetryCountinteger(int64)falsenoneThe maximum number of retries (due to timeout) before a message is considered to be parked
maxSubscriberCountinteger(int64)falsenoneThe maximum number of TCP subscribers allowed
messageTimeoutMillisecondsinteger(int64)falsenoneThe amount of time after which to consider a message as timedout and retried
minCheckPointCountinteger(int64)falsenoneThe minimum number of messages to write to a checkpoint
namedConsumerStrategystringfalsenoneThe strategy to use for distributing events to client consumers

Enumerated Values

PropertyValue
namedConsumerStrategyRoundRobin
namedConsumerStrategyDispatchToSingle
namedConsumerStrategyPinned

StreamMetadataItem_data

{
  "maxAge": 0,
  "maxCount": 0,
  "truncateBefore": 0,
  "cacheControl": "string",
  "acl": {
    "r": "string",
    "w": "string",
    "d": "string",
    "mr": "string",
    "mw": "string"
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Properties

NameTypeRequiredRestrictionsDescription
maxAgeintegerfalsenoneThe maximum age of events in the stream
maxCountintegerfalsenoneThe maximum count of events in the stream
truncateBeforeintegerfalsenoneEvents prior to this event are truncated and removed
cacheControlstringfalsenonePeriod of time to make feed head cacheable
aclobjectfalsenoneAccess control list for this stream
» rstringfalsenoneRead roles
» wstringfalsenoneWrite roles
» dstringfalsenoneDelete roles
» mrstringfalsenoneMetadata read roles
» mwstringfalsenoneMetadata write roles

Stats

{
  "proc": {
    "startTime": "string",
    "id": 0,
    "mem": 0,
    "cpu": 0,
    "cpuScaled": 0,
    "threadsCount": 0,
    "contentionsRate": 0,
    "thrownExceptionsRate": 0,
    "gc": {
      "allocationSpeed": 0,
      "gen0ItemsCount": 0,
      "gen0Size": 0,
      "gen1ItemsCount": 0,
      "gen1Size": 0,
      "gen2ItemsCount": 0,
      "gen2Size": 0,
      "largeHeapSize": 0,
      "timeInGc": 0,
      "totalBytesInHeaps": 0
    },
    "diskIo": {
      "readBytes": 0,
      "writtenBytes": 0,
      "readOps": 0,
      "writeOps": 0
    },
    "tcp": {
      "connections": 0,
      "receivingSpeed": "string",
      "sendingSpeed": 0,
      "inSend": 0,
      "measureTime": 0,
      "pendingReceived": 0,
      "pendingSend": 0,
      "receivedBytesSinceLastRun": 0,
      "receivedBytesTotal": 0,
      "sentBytesSinceLastRun": 0,
      "sentBytesTotal": 0
    }
  },
  "sys": {
    "cpu": 0,
    "freeMem": 0,
    "drive": {
      "driveName": {
        "availableBytes": 0,
        "totalBytes": 0,
        "usage": 0,
        "usedBytes": 0
      }
    }
  },
  "es": {
    "checksum": 0,
    "checksumNonFlushed": 0,
    "queue": {
      "queueName": "string",
      "groupName": "string",
      "avgItemsPerSecond": 0,
      "avgProcessingTime": 0,
      "currentIdleTime": "string",
      "currentItemProcessingTime": "string",
      "idleTimePercent": 0,
      "length": 0,
      "lengthCurrentTryPeak": 0,
      "lengthLifetimePeak": 0,
      "totalItemsProcessed": 0,
      "inProgressMessage": "string",
      "lastProcessedMessage": "string"
    },
    "writer": {
      "lastFlushSize": 0,
      "lastFlushDelayMs": 0,
      "meanFlushSize": 0,
      "meanFlushDelayMs": 0,
      "maxFlushSize": 0,
      "maxFlushDelayMs": 0,
      "queuedFlushMessages": 0
    },
    "readIndex": {
      "cachedRecord": 0,
      "notCachedRecord": 0,
      "cachedStreamInfo": 0,
      "notCachedStreamInfo": 0,
      "cachedTransInfo": 0,
      "notCachedTransInfo": 0,
      "hashCollisions": 0
    }
  }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

Properties

NameTypeRequiredRestrictionsDescription
procobjectfalsenoneStats on the currently active process
» startTimestringfalsenoneTime the associated process started
» idintegerfalsenoneId of the associated process
» memintegerfalsenoneVirtual memory used by the associated process
» cpunumberfalsenoneCPU usage of the process
» cpuScalednumberfalsenoneCPU usage of the process scaled by logical processor count
» threadsCountintegerfalsenoneNumber of threads used by process
» contentionsRatenumberfalsenoneThe rate at which threads in the process attempt to acquire a managed lock unsuccessfully
» thrownExceptionsRatenumberfalsenoneNumber of exceptions thrown per second
» gcobjectfalsenoneStats on garbage collection
»» allocationSpeednumberfalsenoneMemory allocation speed
»» gen0ItemsCountnumberfalsenoneNumber of generation 0 garbage collections
»» gen0SizenumberfalsenoneGeneration 0 heap size
»» gen1ItemsCountnumberfalsenoneNumber of generation 1 garbage collections
»» gen1SizenumberfalsenoneGeneration 1 heap size
»» gen2ItemsCountnumberfalsenoneNumber of generation 2 garbage collections
»» gen2SizenumberfalsenoneGeneration 2 heap size
»» largeHeapSizenumberfalsenoneLarge object heap size
»» timeInGcnumberfalsenonePercentage of time in garbage collection
»» totalBytesInHeapsnumberfalsenoneTotal bytes in all heaps
» diskIoobjectfalsenoneDisk input and output stats
»» readBytesnumberfalsenoneThe number of bytes read by EventStoreDB since server start
»» writtenBytesnumberfalsenoneThe number of bytes written by EventStoreDB since server start
»» readOpsnumberfalsenoneThe number of read operations by EventStoreDB since server start
»» writeOpsnumberfalsenoneThe number of write operations by EventStoreDB since server start
» tcpobjectfalsenoneTCP connection stats
»» connectionsintegerfalsenoneNumber of TCP connections to EventStoreDB
»» receivingSpeedstringfalsenoneReceiving speed in bytes per second
»» sendingSpeednumberfalsenoneSending speed in bytes per second
»» inSendnumberfalsenoneNumber of bytes sent to connections but not yet acknowledged by the receiving party
»» measureTimenumberfalsenoneTime elapsed since last stats read
»» pendingReceivednumberfalsenoneNumber of bytes waiting to be received by connections
»» pendingSendnumberfalsenoneNumber of bytes waiting to be sent to connections
»» receivedBytesSinceLastRunnumberfalsenoneTotal bytes received by TCP connections since last run
»» receivedBytesTotalnumberfalsenoneTotal bytes received by TCP connections
»» sentBytesSinceLastRunnumberfalsenoneTotal bytes sent to TCP connections since last run
»» sentBytesTotalnumberfalsenoneTotal bytes sent from TCP connections
sysobjectfalsenoneSystem usage stats
» cpunumberfalsenoneTotal CPU usage in percentage
» freeMemnumberfalsenoneFree memory in bytes
» driveobjectfalsenoneDrive usage stats
»» driveNameobjectfalsenoneDrive path
»»» availableBytesnumberfalsenoneRemaining bytes of space available to EventStoreDB
»»» totalBytesnumberfalsenoneTotal bytes of space available to EventStoreDB
»»» usagenumberfalsenonePercentage usage of space used by EventStoreDB
»»» usedBytesnumberfalsenoneTotal bytes of space used by EventStoreDB
esobjectfalsenonenone
» checksumnumberfalsenonenone
» checksumNonFlushednumberfalsenonenone
» queueobjectfalsenoneMultiple queue instance stats
»» queueNamestringfalsenoneQueue name
»» groupNamestringfalsenoneGroup queue is a member of
»» avgItemsPerSecondintegerfalsenoneThe average number of items processed per second by the queue
»» avgProcessingTimenumberfalsenoneAverage number of items processed per second
»» currentIdleTimestringfalsenoneTime elapsed since queue went idle
»» currentItemProcessingTimestringfalsenoneTime elapsed processing the current item
»» idleTimePercentnumberfalsenonePercentage of time queue spent idle
»» lengthintegerfalsenoneNumber of items in the queue
»» lengthCurrentTryPeaknumberfalsenoneThe highest number of items in the queue within the past 100ms
»» lengthLifetimePeaknumberfalsenoneThe highest number of items in the queue
»» totalItemsProcessednumberfalsenoneThe total number of items processed by the queue
»» inProgressMessagestringfalsenoneCurrent message type queue is processing
»» lastProcessedMessagestringfalsenoneLast message type processed
» writerobjectfalsenoneStorage writing stats
»» lastFlushSizenumberfalsenoneLast flush size
»» lastFlushDelayMsnumberfalsenoneLast flush delay in ms
»» meanFlushSizenumberfalsenoneAverage flush size
»» meanFlushDelayMsnumberfalsenoneAverage flush delay in ms
»» maxFlushSizenumberfalsenoneMax flush size
»» maxFlushDelayMsnumberfalsenoneMax flush delay in ms
»» queuedFlushMessagesintegerfalsenoneQueued flush messages
» readIndexobjectfalsenonenone
»» cachedRecordnumberfalsenoneNumber of cached record reads
»» notCachedRecordnumberfalsenoneNumber of uncached record reads
»» cachedStreamInfonumberfalsenonenone
»» notCachedStreamInfonumberfalsenonenone
»» cachedTransInfonumberfalsenonenone
»» notCachedTransInfonumberfalsenonenone
»» hashCollisionsnumberfalsenonenone
Last Updated:
Contributors: Claude Devarenne