How it works

From a spreadsheet to a graph application.

You describe your entities the way you already think about them — one row per entity. Neo Graphs does the rest. Here's the whole format in five minutes, with the sample sheet as your guide.

The input sheet

The Excel workbook has two tabs. The first (Instructions) is a complete, friendly guide to filling it in. The second (Entities) is where you list your model — and it doubles as the ready-to-run sample. You can also skip Excel entirely and POST a JSON model to the API.

The three columns

ColumnWhat goes in it
EntityA singular, PascalCase name — e.g. Employee, EmployeeAsset. Prefix with enum_ to define an enum (e.g. enum_Rating).
FieldsComma-separated type Name pairs, plus relationships (see below). For enums, just list the values.
FeatureThe module/menu this entity belongs to (e.g. HR). Used to group the navigation and the architecture diagrams.

Fields, by example

You writeMeaning
string NameA scalar property. Use any .NET type: string, int, long, bool, decimal, double, DateTime, Guid.
int? RatingNullable — add ? to any value type.
byte[] PhotoBinary (image/document). Handled specially and excluded from the graph node.
Company CompanyA foreign key — a link to another entity. Becomes a HAS_COMPANY relationship in Neo4j.
Employee Employee_ManagerA named link to the same or another entity (here, a self-reference). The suffix becomes the relationship name: HAS_MANAGER.
… |Team,EmployeeA collection: after a single |, list the child entities that reference this one. Generates incoming traversal queries.

Enums

Add a row with the entity name prefixed by enum_ and put the values in the Fields column:

Entity        Fields
enum_Rating   Poor,Fair,Good,Excellent

A complete sample row

Entity      Fields                                                          Feature
Employee    string Code, string Name,
            Department Department, Team Team,
            Employee Employee_Manager, EmployeeType EmployeeType,
            int? Rating, decimal? Salary, DateTime JoinedOn, byte[] Photo   HR

That single row produces a node model, an async repository, REST + MVC controllers, a sync service, seeder wiring, schema constraints, a TypeScript client, diagram nodes, and native-import CSV headers — all consistent with each other.

Generate it

Three entry points, same engine, same run report:

🧪

Sandbox

The fastest look — run the sample and explore the run report in your browser.

Open the sandbox →

🧰

Swagger UI

Upload your sheet or paste a model and try every endpoint interactively.

Open Swagger →

⌨️

API / CI

Script it. Submit a job and poll, or generate synchronously in a single request.

CI/CD guide →

Upload your Excel sheet

curl -F "projectName=MyApp" \
     -F "file=@Sample_InputSheet.xlsx" \
     https://api.neographs.io/api/generate/graph/from-excel \
     -o MyApp-graphdb.zip

Or POST a JSON model

curl -X POST https://api.neographs.io/api/generate/graph \
     -H "Content-Type: application/json" \
     -d '{
       "projectName": "MyApp",
       "entities": [
         { "entity": "Customer", "fields": "string Name, string Email", "feature": "Sales" },
         { "entity": "Order",    "fields": "string Ref, Customer Customer, decimal Total", "feature": "Sales" }
       ]
     }' -o MyApp-graphdb.zip

Large model? Use an async job

# 1. Submit — validates synchronously, then queues generation
POST /api/jobs/graph          → 202 { "id": "abc123", "status": "Queued" }

# 2. Poll until complete (typically <5 seconds for 50 entities)
GET  /api/jobs/{id}           → { "status": "Succeeded", "downloadUrl": "/api/jobs/abc123/download" }

# 3. Download the ZIP
GET  /api/jobs/{id}/download  → MyApp-graphdb.zip  (68+ files)

# 4. View the HTML run report
GET  /api/jobs/{id}/report    → self-contained HTML report

New capabilities

Recent additions to the generation pipeline.

Query generation

Neo Graphs now auto-generates model-aware Cypher queries alongside the graph layer. Two files are added to your output:

Available on Starter plans and above. See plans →

Demo data seeding

The DemoDataSeeder generates 10 realistic rows per entity with typed values (emails get email formats, dates get contextual dates, names get human names, etc.) and creates all relationships respecting FK topology. Use it to:

Available on Pro plans and above.

Neo4j live connectivity

Connect directly to a running Neo4j instance and deploy your generated graph layer live — schema (constraints + indexes), node data (via UNWIND batches of 500), and relationships — all through a circuit breaker that handles connection failures gracefully:

Available on Pro plans and above.

Web generation form

Signed-in users can now generate directly from the browser at /app.html:

Authentication & usage tracking

Sign in with Google to access generation endpoints. Your dashboard shows run history, usage meters, and current plan. Free plan: 3 lifetime runs, max 50 entities/run. View all plans →

Ready to generate?

Run the sample right now, then point Neo Graphs at your own entity model. No signup required to get started.