Chapter 22. REST API

Table of Contents

22.1. Service root
22.2. Streaming
22.3. Cypher queries
22.4. Property values
22.5. Nodes
22.6. Relationships
22.7. Relationship types
22.8. Node properties
22.9. Relationship properties
22.10. Indexes
22.11. Unique Indexes
22.12. Automatic Indexes
22.13. Configurable Automatic Indexing
22.14. Traversals
22.15. Built-in Graph Algorithms
22.16. Batch operations
22.17. WADL Support
22.18. Gremlin Plugin

The Neo4j REST API is designed with discoverability in mind, so that you can start with a GET on the Section 22.1, “Service root” and from there discover URIs to perform other requests. The examples below uses URIs in the examples; they are subject to change in the future, so for future-proofness discover URIs where possible, instead of relying on the current layout. The default representation is json, both for responses and for data sent with POST/PUT requests.

Below follows a listing of ways to interact with the REST API. For language bindings to the REST API, see Chapter 5, Neo4j Remote Client Libraries.

To interact with the JSON interface you must explicitly set the request header Accept:application/json for those requests that responds with data. You should also set the header Content-Type:application/json if your request sends data, for example when you’re creating a relationship. The examples include the relevant request and response headers.

The server supports streaming results, with better performance and lower memory overhead. See Section 22.2, “Streaming” for more information.