Neo4j 3.x introduced the concept of user-defined procedures and functions. Those are custom implementations of certain functionality, that can’t be (easily) expressed in Cypher itself. They are implemented in Java and can be easily deployed into your Neo4j instance, and then be called from Cypher directly.
As of 5.0 APOC has been split into separate repositories, one being the main, officially supported, APOC Library. The other belonging to APOC Extended. This documentation handles the extended part of APOC.
There are over 150 different procedures and functions in the Extended APOC library. Their purpose is to increase functionality in areas such as data integration, graph algorithms and data conversion.
Starting from Neo4j 4.1.1, there are two available versions of the APOC library:
- APOC Core
battle hardened procedures and functions that don’t have external dependencies or require configuration. This is also the based of the functionality available in Neo4j AuraDB which lists the available APOC surface in their docs.
- APOC Extended
contains additional procedures and functions, which is available when you self-host the database and add the apoc-extended jar.
A list of functions and procedures in APOC Extended can be found in Procedures & Functions.
Starting from Neo4j 5.0.0, APOC Core and Extended are split into 2 separate repos, with only Core being officially supported by Neo4j.