Working with Edges using REST

This is documentation to ArangoDB's REST interface for edges.

Edges are documents with two additional attributes: _from and _to. These attributes are mandatory and must contain the document-handle of the from and to vertices of an edge.

Use the general document REST api for create/read/update/delete.

Read in- or outbound edges

get edges

GET /_api/edges/{collection-id}

Path Parameters

  • collection-id (required): The id of the collection.

Query Parameters

  • vertex (required): The id of the start vertex.
  • direction (optional): Selects in or out direction for edges. If not set, any edges are returned.

Returns an array of edges starting or ending in the vertex identified by vertex-handle.

Example:

Any direction

shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1

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

{ 
  "edges" : [ 
    { 
      "_key" : "6", 
      "_id" : "edges/6", 
      "_from" : "vertices/2", 
      "_to" : "vertices/1", 
      "_rev" : "_VTxTB4m--D", 
      "$label" : "v2 -> v1" 
    }, 
    { 
      "_key" : "7", 
      "_id" : "edges/7", 
      "_from" : "vertices/4", 
      "_to" : "vertices/1", 
      "_rev" : "_VTxTB4q---", 
      "$label" : "v4 -> v1" 
    }, 
    { 
      "_key" : "5", 
      "_id" : "edges/5", 
      "_from" : "vertices/1", 
      "_to" : "vertices/3", 
      "_rev" : "_VTxTB4m--C", 
      "$label" : "v1 -> v3" 
    } 
  ], 
  "error" : false, 
  "code" : 200, 
  "stats" : { 
    "scannedIndex" : 3, 
    "filtered" : 0 
  } 
}

Example:

In edges

shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in

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

{ 
  "edges" : [ 
    { 
      "_key" : "6", 
      "_id" : "edges/6", 
      "_from" : "vertices/2", 
      "_to" : "vertices/1", 
      "_rev" : "_VTxTB8y---", 
      "$label" : "v2 -> v1" 
    }, 
    { 
      "_key" : "7", 
      "_id" : "edges/7", 
      "_from" : "vertices/4", 
      "_to" : "vertices/1", 
      "_rev" : "_VTxTB8y--_", 
      "$label" : "v4 -> v1" 
    } 
  ], 
  "error" : false, 
  "code" : 200, 
  "stats" : { 
    "scannedIndex" : 2, 
    "filtered" : 0 
  } 
}

Example:

Out edges

shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out

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

{ 
  "edges" : [ 
    { 
      "_key" : "5", 
      "_id" : "edges/5", 
      "_from" : "vertices/1", 
      "_to" : "vertices/3", 
      "_rev" : "_VTxTCAW---", 
      "$label" : "v1 -> v3" 
    } 
  ], 
  "error" : false, 
  "code" : 200, 
  "stats" : { 
    "scannedIndex" : 1, 
    "filtered" : 0 
  } 
}

Return Codes

  • 200: is returned if the edge collection was found and edges were retrieved.
  • 400: is returned if the request contains invalid parameters.
  • 404: is returned if the edge collection was not found.

Examples

Any direction

shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1

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

show response body

In edges

shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in

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

show response body

Out edges

shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out

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

show response body