Chapter 25. REST API

Table of Contents

25.1. Transactional HTTP endpoint
25.2. Service root
25.3. Streaming
25.4. Cypher queries
25.5. Property values
25.6. Nodes
25.7. Relationships
25.8. Relationship types
25.9. Node properties
25.10. Relationship properties
25.11. Node labels
25.12. Indexing
25.13. Traversals
25.14. Built-in Graph Algorithms
25.15. Batch operations
25.16. Legacy indexing
25.17. Unique Indexing
25.18. Legacy Automatic Indexes
25.19. Configurable Legacy Automatic Indexing
25.20. WADL Support

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