Introduction

The HTTP API is currently not available on Neo4j Aura.

The Neo4j HTTP API allows to execute a series of Cypher statements against a Neo4j server through HTTP requests.

The main use case of the HTTP API is for developing client applications in languages for which there is no supported library. If there exists an official library (driver) for the language you are using, consider using that instead — see Create applications.

This guide assumes that you have:

To execute queries through the HTTP API, you may use either:

  • Implicit transactions — you just submit queries, the API takes care of the transaction handling for you

  • Explicit transactions — you control the lifecycle of the transaction (open, commit, rollback), within which you can execute queries.

By default, the HTTP API uses port 7474 for HTTP and port 7473 for HTTPS.
As of Neo4j 5.17, the HTTP API supports HTTP/2 as well as HTTP/1.1, unless either is explicitly disabled in the server configuration setting server.http_enabled_transports. It’s up to the client to initiate a connection with the preferred protocol.

Glossary

Cypher

Cypher is Neo4j’s graph query language that lets you retrieve data from the database. It is like SQL, but for graphs.

ACID

Atomicity, Consistency, Isolation, Durability (ACID) are properties guaranteeing that database transactions are processed reliably. An ACID-compliant DBMS ensures that the data in the database remains accurate and consistent despite failures.

causal consistency

A database is causally consistent if read and write queries are seen by every member of the cluster in the same order. This is stronger than eventual consistency.

transaction

A transaction is a unit of work that is either committed in its entirety or rolled back on failure. An example is a bank transfer: it involves multiple steps, but they must all succeed or be reverted, to avoid money being subtracted from one account but not added to the other.