Layers
Partner APIAPI referenceProjects

GET /v1/projects

List projects in your organization with cursor pagination.

View as Markdown
GET/v1/projects
Phase 1stable
Auth
Bearer
Scope
projects:read

Returns the organization's projects in reverse-creation order. One project per end-customer is the recommended model — the partner-supplied customerExternalId is your handle for looking a project up without having to store Layers IDs on your side.

Filter by status, free-text search over project name, or customerExternalId. The list is cursor-paginated; pass the nextCursor from the previous response to page forward.

Query
  • cursor
    stringoptional
    Opaque pagination token from a previous response's nextCursor.
  • limit
    integeroptionaldefault: 25
    Page size, 1–200.
  • status
    stringoptional
    Filter by project status.
    One of: active, archived
  • search
    stringoptional
    Case-insensitive substring match on project name.
  • customerExternalId
    stringoptional
    Return the single project bound to this partner-supplied customer ID.

Example request

curl "https://api.layers.com/v1/projects?limit=25&status=active" \
  -H "Authorization: Bearer lp_live_01HX9Y6K7EJ4T2_4QZpN..."
const { items, nextCursor } = await layers.projects.list({
  limit: 25,
  status: "active",
});
result = layers.projects.list(limit=25, status="active")

Response

200OK
{
  "items": [
    {
      "id": "prj_01HX9Y7K8M2P4RSTUV56789AB",
      "name": "Acme Coffee iOS",
      "status": "active",
      "customerExternalId": "acme-coffee",
      "timezone": "America/Los_Angeles",
      "primaryLanguage": "en",
      "ownerEmail": "growth@gicgrowth.com",
      "createdAt": "2026-04-10T09:14:22Z",
      "updatedAt": "2026-04-15T17:01:09Z"
    }
  ],
  "nextCursor": "eyJvZmZzZXQiOjI1fQ=="
}

Errors

StatusCodeWhen
422VALIDATIONlimit out of range or cursor malformed.
401UNAUTHENTICATEDMissing or invalid key.
403FORBIDDEN_SCOPEKey lacks projects:read.
429RATE_LIMITEDHonor Retry-After.

See also

On this page