Chapter 23. REST API

Table of Contents

23.1. Transactional HTTP endpoint
23.2. Service root
23.3. Streaming
23.4. Cypher queries
23.5. Property values
23.6. Nodes
23.7. Relationships
23.8. Relationship types
23.9. Node properties
23.10. Relationship properties
23.11. Node labels
23.12. Indexing
23.13. Traversals
23.14. Built-in Graph Algorithms
23.15. Batch operations
23.16. Legacy indexing
23.17. Unique Indexing
23.18. Legacy Automatic Indexes
23.19. Configurable Legacy Automatic Indexing
23.20. WADL Support

The Neo4j REST API is designed with discoverability in mind, so that you can start with a GET on the Section 23.2, “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 23.3, “Streaming” for more information.