communities→ [?!]!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.
Auto-generated from schema introspection
Available queries
community(id: String!)→ Communitymaterials→ [?!]!material(id: String!)→ Materialtechnologies→ [?!]!technology(id: String!)→ Technologycapital→ [?!]!capitalProvider(id: String!)→ CapitalProvideropportunities→ [?!]!opportunity(id: String!)→ Opportunityme→ 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.

