# List workspace invitations

Return workspace invitations in any lifecycle status.

Endpoint: GET /workspaces/{workspace_id}/invitations
Version: 0.23.9
Security: Auth

## Path parameters:

  - `workspace_id` (string, required)
    Unique identifier (UUID) of the workspace.
    Example: "550e8400-e29b-41d4-a716-446655440000"

## Query parameters:

  - `page` (integer)
    1-based page index. Defaults to 1 when omitted.
    Example: 1

  - `limit` (integer)
    Page size. Defaults to 30, capped at 100.
    Example: 20

  - `sort_by` (string)
    Sort field. Prefix with - for descending order (e.g. -created_at).
    Enum: "status", "-status", "expires_at", "-expires_at", "created_at", "-created_at"

  - `status` (array)
    Filter invitations by status.
    Enum: "pending", "accepted", "declined", "revoked", "expired"

## Response 200 fields (application/json):

  - `items` (array, required)
    Example: [{"id":"0193d4a1-7e02-7d29-a2b3-4c5d6e7f8901","workspace":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"Acme Inc","created_at":"2024-01-15T10:30:00Z"},"email":"user@example.com","workspace_role":"member","status":"pending","expires_at":"2024-01-22T10:30:00Z","created_at":"2024-01-15T10:30:00Z","project_grants":[{"project":{"id":"0193d4a1-7e02-7d29-8d8a-3b0e5a7c8f12","name":"Production","created_at":"2024-01-15T10:30:00Z"},"role":"viewer"}]}]

  - `items.id` (string, required)
    Unique invitation identifier.
    Example: "0193d4a1-7e02-7d29-a2b3-4c5d6e7f8901"

  - `items.workspace` (object, required)
    Workspace the invitee is being added to.
    Example: {"id":"550e8400-e29b-41d4-a716-446655440000","name":"Acme Inc","created_at":"2024-01-15T10:30:00Z"}

  - `items.workspace.id` (string, required)
    Unique workspace identifier.
    Example: "550e8400-e29b-41d4-a716-446655440000"

  - `items.workspace.name` (string, required)
    Human-readable workspace name.
    Example: "Acme Inc"

  - `items.workspace.created_at` (string, required)
    Timestamp when the resource was created. RFC 3339 / ISO 8601, UTC.
    Example: "2024-01-15T10:30:00Z"

  - `items.email` (string, required)
    Recipient email address.
    Example: "user@example.com"

  - `items.workspace_role` (string, required)
    Role assigned to a user within a workspace.
    Enum: "admin", "member"

  - `items.status` (string, required)
    Current invitation lifecycle status.
    Enum: "pending", "accepted", "declined", "revoked", "expired"

  - `items.expires_at` (string, required)
    Timestamp when the resource expires. RFC 3339 / ISO 8601, UTC. Absent if the resource never expires.
    Example: "2024-01-22T10:30:00Z"

  - `items.created_at` (string, required)
    Timestamp when the resource was created. RFC 3339 / ISO 8601, UTC.
    Example: "2024-01-15T10:30:00Z"

  - `items.project_grants` (array, required)
    Project grants to apply when the invitation is accepted. Empty for admins, who receive implicit access to every project.
    Example: [{"project":{"id":"0193d4a1-7e02-7d29-8d8a-3b0e5a7c8f12","name":"Production","created_at":"2024-01-15T10:30:00Z"},"role":"viewer"}]

  - `items.project_grants.project` (object, required)
    Project the grant applies to.
    Example: {"id":"0193d4a1-7e02-7d29-8d8a-3b0e5a7c8f12","name":"Production","created_at":"2024-01-15T10:30:00Z"}

  - `items.project_grants.project.id` (string, required)
    Unique project identifier.
    Example: "0193d4a1-7e02-7d29-8d8a-3b0e5a7c8f12"

  - `items.project_grants.project.name` (string, required)
    Human-readable project name.
    Example: "Production"

  - `items.project_grants.project.created_at` (string, required)
    Timestamp when the resource was created. RFC 3339 / ISO 8601, UTC.
    Example: "2024-01-15T10:30:00Z"

  - `items.project_grants.role` (string, required)
    Project-level role for a workspace member.
    Enum: "editor", "viewer"

  - `meta` (object, required)
    Pagination metadata returned on every list response. page and limit echo the values used to build this page (defaults are applied when the request omits them). total and total_pages reflect the full result set after any filters are applied.

  - `meta.limit` (integer, required)
    Page size used to build this response.

  - `meta.page` (integer, required)
    Index of the page returned, starting at 1.

  - `meta.total` (integer, required)
    Total number of items matching the request across all pages.

  - `meta.total_pages` (integer, required)
    Total number of pages available at the current limit.

## Response 400 fields (application/problem+json):

  - `type` (string, required)
    A URI that identifies the error type.
Open it in a browser to read about this category of error.
    Example: "https://docs.vilna.io/apis/problems/invalid-request"

  - `title` (string, required)
    A short summary of the error type.
Use detail for information specific to this occurrence.
    Example: "Invalid Request"

  - `status` (integer, required)
    The HTTP status code for this error.
Matches the status code of the HTTP response.
    Example: 400

  - `detail` (string)
    A human-readable explanation of what went wrong in this specific case.
May be localized.
    Example: "Validation error"

  - `instance` (string)
    A URI that identifies this specific error occurrence.
Include this value when contacting support.

  - `code` (string, required)
    Stable machine-readable error code ({domain}.{reason}) for programmatic error handling. Unlike the HTTP status or free-form detail, this code is guaranteed not to change between versions for a given error condition, so it is safe to branch on in client code. Defaults to unspecified when the server has not assigned a specific code.
    Example: "blockchain.name_too_long"

  - `fields` (array)
    List of invalid fields in the request

  - `fields.name` (string, required)
    The name of the invalid field
    Example: "meta"

  - `fields.reason` (string, required)
    Why this field is invalid
    Example: "Exceeded maximum data size — must not exceed 1000 characters"

## Response 401 fields (application/problem+json):

  - `type` (string, required)
    A URI that identifies the error type.
Open it in a browser to read about this category of error.
    Example: "https://docs.vilna.io/apis/problems/unauthorized"

  - `title` (string, required)
    A short summary of the error type.
Use detail for information specific to this occurrence.
    Example: "Unauthorized"

  - `status` (integer, required)
    The HTTP status code for this error.
Matches the status code of the HTTP response.
    Example: 401

  - `detail` (string)
    A human-readable explanation of what went wrong in this specific case.
May be localized.
    Example: "Missing or invalid authentication credentials"

  - `instance` (string)
    A URI that identifies this specific error occurrence.
Include this value when contacting support.

  - `code` (string, required)
    Stable machine-readable error code ({domain}.{reason}) for programmatic error handling. Unlike the HTTP status or free-form detail, this code is guaranteed not to change between versions for a given error condition, so it is safe to branch on in client code. Defaults to unspecified when the server has not assigned a specific code.
    Example: "auth.unauthorized"

## Response 403 fields (application/problem+json):

  - `type` (string, required)
    A URI that identifies the error type.
Open it in a browser to read about this category of error.
    Example: "https://docs.vilna.io/apis/problems/forbidden"

  - `title` (string, required)
    A short summary of the error type.
Use detail for information specific to this occurrence.
    Example: "Forbidden"

  - `status` (integer, required)
    The HTTP status code for this error.
Matches the status code of the HTTP response.
    Example: 403

  - `detail` (string)
    A human-readable explanation of what went wrong in this specific case.
May be localized.
    Example: "You do not have permission to perform this action"

  - `instance` (string)
    A URI that identifies this specific error occurrence.
Include this value when contacting support.

  - `code` (string, required)
    Stable machine-readable error code ({domain}.{reason}) for programmatic error handling. Unlike the HTTP status or free-form detail, this code is guaranteed not to change between versions for a given error condition, so it is safe to branch on in client code. Defaults to unspecified when the server has not assigned a specific code.
    Example: "chain.not_allowed"

## Response 404 fields (application/problem+json):

  - `type` (string, required)
    A URI that identifies the error type.
Open it in a browser to read about this category of error.
    Example: "https://docs.vilna.io/apis/problems/not-found"

  - `title` (string, required)
    A short summary of the error type.
Use detail for information specific to this occurrence.
    Example: "Not Found"

  - `status` (integer, required)
    The HTTP status code for this error.
Matches the status code of the HTTP response.
    Example: 404

  - `detail` (string)
    A human-readable explanation of what went wrong in this specific case.
May be localized.
    Example: "The requested resource was not found"

  - `instance` (string)
    A URI that identifies this specific error occurrence.
Include this value when contacting support.

  - `code` (string, required)
    Stable machine-readable error code ({domain}.{reason}) for programmatic error handling. Unlike the HTTP status or free-form detail, this code is guaranteed not to change between versions for a given error condition, so it is safe to branch on in client code. Defaults to unspecified when the server has not assigned a specific code.
    Example: "blockchain.not_found"

## Response default fields (application/problem+json):

  - `type` (string, required)
    A URI that identifies the error type.
Open it in a browser to read about this category of error.

  - `title` (string, required)
    A short summary of the error type.
Use detail for information specific to this occurrence.

  - `status` (integer, required)
    The HTTP status code for this error.
Matches the status code of the HTTP response.

  - `detail` (string)
    A human-readable explanation of what went wrong in this specific case.
May be localized.

  - `instance` (string)
    A URI that identifies this specific error occurrence.
Include this value when contacting support.

  - `code` (string, required)
    Stable machine-readable error code ({domain}.{reason}) for programmatic error handling. Unlike the HTTP status or free-form detail, this code is guaranteed not to change between versions for a given error condition, so it is safe to branch on in client code. Defaults to unspecified when the server has not assigned a specific code.


