Members
Links users to organizations, with their permissions
The member object
Attributes
idread-onlyuuidUnique identifier
external_idstring | number | nullIdentifier of the member in an external system, used to match imported candidates
created_atread-onlytimestamp with time zoneCreation timestamp
updated_attimestamp with time zoneLast modification timestamp
permissionsArray<Permission>Permissions of the member
valuesRecord<string, MemberValue>Values for each of the organization's member_variables, usable in layouts
Related resources
Embed related resources in the response with the select parameter, for example select=*,organizations!organization_id(*). See selecting data. Resources related through more than one column need the column as a hint, like table!column(*).
organizations!organization_id(*)object | nullThe organization referenced by organization_id.
candidates(*)arrayThe candidates referencing this member through candidates.member_id.
{
"id": "00000000-0000-0000-0000-000000000000",
"external_id": "example-id",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-01-01T12:00:00+00:00",
"updated_at": "2026-01-01T12:00:00+00:00",
"permissions": [
"billing",
"edit_candidates",
"edit_layouts",
"settings",
"team",
"view_candidates"
],
"values": {
"first_name": "John",
"last_name": "Doe"
}
}curl "https://api.cv-transformer.com/v1/members?limit=10&select=*,organizations!organization_id(*),user_profiles(*)" \
-H "Authorization: Bearer YOUR_API_KEY"List members
Requiresmembers:read
Filters
idFilter<uuid>Unique identifier
external_idFilter<string | number | null>Identifier of the member in an external system, used to match imported candidates
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
permissionsFilter<Array<Permission>>Permissions of the member
valuesFilter<Record<string, MemberValue>>Values for each of the organization's member_variables, usable in layouts
Responses
200A list of members with the selected columns. The Content-Range header holds the range returned and the total count, like 0-9/42.
206Partial Content
400The request is malformed, for example an unknown column or an invalid filter.
401The API key is missing or invalid.
403The API key doesn't have the scope this request needs.
429The API key made more requests per minute than its rate limit allows. Retry after the number of seconds in the Retry-After header.
message, details and hint, and for database errors a code. See errors.curl "https://api.cv-transformer.com/v1/members?limit=10&select=*" \
-H "Authorization: Bearer YOUR_API_KEY"[
{
"id": "00000000-0000-0000-0000-000000000000",
"external_id": "example-id",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-01-01T12:00:00+00:00",
"updated_at": "2026-01-01T12:00:00+00:00",
"permissions": [
"billing",
"edit_candidates",
"edit_layouts",
"settings",
"team",
"view_candidates"
],
"values": {
"first_name": "John",
"last_name": "Doe"
}
}
]Update members
Requiresmembers:write
Filters
Without filters, this request updates all members the API key has access to. Always filter on at least one column, like id=eq.{id}.
idFilter<uuid>Unique identifier
external_idFilter<string | number | null>Identifier of the member in an external system, used to match imported candidates
created_atFilter<timestamp with time zone>Creation timestamp
updated_atFilter<timestamp with time zone>Last modification timestamp
permissionsFilter<Array<Permission>>Permissions of the member
valuesFilter<Record<string, MemberValue>>Values for each of the organization's member_variables, usable in layouts
Body
Partial<Member>The attributes are listed under the member object. Read-only attributes are set by CV-Transformer and can't be written.
Responses
204Updated. With the header Prefer: return=representation, the response is a 200 whose body holds the updated members with the selected columns.
400The request is malformed, for example an unknown column, an invalid filter or an invalid body.
401The API key is missing or invalid.
403The API key doesn't have the scope this request needs, or no permission for this change, for example when writing rows of another organization.
409The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.
429The API key made more requests per minute than its rate limit allows. Retry after the number of seconds in the Retry-After header.
message, details and hint, and for database errors a code. See errors.curl -X PATCH "https://api.cv-transformer.com/v1/members?id=eq.00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"permissions": [
"billing",
"edit_candidates",
"edit_layouts",
"settings",
"team",
"view_candidates"
]
}'(no content)Invite member
Requiresmembers:write
Invite a member to your organization. The member will receive an email with a link to accept the invitation. The member will have the user role. To make a member admin or superuser use the dashboard.
Body
emailrequiredstringThe email address of the member to invite.
languageLanguageThe language of the member to invite.
namestringThe name of the member to invite.
permissionsArray<Permission>The permissions of the member. Defaults to editing candidates and layouts, and viewing candidates.
silentbooleanWhether to skip the invitation email.
Responses
201The invited member
400The body is invalid: not JSON, a required field is missing or a field has the wrong type or value. The details name each invalid field and why.
401The API key is missing or invalid.
403The API key doesn't have the scope this request needs.
429The API key made more requests per minute than its rate limit allows. Retry after the number of seconds in the Retry-After header.
message, details and hint, and for database errors a code. See errors.curl "https://api.cv-transformer.com/v1/members" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "email": "johndoe@example.com", "name": "John Doe" }'{
"id": "00000000-0000-0000-0000-000000000000",
"external_id": "example-id",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-01-01T12:00:00+00:00",
"updated_at": "2026-01-01T12:00:00+00:00",
"permissions": [
"billing",
"edit_candidates",
"edit_layouts",
"settings",
"team",
"view_candidates"
],
"values": {
"first_name": "John",
"last_name": "Doe"
}
}Revoke member
Requiresmembers:write
Revoke a member from your organization. The member will no longer have access to your organization. Only works for members with the user role. To revoke an admin or superuser members use the dashboard.
Query parameters
idrequireduuidThe identifier of the member to revoke.
Responses
200The deleted member
401The API key is missing or invalid.
403The API key doesn't have the scope this request needs.
404The member doesn't exist in the API key's organization.
429The API key made more requests per minute than its rate limit allows. Retry after the number of seconds in the Retry-After header.
message, details and hint, and for database errors a code. See errors.curl -X DELETE "https://api.cv-transformer.com/v1/members?id=00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY"{
"id": "00000000-0000-0000-0000-000000000000",
"external_id": "example-id",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2026-01-01T12:00:00+00:00",
"updated_at": "2026-01-01T12:00:00+00:00",
"permissions": [
"billing",
"edit_candidates",
"edit_layouts",
"settings",
"team",
"view_candidates"
],
"values": {
"first_name": "John",
"last_name": "Doe"
}
}