---
title: "Search Trusts"
method: POST
path: "/api/v1/search/workload_federation_trusts"
tags: ["Workload Federation"]
---

# Search Trusts

`POST /api/v1/search/workload_federation_trusts`

SearchTrusts searches trusts across all service principals with optional filters.
 Used by the admin providers page to list trusts referencing a provider.

## Request body

- C1ApiWorkloadFederationV1WorkloadFederationServiceSearchTrustsRequest — The WorkloadFederationServiceSearchTrustsRequest message.
  - `pageSize` integer — The pageSize field.
  - `pageToken` string — The pageToken field.
  - `providerId` string — Optional: filter trusts by provider ID.
  - `query` string — Optional: full-text search on trust display name and description.
  - `servicePrincipalId` string — Optional: filter trusts by service principal ID.

## Response `200`

Successful response

- C1ApiWorkloadFederationV1WorkloadFederationServiceSearchTrustsResponse — The WorkloadFederationServiceSearchTrustsResponse message.
  - `list` C1ApiWorkloadFederationV1WorkloadFederationTrust[], nullable — The list field.
    - `allowSourceCidrs` string[], nullable — IP allowlist for token exchange requests matching this trust.
    - `clientId` string — The full client ID of the trust (e.g., "clever-fox-42195@acme.conductorone.com/wfe"). Used as the client_id parameter in RFC 8693 token exchange requests.
    - `conditionExpression` string — CEL expression evaluated against JWT claims. Must return bool. Example: claims.sub.startsWith("repo:acme/infra:") && claims.environment == "production"
    - `createdAt` string, date-time, nullable
    - `description` string — A description of what this trust policy matches.
    - `disabled` boolean — Whether the trust is disabled.
    - `displayName` string — The display name of the trust.
    - `passthroughClaims` string[], nullable — JWT claim names from the subject token to copy into the issued C1 token. Values are placed in the "c1wfc" claim as a map[string]string. Only string-valued claims are copied; non-string claims are silently skipped. Example: ["repository", "repository_owner", "job_workflow_ref"]
    - `providerId` string — The provider ID this trust references. Immutable after creation.
    - `scopedRoleIds` string[], nullable — Scoped role IDs. Effective permissions = min(SP roles, trust.scoped_role_ids).
    - `servicePrincipalId` string — The service principal user ID this trust belongs to.
    - `updatedAt` string, date-time, nullable
  - `nextPageToken` string — The nextPageToken field.

## Changes

- **2026-08-21** `f2cf3228f366` — 2 breaking
  - the response property `list/items/createdAt` became nullable for the status `200`
  - the response property `list/items/updatedAt` became nullable for the status `200`
- **2026-03-10** `7fa698b04b81` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/search/workload_federation_trusts/post.md)

---

[API](https://skmtc.dev/conductorone/apis/c1-api.md) · [All operations](https://skmtc.dev/conductorone/apis/c1-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conductorone/c1-api/revisions/f2cf3228f366/schema)
