Skip to main content
· Home·NextAtlas

Developer · GraphQL gateway

Query the CIP graph.

A read-only GraphQL endpoint mirrors the Circularity Intelligence Platform — Communities, Materials, Technologies, Capital, Opportunities. Cookie-session auth shares the web app’s RBAC; anonymous integrators see published, redacted records.

Open GraphiQL playground

Auto-generated from schema introspection

Available queries

communities→ [?!]!
community(id: String!)→ Community
materials→ [?!]!
material(id: String!)→ Material
technologies→ [?!]!
technology(id: String!)→ Technology
capital→ [?!]!
capitalProvider(id: String!)→ CapitalProvider
opportunities→ [?!]!
opportunity(id: String!)→ Opportunity
me→ JSON!

Examples

Copy, paste into the playground, or hit "Run" to execute against the live endpoint.

  • List all opportunities

    The canonical use-case — every funded/proposed initiative across communities, with verification metadata.

    {
      opportunities {
        id
        title
        operator
        status
        deploymentReadiness
        riskLevel
        verification { status confidence }
      }
    }
  • One community + neighbours

    Singleton by id. The `extra` JSON scalar carries provenance, scoring, and links the schema doesn't model explicitly.

    {
      community(id: "aurangabad") {
        id
        name
        country
        region
        opportunityScore
        verification { status source }
        extra
      }
    }
  • Materials catalogue

    Use for downstream resource-price + circularity-index calculations.

    {
      materials {
        id
        name
        category
        subCategory
      }
    }
  • Capital providers

    Anyone with a balance sheet that can fund opportunities. Sensitive LP-disclosure fields are RBAC-redacted for anonymous callers.

    {
      capital {
        id
        name
        type
        country
        ticketSizeUsd
        preferredStage
      }
    }
  • Who am I?

    Probe the active role. Returns `{ role, anonymous, email }`. Use this to drive client-side caching keys.

    {
      me
    }

Types

Every object returned by the API, with its scalar fields. extra is a JSON catch-all for fields not yet promoted to the typed schema — useful for early integrators who need provenance/links.

Community

  • idString!
  • nameString!
  • countryString
  • regionString
  • adminAreaString
  • typeString
  • opportunityScoreFloat
  • verificationVerificationInfo!
  • extraJSON!

VerificationInfo

  • statusString
  • sourceString
  • confidenceFloat
  • verifiedByString
  • verifiedAtString

Material

  • idString!
  • nameString!
  • categoryString
  • subCategoryString
  • verificationVerificationInfo!
  • extraJSON!

Technology

  • idString!
  • nameString!
  • providerString
  • categoryString
  • capexUsdFloat
  • externalUrlString
  • verificationVerificationInfo!
  • extraJSON!

CapitalProvider

  • idString!
  • nameString!
  • typeString
  • countryString
  • ticketSizeUsdFloat
  • preferredStageString
  • verificationVerificationInfo!
  • extraJSON!

Opportunity

  • idString!
  • titleString!
  • descriptionString
  • operatorString
  • statusString
  • deploymentReadinessString
  • riskLevelString
  • verificationVerificationInfo!
  • extraJSON!

Auth & usage notes

Authentication

Same cookie session as the REST API. POST credentials to /api/auth/login and the browser sends the access_token + refresh_token cookies on every subsequent GraphQL request. From server-side integrations, send those cookies in your headers.

RBAC redaction

Sensitive fields (LP disclosures, internal emails, KYC payloads, etc.) are stripped from the extra scalar based on your effective role. Guests see published, redacted records. Admins see everything.

Read-only

The schema exposes only queries — mutations go through the existing REST admin routes (`/api/admin/cip/*`, `/api/admin/granullo/*`). Subscriptions arrive in a later phase once we add a streaming layer.

Stability

Core scalar fields (id, name, country, status, …) are guaranteed stable. extra is best-effort and may add/remove keys without notice. Pin to the typed fields for production integrations.

id="root">