---
title: "Search organization members using reusable filters"
method: POST
path: "/api/organizations/{id}/memberships/search"
tags: ["Organizations"]
---

# Search organization members using reusable filters

`POST /api/organizations/{id}/memberships/search`

POST transport for the versioned organization-member filter payload.

## Path parameters

- `id` integer, required

## Request body

- OrganizationMemberFilterRequestRequest — Versioned, transport-neutral reusable organization-member filter payload.
  - `filters` unknown, required

## Response `200`

- LseOrganizationMemberList — A serializer mixin that takes an additional `fields` argument that controls which fields should be displayed.
  - `concurrency` object, nullable, required
  - `contributed_to_projects` object[], nullable, required
    - `id` integer, required
    - `title` string, required
  - `created_projects` object[], nullable, required
    - `id` integer, required
    - `title` string, required
  - `flex` object, nullable, required — Per-member Flex claim/window state for Members UI (FIT-2339).
  - `id` integer, required
  - `organization` integer, required — Organization ID
  - `role` 'OW' | 'AD' | 'MA' | 'RE' | 'AN' | 'DI' | 'NO' | 'VO', required — * `OW` - Owner * `AD` - Administrator * `MA` - Manager * `RE` - Reviewer * `AN` - Annotator * `DI` - Deactivated * `NO` - Not Activated * `VO` - View Only
  - `role_source` 'manual' | 'saml' | 'scim' | 'ldap' | 'api' | 'billing', required — * `manual` - Manual * `saml` - SAML * `scim` - SCIM * `ldap` - LDAP * `api` - API * `billing` - Billing
  - `tags` SimpleOrganizationMemberTag[], required
    - `id` integer, required
    - `label` string, required
  - `user` LseUserOrganizationMemberList, required — A ModelSerializer that takes additional arguments for "fields", "omit" and "expand" in order to control which fields are displayed, and whether to replace simple values with complex, nested serializations
    - `active_organization` integer, nullable
    - `allow_newsletters` boolean, nullable — Allow sending newsletters to user
    - `avatar` string, nullable, required
    - `contributed_to_projects` object[], nullable, required
      - `id` integer, required
      - `title` string, required
    - `created_projects` object[], nullable, required
      - `id` integer, required
      - `title` string, required
    - `custom_hotkeys` unknown
    - `date_joined` string, date-time
    - `email` string, email
    - `first_name` string
    - `id` integer, required
    - `initials` string, required
    - `last_activity` string, date-time, nullable, required
    - `last_name` string
    - `lse_fields` LseFields, required
      - `email_notification_settings` object, required — Get email notification settings with organization-level filtering. Use the model's getter method to ensure all notification types are included with proper defaults for any missing types. Transform the output to include both value and label for each notification type. Filter notifications based on organization's allowed notifications if user belongs to exactly one organization. Role-based filtering: not_activated_user_login is only available to users who are admins or owners in at least one organization.
      - `invite_activated` boolean, nullable
      - `invite_expired` boolean, nullable, required
      - `invite_expired_at` string, date-time, nullable, required
      - `invited_at` string, date-time, nullable
      - `invited_by` integer, nullable
      - `onboarding_state` 'not_started' | 'signup' | 'trial_signup' | 'first_tutorial' | 'in_app_guidance' | 'complete' — * `not_started` - Not Started * `signup` - Signup * `trial_signup` - Trial Signup * `first_tutorial` - First Tutorial * `in_app_guidance` - In App Guidance * `complete` - Complete
      - `social_auth_finished` boolean, nullable — Is user finished social authentication
      - `trial_company` string, nullable
      - `trial_experience_labeling` string, nullable
      - `trial_license_enterprise` boolean, nullable
      - `trial_models_in_production` string, nullable
      - `trial_role` 'annotator' | 'annotator_team_manager' | 'business_analyst' | 'business_or_data_team_leadership' | 'data_engineer_platform_engineer' | 'data_scientist' | 'other' — * `annotator` - Annotator * `annotator_team_manager` - Annotator Team Manager * `business_analyst` - Business Analyst * `business_or_data_team_leadership` - Business Or Data Team Leadership * `data_engineer_platform_engineer` - Data Engineer Platform Engineer * `data_scientist` - Data Scientist * `other` - Other
    - `pause` object, nullable, required
    - `phone` string
    - `username` string, required
  - `user_type` string, nullable, required

## Changes

> 122 revisions in range; 1 not diffed.

- **2026-09-16** `bd1d84db7b4d` — 1 breaking
  - the response property `user/last_activity` became nullable for the status `200`
- **2026-09-09** `ed422632e928` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/humansignal/apis/label-studio-api/changes/api/organizations/:id/memberships/search/post.md)

---

[API](https://skmtc.dev/humansignal/apis/label-studio-api.md) · [All operations](https://skmtc.dev/humansignal/apis/label-studio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/humansignal/apis/label-studio-api/revisions/6ff66eb62454?raw)
