List materials
Search and list materials in the Circa library.
GET
/public/materialsQuery parameters
| Parameter | Type | Description |
|---|---|---|
| search | string | Case-insensitive substring match on material name. |
| limit | integerdefault: 25 | Number of records to return. 1–100. |
| offset | integerdefault: 0 | Records to skip. |
| pulled | booleandefault: false | When true, restrict to materials whose properties the active team has pulled. Each returned material's propertiesincludes the revealed values for the rows you've paid for; rows you haven't paid for stay masked (value: null). |
Response
Each material includes the same columns shown in the library table on app.circa.ai — inputTo / outputOf (the processes this material participates in) and the per-property rows. For each property, revealed tells you whether your team has paid for that specific row.
200OK
{
"items": [
{
"id": "m_8c2…",
"name": "Polyethylene, high density, granulate",
"source": "Ecoinvent 3.10",
"sourceOrganization": "ecoinvent",
"functionalUnit": "kg",
"compartment": "Production",
"regionalScopes": "GLO, RoW",
"datePublished": "2024-09-01",
"revealed": false,
"deleted": false,
"isFavorite": false,
"inputTo": [
"market for trimethyl borate (GLO)",
"Sang test (RU)"
],
"outputOf": [
"Ready Mix, L631L603 Production",
"Ready Mix, Mix 508108 Production"
],
"properties": [
{
"id": "55ada…",
"name": "carbon content",
"value": null,
"unit": "kg",
"revealed": false,
"deleted": false,
"revealType": null
}
]
}
],
"total": 12453,
"hasMore": true
}Notable fields
inputTo/outputOf— names of processes that consume this material as an input or produce it as an output. Same columns you see in the library table at app.circa.ai.regionalScopes— comma-joined list of regions the material is sourced from (e.g."GLO, RoW").properties[].revealed—trueif the active team has pulled this property. Whenfalse, the numericvalueisnull. Purchase access via POST /materials/:id/properties/pull with the property'sid.isFavorite—trueif the requesting user has favorited this material on the active team.deleted— alwaysfalseon the public API; soft-deleted records are filtered out at the gateway.
Example
curl -s 'https://api.circa.ai/public/materials?search=polyethylene&limit=10' \
-H 'x-api-key: circa_live_xxx' \
-H 'x-team-id: TEAM_ID_FROM_OVERVIEW' \
-H 'Circa-Version: 2026-05-11.arrakis'Owned-only listing
To list only the materials your team has at least one revealed property on, add ?pulled=true:
curl -s 'https://api.circa.ai/public/materials?pulled=true&limit=100' \
-H 'x-api-key: circa_live_xxx' \
-H 'x-team-id: TEAM_ID_FROM_OVERVIEW' \
-H 'Circa-Version: 2026-05-11.arrakis'