Graphory logo

Graphory Labs

Ingest API

Push data into your graph from any source. One API call turns raw information into structured, queryable knowledge.

Overview

The Ingest API is a universal webhook endpoint. Send data from Zapier, custom scripts, AI agents, or any system that can make HTTP requests. Graphory processes the data, extracts structure, and adds it to your graph.

This is the fastest way to get data in - no OAuth setup, no connector configuration. Just POST and go.

Base URL

API
https://api.graphory.io/ingest

Endpoints

POST /ingest

Send one or more items to be ingested into your graph. Each item becomes a queryable piece of your knowledge base.

Single Item Fields

FieldTypeDescription
entitystringrequiredBusiness entity this data belongs to (e.g. "acme-corp")
sourcestringrequiredWhere the data came from (e.g. "zapier", "custom-script")
titlestringrequiredHuman-readable title for the item
bodystringrequiredThe content or description
typestringoptionalItem type (e.g. "note", "event", "report")
urlstringoptionalSource URL for reference
datestringoptionalDate in YYYY-MM-DD format (defaults to today)
idempotency_keystringoptionalUnique key to prevent duplicate ingestion

Example: Single Item

curl
curl -X POST https://api.graphory.io/ingest \
  -H "Authorization: Bearer gs_ak_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "entity": "acme-corp",
    "source": "sales-bot",
    "title": "New lead: Beta Industries",
    "body": "Spoke with Sarah Chen at Beta Industries. Interested in enterprise plan. Follow up scheduled for next week.",
    "type": "note",
    "date": "2026-04-03"
  }'

Example: Batch

Send multiple items at once using the items array:

curl
curl -X POST https://api.graphory.io/ingest \
  -H "Authorization: Bearer gs_ak_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "entity": "acme-corp",
        "source": "crm-sync",
        "title": "Deal closed: Project Phoenix",
        "body": "Closed $45K deal with Phoenix Corp. 12-month contract starting May 1.",
        "type": "deal"
      },
      {
        "entity": "acme-corp",
        "source": "crm-sync",
        "title": "Meeting notes: Q2 planning",
        "body": "Discussed Q2 targets. Revenue goal: $200K. Key accounts: Phoenix, Omega, Delta.",
        "type": "note"
      }
    ]
  }'

Response

JSON
{
  "status": "ok",
  "ingested": 2,
  "ids": ["ingest_a1b2c3", "ingest_d4e5f6"]
}
GET /ingest/schema

Returns the self-documenting schema for the ingest endpoint. Useful for building integrations programmatically.

Example

curl
curl https://api.graphory.io/ingest/schema \
  -H "Authorization: Bearer gs_ak_your_api_key"

Idempotency

To prevent duplicate ingestion (e.g. if a webhook fires twice), include an idempotency_key with each item. If Graphory has already processed an item with the same key, it will skip it and return success without creating a duplicate.

JSON
{
  "entity": "acme-corp",
  "source": "webhook",
  "title": "Order #12345",
  "body": "New order from customer XYZ",
  "idempotency_key": "order-12345"
}

Use Cases

Zapier / Make.com Webhooks

Set up a Zapier zap that sends data to the Ingest API whenever a trigger fires. For example, "When a new row is added to Google Sheets, POST to Graphory."

Use the entity field to tag which business or project the data belongs to. This keeps your graph organized when you have multiple data streams.

Custom Scripts

Push data from any programming language:

Python
import requests

response = requests.post(
    "https://api.graphory.io/ingest",
    headers={"Authorization": "Bearer gs_ak_your_api_key"},
    json={
        "entity": "acme-corp",
        "source": "inventory-check",
        "title": "Daily inventory snapshot",
        "body": "Warehouse A: 1,200 units. Warehouse B: 850 units. Low stock alert on SKU-4521.",
        "type": "report",
        "date": "2026-04-03"
    }
)
print(response.json())

AI Agent Write-back

Have your AI agents push their findings and summaries back into the graph. This creates a feedback loop where each conversation makes your knowledge base richer.

curl
curl -X POST https://api.graphory.io/ingest \
  -H "Authorization: Bearer gs_ak_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "entity": "acme-corp",
    "source": "ai-analysis",
    "title": "Customer churn risk analysis - Q1 2026",
    "body": "Analysis identified 3 accounts at risk: Delta Corp (no activity in 45 days), Omega Ltd (support tickets up 300%), Zeta Inc (contract expires in 2 weeks, no renewal discussion).",
    "type": "report"
  }'