Documentation

    Inzata REST API

    Programmatic access to the Inzata platform that powers SIGNLD.

    The Inzata REST API gives programmatic access to the Inzata platform: projects, file storage, data integration (InFlow), the semantic model, analytical queries, dashboard sharing and export, and AI chat.

    The Inzata web application itself is built on this API, so everything you can do in the UI can also be automated through it.

    AI integration

    Besides the REST API, Inzata/SIGNLD provides an MCP (Model Context Protocol) server, so AI assistants such as ChatGPT and Claude can connect directly to your knowledge graph and data, without custom integration code.

    Base URL

    https://app.inzata.com/api/v1

    All paths below are relative to this base URL. Most resources live under a project:

    /api/v1/projects/{project}/...

    Authentication

    The API uses OAuth 2.0 / OpenID Connect (Auth0).

    MethodHow
    Bearer token (recommended for integrations)Authorization: Bearer <access_token>. The token is issued by https://inzata.auth0.com/ for audience urn:inzata/restapi.
    Browser sessionInteractive login at /auth/login, then a session cookie. Used by the web application.
    WebDAVHTTP Basic authentication with your user id and a project-specific WebDAV token (see Storage).

    API client credentials are available on request.

    Requests are always executed on behalf of a user and respect that user's permissions. A user can only see projects they were invited to. Inside a project they only see objects their roles allow, and row-level data filters always apply.

    Permission levels

    LevelCan do
    Project userRead dashboards, reports and data the roles allow; run queries; use AI chat
    User AdminPlus manage project users and their access
    MD AdminPlus manage the data model, storage, data loads and flows
    AdminFull control of the project (sharing publicly, deleting)

    Request and response formats

    • Request bodies: application/json (recommended), text/yaml, or application/x-www-form-urlencoded.
    • Responses are negotiated through the Accept header, or the ?format= query parameter:
    AcceptResult
    application/jsonJSON (use this for integrations)
    text/yamlYAML
    text/csv, text/tab-separated-valuesTabular results as a file download
    application/pdfPDF (export endpoints)
    text/htmlHuman-readable, browsable API pages

    Tip

    Always send Accept: application/json. Without it the API returns HTML, which is meant for browsing.

    Self-describing API

    The API is hypermedia-driven. Responses contain a link array pointing to related resources:

    JSON

    {
      "link": [
        { "href": "https://app.inzata.com/api/v1/projects/sales/pmd/obj/rev_total", "id": "rev_total", "title": "Total Revenue", "rel": "object.metric" }
      ]
    }

    Open /api/v1 in a browser to explore all available resources and their descriptions interactively.

    Asynchronous jobs

    Long-running operations, such as data loads, flow runs, query computation and AI answers, run asynchronously. The call that starts one returns a link with rel: "scache":

    JSON

    { "link": [ { "rel": "scache", "id": "I_42_a1b2c3", "href": ".../kodiak/scache/obj/I_42_a1b2c3" } ] }

    Poll that link until status is final:

    GET /api/v1/projects/{project}/kodiak/scache/obj/{jobId}
    statusMeaning
    PREPARED, EXPANDING, RUNNINGIn progress, poll again
    OKFinished successfully
    ERRORFailed, see message
    CANCELLEDStopped

    Errors

    Errors use standard HTTP status codes with a JSON body:

    JSON

    { "statusCode": 400, "message": "Primary key must be an attribute", "context": {}, "errorId": "..." }
    CodeMeaning
    400Invalid request
    401Not authenticated, or no access to the project
    402Plan limit exceeded (storage size, AI messages per day, ...)
    403Insufficient permission, or the project is under maintenance
    404Resource not found
    405Method not allowed on this resource
    409Conflict (already exists, already running, ...)

    Quick start (curl)

    BASH

    BASE=https://app.inzata.com/api/v1
    AUTH="Authorization: Bearer $TOKEN"
    JSON="Accept: application/json"
    
    # 1. Find your project
    curl -s -H "$AUTH" -H "$JSON" $BASE/projects
    
    # 2. Upload a CSV over WebDAV
    curl -u "$USER:$WEBDAV_TOKEN" -T orders.csv $BASE/projects/$P/webdav/imports/orders.csv
    
    # 3. Run the import flow
    curl -s -H "$AUTH" -H "$JSON" -H "Content-Type: application/json" \
         -d '{"type":"flow","id":"orders_import"}' \
         $BASE/projects/$P/kodiak/transform/execute
    
    # 4. Query the result
    curl -s -H "$AUTH" -H "$JSON" -H "Content-Type: application/json" \
         -d '{"aql":"SUM([amount]) DICE [region]"}' \
         $BASE/projects/$P/app/aql/execute

    Further reading

    Was this helpful?

    Contact support