> For the complete documentation index, see [llms.txt](https://docs.creditcoop.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.creditcoop.xyz/developer-api-docs/users.md).

# Users

User profile and settings management

## Check user verification status

> Check if the authenticated user is verified (via KYC, legacy onboarding, KYB organization membership, or legacy KYB)

```json
{"openapi":"3.0.3","info":{"title":"Credit Coop API","version":"3.0.0"},"tags":[{"name":"Users","description":"User profile and settings management"}],"servers":[{"url":"https://api.creditcoop.xyz"}],"security":[{"BearerAuth":[]},{"OAuth2":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Clerk authentication token (session JWT or Clerk OAuth access token) used by Credit Coop"},"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://clerk.creditcoop.xyz/oauth/authorize","tokenUrl":"https://clerk.creditcoop.xyz/oauth/token","scopes":{"openid":"OpenID Connect","email":"User email","profile":"User profile"}}},"description":"Credit Coop OAuth"}},"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer"}}}}},"paths":{"/v3/users/me/verified":{"get":{"operationId":"checkUserVerification","summary":"Check user verification status","tags":["Users"],"description":"Check if the authenticated user is verified (via KYC, legacy onboarding, KYB organization membership, or legacy KYB)","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["verified"],"properties":{"verified":{"type":"boolean","description":"Whether the user is verified through KYC, legacy onboarding, or membership in a KYB-verified or legacy KYB organization"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Record biometric consent

> Record biometric consent for the authenticated user

```json
{"openapi":"3.0.3","info":{"title":"Credit Coop API","version":"3.0.0"},"tags":[{"name":"Users","description":"User profile and settings management"}],"servers":[{"url":"https://api.creditcoop.xyz"}],"security":[{"BearerAuth":[]},{"OAuth2":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Clerk authentication token (session JWT or Clerk OAuth access token) used by Credit Coop"},"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://clerk.creditcoop.xyz/oauth/authorize","tokenUrl":"https://clerk.creditcoop.xyz/oauth/token","scopes":{"openid":"OpenID Connect","email":"User email","profile":"User profile"}}},"description":"Credit Coop OAuth"}},"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer"}}}}},"paths":{"/v3/users/me/consent":{"post":{"operationId":"recordBiometricConsent","summary":"Record biometric consent","tags":["Users"],"description":"Record biometric consent for the authenticated user","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["biometricConsentGiven","biometricConsentVersion"],"properties":{"biometricConsentGiven":{"type":"boolean","description":"Whether the user has given biometric consent"},"biometricConsentVersion":{"type":"string","description":"Version of the biometric consent accepted"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["success","message","user"],"properties":{"success":{"type":"boolean"},"message":{"type":"string"},"user":{"type":"object","required":["id","email","createdAt","updatedAt"],"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"metadata":{"type":"object","nullable":true,"additionalProperties":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## List user's organizations

> List all organizations the authenticated user is a member of. Returns organizations, per-org functional access roles ("borrower", "vault-curator"), and a top-level union of all functional roles. Not all members receive functional roles; members without any will have an empty roles array for that org.

```json
{"openapi":"3.0.3","info":{"title":"Credit Coop API","version":"3.0.0"},"tags":[{"name":"Users","description":"User profile and settings management"}],"servers":[{"url":"https://api.creditcoop.xyz"}],"security":[{"BearerAuth":[]},{"OAuth2":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Clerk authentication token (session JWT or Clerk OAuth access token) used by Credit Coop"},"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://clerk.creditcoop.xyz/oauth/authorize","tokenUrl":"https://clerk.creditcoop.xyz/oauth/token","scopes":{"openid":"OpenID Connect","email":"User email","profile":"User profile"}}},"description":"Credit Coop OAuth"}},"schemas":{"Organization":{"type":"object","required":["id","name","slug"],"properties":{"id":{"type":"string","format":"uuid","description":"Organization unique identifier"},"name":{"type":"string","maxLength":255,"description":"Organization display name"},"slug":{"type":"string","maxLength":100,"description":"URL-friendly identifier"},"header":{"type":"string","nullable":true,"description":"Short tagline or headline for the organization profile"},"description":{"type":"string","nullable":true,"description":"Brief summary of the organization"},"overview":{"type":"string","nullable":true,"description":"Long-form organization description (may contain Markdown)"},"links":{"type":"array","description":"Organization links and image assets. Labels starting with \"#\" are image assets (e.g. \"#logo\", \"#header\"); all others are external links (e.g. \"Twitter\", \"Website\").","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","format":"uuid","description":"Link unique identifier"},"label":{"type":"string","description":"Link type. \"#logo\" and \"#header\" denote image assets; other values (e.g. \"Twitter\", \"Website\") denote external links."},"linkText":{"type":"string","nullable":true,"description":"Display text for external links (e.g. \"@raincards\", \"rain.xyz\")"},"iconUrl":{"type":"string","nullable":true,"description":"Icon image URL for external links"},"url":{"type":"string","description":"Target URL (image URL for asset links, destination URL for external links)"}}}}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer"}}}}},"paths":{"/v3/users/me/organizations":{"get":{"operationId":"listMyOrganizations","summary":"List user's organizations","tags":["Users"],"description":"List all organizations the authenticated user is a member of. Returns organizations, per-org functional access roles (\"borrower\", \"vault-curator\"), and a top-level union of all functional roles. Not all members receive functional roles; members without any will have an empty roles array for that org.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["organizations","organizationAccessById","roles"],"properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"organizationAccessById":{"type":"object","additionalProperties":{"type":"object","required":["roles"],"properties":{"roles":{"type":"array","items":{"type":"string","enum":["borrower","vault-curator","vault-depositor-manager"]},"description":"Functional access roles for this organization. \"borrower\": member of a borrower org. \"vault-curator\": member of a vault curator org. \"vault-depositor-manager\": admin of a vault curator org. Not all members receive functional roles."}}},"description":"Map of organizationId to functional access roles."},"roles":{"type":"array","items":{"type":"string","enum":["borrower","vault-curator","vault-depositor-manager"]},"description":"Union of all functional roles the user has across all organizations."}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## List KYB-eligible organizations

> List organizations where the authenticated user is an admin with KYB eligibility status. Returns simplified organization data: name, slug, and kybEligible flag.

```json
{"openapi":"3.0.3","info":{"title":"Credit Coop API","version":"3.0.0"},"tags":[{"name":"Users","description":"User profile and settings management"}],"servers":[{"url":"https://api.creditcoop.xyz"}],"security":[{"BearerAuth":[]},{"OAuth2":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Clerk authentication token (session JWT or Clerk OAuth access token) used by Credit Coop"},"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://clerk.creditcoop.xyz/oauth/authorize","tokenUrl":"https://clerk.creditcoop.xyz/oauth/token","scopes":{"openid":"OpenID Connect","email":"User email","profile":"User profile"}}},"description":"Credit Coop OAuth"}},"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer"}}}}},"paths":{"/v3/users/me/organizations/kyb-eligible":{"get":{"operationId":"listKybEligibleOrganizations","summary":"List KYB-eligible organizations","tags":["Users"],"description":"List organizations where the authenticated user is an admin with KYB eligibility status. Returns simplified organization data: name, slug, and kybEligible flag.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","required":["organizations"],"properties":{"organizations":{"type":"array","items":{"type":"object","required":["name","slug","kybEligible"],"properties":{"name":{"type":"string","maxLength":255},"slug":{"type":"string","maxLength":100},"kybEligible":{"type":"boolean","description":"Whether the organization is eligible for KYB verification (true if user is admin and org is NOT yet verified)"}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.creditcoop.xyz/developer-api-docs/users.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
