TOOL
Neo4j APOC logo

Neo4j APOC

Neo4j APOC Procedures

APOC ("Awesome Procedures On Cypher") is the standard utility library for the Neo4j graph database, maintained by Neo4j. Neo4j 3.x introduced user-defined procedures and functions — custom routines, written in Java and deployed as a plugin JAR, that expose behaviour which cannot be (easily) expressed in the Cypher query language itself. APOC bundles several hundred such procedures and functions into a single library that is called directly from Cypher, either stand-alone via CALL apoc.some.procedure(...) or embedded inside larger MATCH/CREATE statements. Since the 5.0 release the project is split into APOC Core (450+ broadly used, Neo4j-supported procedures, most also available on the managed Aura service) and a separately governed, community-maintained APOC Extended module for functions with heavier external dependencies or more experimental scope.

The library is not itself a data model or file format; it is glue that operates on Neo4j's labeled property graph (nodes, typed relationships, and properties). Its coverage spans data integration, graph refactoring, batching and periodic execution, path expansion, temporal and text utilities, mathematical helpers, and metadata inspection. In practice APOC is what makes Cypher a viable ETL and scripting environment rather than only a read/write query language.

For the graph-data and format-conversion world, APOC's import/export procedures are the most relevant part. It reads external sources through procedures such as apoc.load.json and apoc.load.xml, and imports and exports whole graphs or Cypher-query results to formats including CSV, JSON, Cypher script, GEXF, and GraphML — the last being the interchange format used by Gephi and Cytoscape, which makes APOC a common bridge between Neo4j and those visualization tools. A key distinction is that "load" streams data into memory for use within the current query, whereas "import" persists it to the store for later Cypher access.

Strengths: it dramatically widens what is achievable in pure Cypher, is officially maintained for the Core set, and is ubiquitous enough that many Neo4j tutorials assume it. Limitations: APOC versions must match the first two components of the Neo4j version, so upgrades require coordinated jar replacement; file-based import/export and certain security-sensitive procedures are disabled by default and must be explicitly allow-listed in configuration; and Extended procedures carry no Neo4j support guarantee. Its conversions are also Neo4j-centric, so it is a database-side utility rather than a general standalone format converter like GraphInOut.

Graph Formats(Input & Output)

Output Formats

Frequently Asked Questions

What graph file formats does Neo4j APOC support?

See the list on this page — it shows every format Neo4j APOC can read, write and display.

How do I import a graph into Neo4j APOC?

Convert your file to a format Neo4j APOC can read, then open it in Neo4j APOC. Use GraphInOut to get a Neo4j APOC-compatible file in seconds.

How do I convert a file so Neo4j APOC can open it?

Use the convert links above — upload or paste your graph, pick a format Neo4j APOC accepts and download the result, right in your browser.