Activities HTTP API
The HTTP interface for server activities is an observability feature that shows which high-level processes are currently ongoing in the database system
Introduced in: v3.12.8
The activities API lets you observe which high-level processes are currently running on the server, such as HTTP request handlers, AQL queries, transactions, index creations, and the background consolidation of ArangoSearch index data.
Each activity has a type, creation time, an optional parent to indicate a dependency, and type-specific data. Not all server activity is necessarily reported.
Every server keeps track of its own activities. In a cluster, you can either ask a specific server, or retrieve the activities of all servers at once.
Get the activities (experimental)
Returns the list of activities currently in progress on the server.
Each activity has an identifier, a type (e.g. RestHandler, AqlQuery,
TransactionActivity), a creation time, an optional parent reference,
and a data object. The structure of data depends on the activity type
and may be extended in future versions.
The permissions required to use the endpoint depend on the
--activities.only-superuser-enabled startup option.
By default, administrate access for the _system database is
sufficient. If the startup option is enabled, the endpoint is restricted
to the superuser and you therefore need to authenticate with a token
created from the JWT secret.
200 OK
The list of activities was returned successfully.
activities array of objects
Array of activity objects currently in progress.
data object
Type-specific details for this activity. The shape of this object depends on the activity
typeand is intentionally left flexible so the feature can grow without breaking the API. Do not rely on a fixed schema. See the Activity types for the details.type string
The kind of activity (e.g.
RestHandler,AQLQuery). See the Activity types for the details.Example:
"RestHandler"
Response Body application/json object403 Forbidden
The request is not authorized due to a lack of permissions. The reason depends on the setting of the
--activities.only-superuser-enabledstartup option:false: The endpoint is restricted to admin users but the user account you authenticated with lacks write access to the_systemdatabase.true: The endpoint is restricted to the superuser but you didn’t authenticate with a token created from the JWT secret.
Response Body application/json object404 Not Found
The specified database doesn’t exist, or the user account you authenticate with has no access to this database.
Up to v3.12.10, a lack of database access resulted in an HTTP
401error with theERROR_FORBIDDEN(11) error number instead of an HTTP404error with theERROR_ARANGO_DATABASE_NOT_FOUND(1228) error number.Response Body application/json object
Examples
curl --header 'accept: application/json' --dump - http://localhost:8529/_arango/experimental/_admin/activities
Show output
{
"activities": [
{
"id": 372,
"type": "RestHandler",
"created": "2026-03-26T15:43:56Z",
"data": {
"method": "GET",
"url": "/_admin/activities",
"handler": "ActivityRegistryRestHandler"
}
},
{
"id": 371,
"type": "AqlQuery",
"created": "2026-03-26T15:43:54Z",
"parent": 370,
"data": {
"queryId": 0,
"startTime": 20919.354783951,
"database": "_system",
"user": "",
"queryString": "RETURN SLEEP(@seconds)",
...
}
},
{
"id": 370,
"type": "RestHandler",
"created": "2026-03-26T15:43:54Z",
"data": {
"method": "POST",
"url": "/_api/cursor",
"handler": "RestCursorHandler"
}
}
]
}
Get the activities of all servers (experimental)
Introduced in: v3.12.10
Returns the activities that are currently in progress on every server of a cluster deployment, grouped by server. The Coordinator you call this endpoint on asks all other Coordinators, the DB-Servers, and the Agents for their activities, and adds its own.
You need to call this endpoint on a Coordinator. It is not available on
single servers, which only ever report their own activities via the
GET /_admin/activities endpoint.
The endpoint is useful for activities that only occur on particular servers, like the ArangoSearch consolidation that DB-Servers perform.
The permissions required to use the endpoint depend on the
--activities.only-superuser-enabled startup option.
By default, administrate access for the _system database is
sufficient. If the startup option is enabled, the endpoint is restricted
to the superuser and you therefore need to authenticate with a token
created from the JWT secret.
200 OK
The activities of all servers were returned successfully.
activities_per_server object
An object with the server IDs as the attribute keys (
CRDN-...for Coordinators,PRMR-...for DB-Servers, andAGNT-...for Agents). The attribute value is the array of activity objects of the respective server, using the same format as theGET /_admin/activitiesendpoint.If the activities of a server cannot be retrieved, for instance because the server doesn’t respond in time, the attribute value is an object with a
numberattribute (the ArangoDB error number) and amessageattribute (a descriptive error message) instead.
Response Body application/json object403 Forbidden
The request is not authorized. The possible reasons are the following:
- You called the endpoint on a server other than a Coordinator.
- The
--activities.only-superuser-enabledstartup option isfalseand the user account you authenticated with lacks write access to the_systemdatabase. - The
--activities.only-superuser-enabledstartup option istrueand you didn’t authenticate with a token created from the JWT secret.
Response Body application/json object
Activity types
The data object of an activity holds details that are specific to the activity
type. The following types report such type-specific data.
Some activity types report their data as a flat object with string values
only. Numbers are encoded as strings in these objects, like "job_id": "42".
AqlQuery
Introduced in: v3.12.9
An AQL query that is currently executing.
The data object has the following attributes:
queryId(number): The identifier of the query.startTime(number): The start time of the query as a steady clock value in seconds. This is not a wall-clock timestamp. It is only meaningful for calculating how long the query has been running relative to other steady clock values.database(string): The name of the database the query runs in.user(string): The name of the user who started the query.queryString(string): The AQL query string.options(object): The effective query options, likememoryLimit,maxRuntime,profile, and the optimizer rules.bindParameters(object, optional): The bind parameters of the query. Only reported if the query has bind parameters.plan(object, optional): The execution plan of the query.
In a cluster, queries that a Coordinator distributes to DB-Servers report the following additional attributes. They mirror the internal query setup request:
querySlice(object, optional): The query definition.collections(array, optional): The collections involved in the query.variables(array, optional): The variables of the query.snippets(object, optional): The query snippets to execute.traverserEngines(array, optional): The traversal engines of the query.fastPathLocking(boolean, optional): Whether the fast lock round is used for acquiring the collection locks.
ArangoSearchConsolidation
Introduced in: v3.12.11
A consolidation
of the index segments of an arangosearch View or an inverted index.
Every consolidation is reported as an activity for as long as it runs, from the
point at which the segments to merge have been selected until the merge is
complete. The activities are created by single servers and DB-Servers because
they store and maintain the index data. In a cluster, you therefore need to
either ask the DB-Servers directly using the serverId query parameter, or
retrieve the activities of
all servers at once.
The data object has the following attributes:
segments(array): The index segments that have been selected for the merge. Each element is an object with the following attributes:name(string): The name of the index segment.byteSize(number): The size of the index segment in bytes.docsCount(number): The total number of documents in the index segment, including documents that are marked as deleted.liveDocsCount(number): The number of documents in the index segment that are not marked as deleted.
CreateCollections
Introduced in: v3.12.9
The creation of one or more collections.
The data object has the following attributes:
collectionNames(string): The names of the collections to create, as a comma-separated string.
EnsureIndex
Introduced in: v3.12.9
The creation of an index, as triggered by a user request.
Note that DB-Servers additionally report a
maintenance action of the same name but with a
different data object.
The data object has the following attributes:
collection(string): The name of the collection to create the index for.parameters(string): The index definition as a JSON string.
InternalRequest
Introduced in: v3.12.10
A request that a server sends to another server of the deployment, for instance a Coordinator asking a DB-Server for data.
The data object has the following attributes:
destination(string): The server the request is sent to, either as aserver:<server-id>string or as an endpoint.method(string): The HTTP method of the request, likeGet,Post, orDelete. Note that the values are capitalized.path(string): The path of the endpoint that is called.hasPayload(boolean): Whether the request has a body.options(object): The request options, like thedatabase, thetimeoutin seconds, the queryparameters, and theapiVersion.header(object): The HTTP headers of the request as an object with the header names as attribute keys and the header values as attribute values.retryCount(number, optional): How often the request has been retried.
Maintenance actions
Introduced in: v3.12.9
A cluster maintenance action that a DB-Server executes to bring the local state in line with the plan, like creating a shard or synchronizing a follower.
Unlike the other activity types, the activity type is the name of the
respective action. It can be one of the following:
CreateCollection, CreateDatabase, DropCollection, DropDatabase,
DropIndex, EnsureIndex, ResignShardLeadership, SynchronizeShard,
TakeoverShardLeadership, UpdateCollection, and UpdateReplicatedLog.
The data object has the following attributes:
discriminatoryProperties(object): The properties that identify the action, like thedatabase,collection, andshardit applies to. Two actions with the same discriminatory properties are considered duplicates.nonDiscriminatoryProperties(object): Additional properties of the action that are not used for identifying it.priority(number): The scheduling priority of the action.runEvenIfDuplicate(boolean): Whether the action is executed even if an identical action is already queued or running.
RestHandler
An HTTP request that the server is currently handling.
The data object has the following attributes:
handler(string): The name of the internal request handler, likeRestCursorHandler.url(string): The path of the endpoint that is called, including the query parameters.method(string): The HTTP method of the request, likeGETorPOST.headers(object): The HTTP headers of the request as an object with the header names as attribute keys and the header values as attribute values.connectionInfo(object): Details about the underlying connection, with the following attributes:serverAddress(string): The address the server listens on.serverPort(number): The port the server listens on.clientAddress(string): The address of the client that sent the request.clientPort(number): The port of the client that sent the request.endpoint(string): The endpoint the request was received on.endpointType(string): The domain type of the endpoint. Can beIPV4,IPV6,UNIX,SRV, orUNKNOWN.encryptionType(string): Whether the connection is encrypted. Can beSSLorNONE.
RocksDBCompaction
Introduced in: v3.12.10
A compaction of the underlying RocksDB storage engine.
The data object has the following attributes:
job_id(string): The identifier of the compaction job.column_family(string): The name of the RocksDB column family that is compacted.base_input_level(string): The level the input files are read from.output_level(string): The level the compacted files are written to.input_files(string): The number of files that are compacted.reason(string): What triggered the compaction, likeLevelL0FilesNum.
RocksDBDump
Introduced in: v3.12.9
A dump of collection data via the internal dump API that arangodump uses, for the duration of the dump context.
The data object has the following attributes:
id(string): The identifier of the dump context.user(string): The name of the user who started the dump.database(string): The name of the database the dump is taken from.
RocksDBDumpNext
Introduced in: v3.12.10
The retrieval of a single batch of a running dump.
The data object has the following attributes:
id(string): The identifier of the dump context the batch belongs to.
TransactionActivity
Introduced in: v3.12.9
A transaction that is currently in progress.
The data object has the following attributes:
user(string): The name of the user who started the transaction.database(string): The name of the database the transaction runs in.tid(number): The identifier of the transaction.status(string): The state of the transaction. Can beundefined,created,running,committed, oraborted.collections(array): The collections the transaction uses. Each element is an object with the following attributes:name(string): The name of the collection.cid(number): The identifier of the collection.accessType(string): How the transaction accesses the collection. Can benone,read,write, orexclusive.lockStatus(string): Whether the transaction holds the required lock. Can benot_holding,acquiring,holding, orfailed.
TransactionContext
Introduced in: v3.12.10
The context a transaction runs in. It is created for every operation that needs a transaction, including single-document operations and the transactions that AQL queries use internally.
The data object has the following attributes:
origin(string): A description of what created the transaction, likeexecuting query,inserting document(s), orbuilding index.
