{"openapi":"3.1.1","info":{"title":"Members","description":"Productboard API v2 for managing workspace members and their team memberships. Use these endpoints to list and get members, filter by role, and browse their team assignments.","version":"2.0.0","contact":{"name":"Productboard Support","url":"https://support.productboard.com","email":"support@productboard.com"},"license":{"name":"Productboard Proprietary","url":"https://www.productboard.com/"}},"servers":[{"url":"https://api.productboard.com/v2","description":"Production server"}],"security":[{"BearerAuth":[]},{"OAuth2":["entities:read","write:entities","entities:delete"]}],"tags":[{"name":"members","description":"Operations related to workspace members."}],"paths":{"/members":{"get":{"tags":["members"],"summary":"List members","description":"Retrieves a paginated list of members from your workspace.\nMembers represent users who have access to your Productboard workspace.\n\n- Members are sorted by creation date, oldest first.\n- Use the `query` parameter to search by name or email (case-insensitive, partial match).\n- Use the `roles[]` parameter to filter by role(s). Multiple roles use OR logic (e.g., `roles[]=admin&roles[]=maker`).\n- Use the `includeDisabled` parameter to include disabled members in the response.\n- Use the `includeInvited` parameter to include invited members with pending invitations.\n- Use the `pageCursor` parameter to paginate through results.\n\n> Without the `members:pii:read` OAuth scope, PII fields (`name`, `username`, `email`) are returned as `[redacted]`.\n","operationId":"listMembers","security":[{"BearerAuth":["members:read"]}],"parameters":[{"name":"pageCursor","in":"query","description":"Cursor for pagination.","required":false,"schema":{"type":"string"}},{"name":"query","in":"query","description":"Full-text search query. Performs case-insensitive partial match on member name or email.\n","required":false,"schema":{"type":"string","minLength":1,"maxLength":255},"example":"john"},{"name":"roles[]","in":"query","description":"Filter members by role(s). Use multiple `roles[]` parameters to match members\nwith any of the specified roles (OR logic).\n\nExamples:\n- Single role: `roles[]=admin`\n- Multiple roles: `roles[]=admin&roles[]=maker`\n","required":false,"schema":{"type":"array","items":{"type":"string","enum":["admin","maker","viewer","contributor"]}},"style":"form","explode":true,"examples":{"single_role":{"summary":"Filter by single role","value":["admin"]},"multiple_roles":{"summary":"Filter by multiple roles (OR logic)","value":["admin","maker"]}}},{"name":"includeDisabled","in":"query","description":"Include disabled members in the response. By default, disabled members are excluded.\n","required":false,"schema":{"type":"boolean","default":false},"example":true},{"name":"includeInvitationPending","in":"query","description":"Include members with pending invitations in the response. By default, members with pending invitations are excluded.\n","required":false,"schema":{"type":"boolean","default":false},"example":true},{"name":"includeInvited","in":"query","deprecated":true,"description":"**Deprecated**: Use `includeInvitationPending` instead.\nInclude members with pending invitations in the response. By default, members with pending invitations are excluded.\n","required":false,"schema":{"type":"boolean","default":false},"example":true}],"responses":{"200":{"$ref":"#/components/responses/MemberListResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"408":{"$ref":"#/components/responses/RequestTimeoutResponse"},"429":{"$ref":"#/components/responses/TooManyRequestsResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/members/search":{"post":{"tags":["members"],"summary":"Search members","description":"## Purpose\nPerforms a filtered search over members using a POST request body.\nSupports batch lookups by IDs or emails, plus all filters from GET /v2/members.\n\nUses `filter`, `search`, and `return` objects under `data`.\n\n## Key Features\n- `filter.id`: Filter by member UUIDs (OR logic, max 100)\n- `filter.fields.email`: Filter by email addresses (OR logic, max 100, requires `members_pii:read` scope)\n- `filter.fields.role`: Filter by roles (OR logic)\n- `filter.fields.disabled`: Exclusive filter for disabled members (true = only disabled)\n- `filter.fields.invitationPending`: Exclusive filter for pending members (true = only pending)\n- `search.query`: Full-text search on name or email (requires `members_pii:read` scope)\n- `return.includeDisabled`: Include disabled members alongside active\n- `return.includeInvitationPending`: Include pending members alongside accepted\n\n## Filter Logic\n- Multiple values within a filter use **OR** logic (e.g., `filter.id` with two UUIDs)\n- Different filters use **AND** logic (e.g., `filter.fields.email` AND `filter.fields.role`)\n- Disabled and invited members are excluded by default\n- Use `filter.fields.disabled: true` to get **only** disabled members\n- Use `return.includeDisabled: true` to include disabled **alongside** active members\n- If both `filter.fields.disabled` and `return.includeDisabled` are set, the filter takes precedence\n\n## Important Notes\n- The `filter.id` and `filter.fields.email` filters accept at most 100 items each; exceeding this returns a 400 error\n- Filtering by email or query requires the `members_pii:read` scope; requests without it return a 400 error\n- Unknown keys in `filter.fields` return a 400 error\n- Pagination uses cursor-based navigation via `pageCursor` query parameter\n","operationId":"performMembersSearch","security":[{"BearerAuth":["members:read"]}],"parameters":[{"name":"pageCursor","in":"query","description":"Cursor for pagination.","required":false,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberSearchRequest"},"examples":{"filter_by_ids":{"summary":"Filter by IDs","value":{"data":{"filter":{"id":["123e4567-e89b-12d3-a456-426614174000"]}}}},"filter_by_email":{"summary":"Filter by email","value":{"data":{"filter":{"fields":{"email":["john.doe@example.com","jane.smith@example.com"]}}}}},"filter_by_role_with_disabled":{"summary":"Filter by role and include disabled","value":{"data":{"filter":{"fields":{"role":["admin","maker"]}},"return":{"includeDisabled":true}}}},"filter_only_disabled":{"summary":"Get only disabled members","value":{"data":{"filter":{"fields":{"disabled":true}}}}},"combined_filter_and_search":{"summary":"Combined filter + text search","value":{"data":{"filter":{"fields":{"role":"admin"}},"search":{"query":"john"}}}}}}}},"responses":{"200":{"$ref":"#/components/responses/MemberListResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"408":{"$ref":"#/components/responses/RequestTimeoutResponse"},"422":{"$ref":"#/components/responses/UnprocessableEntityResponse"},"429":{"$ref":"#/components/responses/TooManyRequestsResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/members/{id}":{"get":{"tags":["members"],"summary":"Get member","description":"Retrieves the full details of a specific member by their unique identifier (UUID).\nReturns the member's profile information including name, username, email address, and workspace role.\n\n> Without the `members:pii:read` OAuth scope, PII fields (`name`, `username`, `email`) are returned as `[redacted]`.\n","operationId":"getMember","security":[{"BearerAuth":["members:read"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Member identifier.","schema":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000"}}],"responses":{"200":{"$ref":"#/components/responses/MemberResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"408":{"$ref":"#/components/responses/RequestTimeoutResponse"},"429":{"$ref":"#/components/responses/TooManyRequestsResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API token authentication. Use your API token as the value of the Authorization header"},"OAuth2":{"type":"oauth2","description":"OAuth 2.0 authentication. Use this for user-authorized access to Productboard API.","flows":{"authorizationCode":{"authorizationUrl":"https://app.productboard.com/oauth/authorize","tokenUrl":"https://app.productboard.com/oauth/token","scopes":{"entities:read":"Read access to entities (features, components, initiatives, etc.)","write:entities":"Write access to create and modify entities","entities:delete":"Delete entities"}}}}},"schemas":{"MemberSearchRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MemberSearchData"}}},"MemberSearchData":{"type":"object","additionalProperties":false,"description":"Search data using structured `filter`, `search`, and `return` objects.\n","properties":{"filter":{"$ref":"#/components/schemas/MemberSearchFilter"},"search":{"$ref":"#/components/schemas/MemberSearchSearch"},"return":{"$ref":"#/components/schemas/MemberSearchReturn"}}},"MemberSearchFilter":{"type":"object","description":"Structured filters for member search. Different filter groups use AND logic.\nAll filters are optional.\n","properties":{"id":{"description":"Filter by member UUIDs (OR logic).","oneOf":[{"$ref":"#/components/schemas/UUID"},{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/UUID"}}]},"fields":{"$ref":"#/components/schemas/MemberSearchFilterFields"}},"additionalProperties":false},"MemberSearchFilterFields":{"type":"object","description":"Field-level filters. Multiple values within a field use OR logic.\nEmail matching is case-insensitive. Unknown fields return a 400 error.\n","properties":{"email":{"description":"Filter by email address. Single string or array (OR logic), case-insensitive.\nRequires `members_pii:read` scope.\n","oneOf":[{"type":"string","format":"email"},{"type":"array","maxItems":100,"items":{"type":"string","format":"email"}}]},"role":{"description":"Filter by role. Single string or array (OR logic).","oneOf":[{"type":"string","enum":["admin","maker","viewer","contributor"]},{"type":"array","items":{"type":"string","enum":["admin","maker","viewer","contributor"]}}]},"disabled":{"type":"boolean","description":"Exclusive filter for disabled members. When `true`, returns **only** disabled members.\nWhen absent, disabled members are excluded by default.\nUse `return.includeDisabled` instead if you want disabled members alongside active ones.\n"},"invitationPending":{"type":"boolean","description":"Exclusive filter for members with pending invitations. When `true`, returns **only** pending members.\nWhen absent, pending members are excluded by default.\nUse `return.includeInvitationPending` instead if you want pending members alongside accepted ones.\n"}},"additionalProperties":false},"MemberSearchSearch":{"type":"object","description":"Full-text search options. Combined with filters using AND logic.\n","properties":{"query":{"type":"string","description":"Full-text search query. Performs case-insensitive partial match on member name or email.\nRequires `members_pii:read` scope.\n","minLength":1,"maxLength":255}}},"MemberSearchReturn":{"type":"object","description":"Controls inclusion of normally-excluded members in the response.\n","properties":{"includeDisabled":{"type":"boolean","description":"Include disabled members alongside active members. Default false.\nIf `filter.fields.disabled` is also set, the filter takes precedence.\n","default":false},"includeInvitationPending":{"type":"boolean","description":"Include members with pending invitations alongside accepted members. Default false.\nIf `filter.fields.invitationPending` is also set, the filter takes precedence.\n","default":false}}},"Member":{"type":"object","description":"Represents a member (user) in the workspace.\n","required":["id","type","fields","links"],"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the member","example":"123e4567-e89b-12d3-a456-426614174000"},"type":{"type":"string","const":"member","description":"Resource type identifier","example":"member"},"fields":{"$ref":"#/components/schemas/MemberFields"},"links":{"$ref":"#/components/schemas/MemberLinks"}}},"MemberLinks":{"type":"object","description":"Links for navigating member resources.","required":["self","html"],"properties":{"self":{"type":"string","format":"uri","description":"URL of the member resource.","example":"https://api.productboard.com/v2/members/123e4567-e89b-12d3-a456-426614174000"},"html":{"type":"string","format":"uri","description":"URL of the member page in the Productboard UI.","example":"https://example.productboard.com/settings/members/42"}}},"MemberFields":{"type":"object","description":"Fields of a member resource.\n\nNote: When the `members:pii:read` scope is not present, the `name`, `username` and `email`\nfields will return `[redacted]` instead of actual values.\n","required":["name","username","email","role","disabled","invitationPending"],"properties":{"name":{"anyOf":[{"type":"string","description":"Display name of the member.","example":"John Doe"},{"$ref":"#/components/schemas/ObfuscatedValue"}]},"username":{"anyOf":[{"type":"string","description":"Username of the member.","example":"johndoe"},{"$ref":"#/components/schemas/ObfuscatedValue"}]},"email":{"anyOf":[{"$ref":"#/components/schemas/Email"},{"$ref":"#/components/schemas/ObfuscatedValue"}]},"role":{"type":"string","enum":["admin","maker","viewer","contributor"],"description":"Role of the member in the workspace.","example":"maker"},"disabled":{"type":"boolean","description":"Whether the member is disabled.","example":false},"invitationPending":{"type":"boolean","description":"Whether the member has a pending invitation that has not yet been accepted.","example":false},"teams":{"type":"array","description":"List of teams the member belongs to. Always included in the response.\n","items":{"$ref":"#/components/schemas/TeamReference"}}}},"TeamReference":{"type":"object","description":"Reference to a team with basic identifying information.\n","required":["id","name","links"],"properties":{"id":{"type":"string","format":"uuid","description":"UUID of the team","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Name of the team.","example":"Product Team"},"links":{"$ref":"#/components/schemas/ResourceLinks"}}},"ObfuscatedValue":{"type":"string","enum":["[redacted]"],"description":"The value `[redacted]`. Used to hide personally identifiable information in cases the request doesn't have the required `members:pii:read` OAuth2 scope.\n","example":"[redacted]"},"Email":{"type":"string","maxLength":256,"description":"The email of a Productboard user that has access to your workspace.","example":"email@example.com"},"ResourceLinks":{"type":"object","required":["self"],"properties":{"self":{"type":"string"}}},"ListLinks":{"type":"object","required":["next"],"properties":{"next":{"type":["string","null"]}}},"ErrorSource":{"type":"object","description":"An object containing references to the source of the error. It helps with location of the problematic field or parameter.\n","properties":{"pointer":{"type":"string","description":"JSON Pointer [RFC6901] to the associated entity in the request document.\n","example":"/data/fields/status"},"parameter":{"type":"string","description":"Query parameter causing the error.\nUsed when the error is related to a query parameter rather than request body.\n","example":"pageCursor"}}},"Error":{"type":"object","description":"Individual error object containing the details and context.\n","required":["code","title","detail"],"properties":{"code":{"type":"string","description":"A unique, machine-readable and stable code that identifies this error.\nMust be consistent across all services and provide clear categorization.\nFormat: `category.subcategory.specificError`\n","examples":["auth.accessDenied","resource.notFound"]},"title":{"type":"string","description":"A short, human-readable summary of the problem that doesn't change\nfrom occurrence to occurrence of the problem. Should provide immediate\nunderstanding of the error type.\n","maxLength":255,"example":"Missing required field"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem.\nMay include suggestions for resolution but should not expose sensitive information.\n","maxLength":1000,"example":"Field 'status' is required."},"source":{"$ref":"#/components/schemas/ErrorSource"}}},"ErrorResponse":{"type":"object","description":"Standard error response structure.\n","required":["id","errors"],"properties":{"id":{"type":"string","description":"A unique identifier for this specific occurrence of the problem.\nIt carries unique request/response ID which allows client\nand server to reference the exact instance of the error\nin logs or support communication.\n"},"errors":{"type":"array","description":"Array of error objects, multiple errors can be returned.","items":{"$ref":"#/components/schemas/Error"},"minItems":1}}},"UUID":{"type":"string","format":"uuid","description":"A universally unique identifier (UUID).\n","example":"123e4567-e89b-12d3-a456-426614174000"}},"responses":{"MemberListResponse":{"description":"A paginated list of members","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Member"}},"links":{"$ref":"#/components/schemas/ListLinks"}}},"examples":{"membersList":{"summary":"List of members","value":{"data":[{"id":"123e4567-e89b-12d3-a456-426614174000","type":"member","fields":{"name":"John Doe","username":"johndoe","email":"john.doe@example.com","role":"admin","disabled":false,"invitationPending":false,"teams":[{"id":"123e4567-e89b-12d3-a456-426614174000","name":"Product Team","links":{"self":"https://api.productboard.com/v2/teams/123e4567-e89b-12d3-a456-426614174000"}}]},"links":{"self":"https://api.productboard.com/v2/members/123e4567-e89b-12d3-a456-426614174000","html":"https://example.productboard.com/settings/members/42"}},{"id":"223e4567-e89b-12d3-a456-426614174001","type":"member","fields":{"name":"Jane Smith","username":"janesmith","email":"jane.smith@example.com","role":"maker","disabled":false,"invitationPending":false,"teams":[{"id":"123e4567-e89b-12d3-a456-426614174000","name":"Product Team","links":{"self":"https://api.productboard.com/v2/teams/123e4567-e89b-12d3-a456-426614174000"}}]},"links":{"self":"https://api.productboard.com/v2/members/223e4567-e89b-12d3-a456-426614174001","html":"https://example.productboard.com/settings/members/43"}}],"links":{"next":"https://api.productboard.com/v2/members?pageCursor=next_cursor_value"}}},"membersListObfuscated":{"summary":"List of members (without members:pii:read scope)","value":{"data":[{"id":"123e4567-e89b-12d3-a456-426614174000","type":"member","fields":{"name":"[redacted]","username":"[redacted]","email":"[redacted]","role":"admin","disabled":false,"invitationPending":false,"teams":[{"id":"123e4567-e89b-12d3-a456-426614174000","name":"Product Team","links":{"self":"https://api.productboard.com/v2/teams/123e4567-e89b-12d3-a456-426614174000"}}]},"links":{"self":"https://api.productboard.com/v2/members/123e4567-e89b-12d3-a456-426614174000","html":"https://example.productboard.com/settings/members/42"}}],"links":{"next":null}}},"emptyList":{"summary":"Empty members list","value":{"data":[],"links":{"next":null}}}}}}},"MemberResponse":{"description":"Member details","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Member"}}},"examples":{"member":{"summary":"Member response","value":{"data":{"id":"123e4567-e89b-12d3-a456-426614174000","type":"member","fields":{"name":"John Doe","username":"johndoe","email":"john.doe@example.com","role":"maker","disabled":false,"invitationPending":false,"teams":[{"id":"123e4567-e89b-12d3-a456-426614174000","name":"Product Team","links":{"self":"https://api.productboard.com/v2/teams/123e4567-e89b-12d3-a456-426614174000"}}]},"links":{"self":"https://api.productboard.com/v2/members/123e4567-e89b-12d3-a456-426614174000","html":"https://example.productboard.com/settings/members/42"}}}},"memberObfuscated":{"summary":"Member response (without members:pii:read scope)","value":{"data":{"id":"123e4567-e89b-12d3-a456-426614174000","type":"member","fields":{"name":"[redacted]","username":"[redacted]","email":"[redacted]","role":"maker","disabled":false,"invitationPending":false,"teams":[{"id":"123e4567-e89b-12d3-a456-426614174000","name":"Product Team","links":{"self":"https://api.productboard.com/v2/teams/123e4567-e89b-12d3-a456-426614174000"}}]},"links":{"self":"https://api.productboard.com/v2/members/123e4567-e89b-12d3-a456-426614174000","html":"https://example.productboard.com/settings/members/42"}}}}}}}},"BadRequestResponse":{"description":"Bad Request - Invalid input format or malformed request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"schemaInvalid":{"summary":"Request does not satisfy schema","value":{"id":"req-1234567890","errors":[{"code":"request.invalid","title":"Request schema invalid","detail":"The request does not satisfy the required schema. Field 'type' is required but was not provided.","source":{"pointer":"/data/type"}}]}},"fieldInvalid":{"summary":"Invalid field value type","value":{"id":"req-1234567891","errors":[{"code":"request.invalid","title":"Request schema invalid","detail":"Field 'fields/name' must be a string with maximum length of 255 characters, but received a number.","source":{"pointer":"/data/fields/name"}}]}},"malformedJson":{"summary":"Malformed JSON syntax","value":{"id":"req-1234567892","errors":[{"code":"request.malformed","title":"Request malformed","detail":"The request body contains invalid JSON syntax. Expected ',' or '}' at line 5, column 12."}]}},"invalidContentType":{"summary":"Invalid content type","value":{"id":"req-1234567893","errors":[{"code":"request.malformed","title":"Request malformed","detail":"The Content-Type header must be 'application/json'. Received 'text/plain'."}]}}}}}},"UnauthorizedResponse":{"description":"Unauthorized - Missing or invalid authentication credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"missingCredentials":{"summary":"Missing authentication credentials","value":{"id":"req-2234567890","errors":[{"code":"auth.invalid","title":"Invalid authentication","detail":"Authentication credentials are missing."}]}},"invalidToken":{"summary":"Invalid or expired token","value":{"id":"req-2234567891","errors":[{"code":"auth.invalid","title":"Invalid authentication","detail":"The provided authentication credentials are invalid or have expired. Please obtain new credentials and try again."}]}},"revokedCredentials":{"summary":"Revoked credentials","value":{"id":"req-2234567892","errors":[{"code":"auth.invalid","title":"Invalid authentication","detail":"The authentication credentials have been revoked. Please contact your workspace administrator."}]}}}}}},"ForbiddenResponse":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"permissionDenied":{"summary":"Permission denied for resource","value":{"id":"req-3234567890","errors":[{"code":"auth.accessDenied","title":"Access denied","detail":"You do not have permission to perform this operation on the specified resource. Contact your workspace administrator to request access."}]}},"insufficientScope":{"summary":"Insufficient OAuth scopes","value":{"id":"req-3234567891","errors":[{"code":"auth.accessDenied","title":"Access denied","detail":"Your authentication token lacks the required OAuth scopes to perform this operation. Please re-authenticate with the necessary scopes."}]}},"readOnlyRole":{"summary":"Read-only role restriction","value":{"id":"req-3234567892","errors":[{"code":"auth.accessDenied","title":"Access denied","detail":"Your user role does not permit this operation. Please contact your workspace administrator."}]}}}}}},"RequestTimeoutResponse":{"description":"Request Timeout - The server did not receive a complete request within the allowed time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"requestTimeout":{"summary":"Request timeout","value":{"id":"req-5234567890","errors":[{"code":"request.timeout","title":"Request timeout","detail":"The request took too long to process and was terminated. Try simplifying your request or try again later."}]}}}}}},"TooManyRequestsResponse":{"description":"Too Many Requests - API rate limit exceeded, reduce request frequency and retry after the indicated time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"rateLimitExceeded":{"summary":"Rate limit exceeded","value":{"id":"req-7234567890","errors":[{"code":"rate.limitExceeded","title":"Rate limit exceeded","detail":"You have exceeded the allowed number of API requests. Please wait before making additional requests."}]}}}}}},"InternalServerErrorResponse":{"description":"Internal Server Error - An unexpected error occurred on the server, please retry or contact support","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"internalServerError":{"summary":"Unexpected server error","value":{"id":"req-8234567890","errors":[{"code":"internal.serverError","title":"Internal server error","detail":"An unexpected error occurred while processing your request. Please try again later. If the problem persists, contact support with the correlation ID."}]}}}}}},"UnprocessableEntityResponse":{"description":"Unprocessable Entity - Validation failed (e.g., missing required fields, unknown fields)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"validationFailed":{"summary":"Validation failed","value":{"id":"req-6234567890","errors":[{"code":"validation.failed","title":"Validation failed","detail":"One or more fields failed validation.","source":{"pointer":"/data/type"}}]}},"validationMultipleFields":{"summary":"Multiple validation errors","value":{"id":"req-6234567891","errors":[{"code":"validation.failed","title":"Validation failed","detail":"The field 'name' cannot be empty.","source":{"pointer":"/data/fields/name"}},{"code":"validation.failed","title":"Validation failed","detail":"The field 'type' has an unsupported value.","source":{"pointer":"/data/fields/type"}}]}},"referenceNotFound":{"summary":"Referenced resource not found","value":{"id":"req-6234567892","errors":[{"code":"validation.referenceNotFound","title":"Referenced resource not found","detail":"The referenced resource could not be found or you do not have access to it.","source":{"pointer":"/data/fields/id"}}]}}}}}},"NotFoundResponse":{"description":"Not Found - The requested resource does not exist or is not accessible","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"examples":{"resourceNotFoundById":{"summary":"Resource not found by ID","value":{"id":"req-4234567890","errors":[{"code":"resource.notFound","title":"Resource not found","detail":"The requested resource could not be found or you do not have permission to access it."}]}},"routeNotFound":{"summary":"API route not found","value":{"id":"req-4234567893","errors":[{"code":"route.notFound","title":"Route not found","detail":"The requested URL path does not match any defined API route. Please check the API documentation for valid endpoints."}]}}}}}}}},"x-readme":{"samples-languages":["shell","javascript","ruby"]}}