ArangoDB v2.8 reached End of Life (EOL) and is no longer supported.

This documentation is outdated. Please see the most recent version here: Try latest

HTTP tasks Interface

Following you have ArangoDB’s HTTP Interface for Tasks.

There are also some examples provided for every API action.

Fetch all tasks or one task

Retrieves all currently active server tasks

GET /_api/tasks/

fetches all existing tasks on the server
Return codes

  • 200: The list of tasks

Examples
Fetching all tasks

shell> curl --dump - http://localhost:8529/_api/tasks

HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

[ 
  { 
    "id" : "15419521", 
    "name" : "user-defined task", 
    "type" : "periodic", 
    "period" : 1, 
    "created" : 1468399055.339724, 
    "command" : "(function () {\n      require('org/arangodb/foxx/queues/manager').manage();\n    })(params)", 
    "database" : "_system" 
  }, 
  { 
    "id" : "statistics-gc", 
    "name" : "statistics-gc", 
    "type" : "periodic", 
    "period" : 450, 
    "created" : 1468399055.242014, 
    "command" : "require('org/arangodb/statistics').garbageCollector();", 
    "database" : "_system" 
  }, 
  { 
    "id" : "statistics-collector", 
    "name" : "statistics-collector", 
    "type" : "periodic", 
    "period" : 10, 
    "created" : 1468399055.241592, 
    "command" : "require('org/arangodb/statistics').historian();", 
    "database" : "_system" 
  }, 
  { 
    "id" : "statistics-average-collector", 
    "name" : "statistics-average-collector", 
    "type" : "periodic", 
    "period" : 900, 
    "created" : 1468399055.241669, 
    "command" : "require('org/arangodb/statistics').historianAverage();", 
    "database" : "_system" 
  } 
]

Fetch one task with id

Retrieves one currently active server task

GET /_api/tasks/{id}

Path Parameters

  • id (required): The id of the task to fetch.
    fetches one existing tasks on the server specified by id
    Return codes

  • 200: The requested task

Examples
Fetching a single task by its id

shell> curl --dump - http://localhost:8529/_api/tasks/statistics-average-collector

HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

show response body


trying to fetch a non-existing task

shell> curl --dump - http://localhost:8529/_api/tasks/non-existing-task

HTTP/1.1 404 Not Found
content-type: application/json; charset=utf-8

show response body

creates a task

creates a new task

POST /_api/tasks

A JSON object with these properties is required:

  • name: The name of the task

  • command: The JavaScript code to be executed

  • params: The parameters to be passed into command

  • period: number of seconds between the executions

  • offset: Number of seconds initial delay

creates a new task with a generated id

Return codes

  • 400: If the post body is not accurate, a HTTP 400 is returned.

Examples

shell> curl -X POST --data-binary @- --dump - http://localhost:8529/_api/tasks/ <<EOF
{ 
  "name" : "SampleTask", 
  "command" : "(function(params) { require('internal').print(params); })(params)", 
  "params" : { 
    "foo" : "bar", 
    "bar" : "foo" 
  }, 
  "period" : 2 
}
EOF

HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

show response body

creates a task with id

registers a new task with a pre-defined id

PUT /_api/tasks/{id}

Path Parameters

  • id (required): The id of the task to create
    A JSON object with these properties is required:

  • name: The name of the task

  • command: The JavaScript code to be executed

  • params: The parameters to be passed into command

  • period: number of seconds between the executions

  • offset: Number of seconds initial delay

registers a new task with the specified id

Return codes

  • 400: If the task id already exists or the rest body is not accurate, HTTP 400 is returned.

Examples

shell> curl -X PUT --data-binary @- --dump - http://localhost:8529/_api/tasks/sampleTask <<EOF
{ 
  "id" : "SampleTask", 
  "name" : "SampleTask", 
  "command" : "(function(params) { require('internal').print(params); })(params)", 
  "params" : { 
    "foo" : "bar", 
    "bar" : "foo" 
  }, 
  "period" : 2 
}
EOF

HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

show response body

deletes the task with id

deletes one currently active server task

DELETE /_api/tasks/{id}

Path Parameters

  • id (required): The id of the task to delete.
    Deletes the task identified by id on the server.

    Return codes

  • 404: If the task id is unknown, then an HTTP 404 is returned.

Examples
trying to delete non existing task

shell> curl -X DELETE --dump - http://localhost:8529/_api/tasks/NoTaskWithThatName

HTTP/1.1 404 Not Found
content-type: application/json; charset=utf-8

show response body


Remove existing Task

shell> curl -X DELETE --dump - http://localhost:8529/_api/tasks/SampleTask

HTTP/1.1 200 OK
content-type: application/json; charset=utf-8

{ 
  "error" : false, 
  "code" : 200 
}