> ## Documentation Index
> Fetch the complete documentation index at: https://lava.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Change Page link and workspace access

> Atomically change General access and add_recipients (exact emails) or remove_recipients (grant IDs). Alternatively send standalone remove_access: member targets remove the explicit Editor assignment and all active exact-email grants verified for that Clerk account; recipient targets remove only the selected Page grant; author targets remove associated email grants without changing authorship. This operation preserves Workspace/public access, fails without partial permission changes when identity is unavailable, and is independent of recipient pagination. Retry an uncertain request with its original operation_id and expected_revision; replay never removes later regrants. Requires supports_atomic_removal from inspection and cannot combine with other changes. Omitted General access preserves publication and placement. author unpublishes a Personal Page and is refused for Workspace Pages; workspace moves to Workspace Files and unpublishes; anyone publishes without moving. add_workspace moves to Workspace Files while preserving publication and starts with Viewer as the workspace default. Workspace Pages cannot return to Personal. add_workspace cannot be combined with general_access. Email grants are read-only and preserve independent Editor rights. A standalone resend grant ID queues a new invitation without creating a grant. New invitations and resend are limited to enabled accounts during rollout; inspection, reads and revoke remain available. New invitation emails, including resends, are limited to 50 per acting person per hour, 100 per owning account per hour, and one per Page/email every ten minutes. Accepted operation retries and active-recipient duplicates consume no extra allowance. Limit refusal is 429 and commits no partial audience change. Send operation_id and expected_revision from inspection. Exact retries require current manager authority and return committed references with current grant and email states; a reused ID with different input is refused. Stale revisions require inspection and draft review. A manager removing their own admission receives current: null. Delivery states are queued, provider_accepted, failed, unknown or cancelled; acceptance does not mean inbox delivery. Optional workspace_role changes the default for live Workspace members and is Author-only; it can be set for any Page in Workspace Files, including while public. The role remains stored when General access changes, contributes no access before moving to Workspace Files, and never grants public or email-only editing. Optional viewers_can_interact retains existing saved-data behavior for independently admitted viewers, without granting named-only recipients original-write authority. Uses a validated person-attributed account key through Forward or the MCP metered path. Returns trace_id on every operation result. Guest email proof grants no management authority.



## OpenAPI

````yaml /openapi.json put /pages/{id}/sharing
openapi: 3.0.0
info:
  title: Lava API
  description: >-
    Lava API enables businesses to implement usage-based billing for AI
    services. This API allows tracking, managing, and billing for third-party AI
    API usage through a forwarding system.
  version: 1.0.0
  contact:
    name: Lava support
    url: https://www.lava.so/contact
servers:
  - url: https://api.lava.so/v1/
    description: Lava API v1
security: []
tags:
  - name: Authentication
  - name: Core Endpoints
  - name: Models
  - name: Services
  - name: Requests
  - name: Wallet
  - name: Payment Methods
  - name: Spend Keys
  - name: Usage
  - name: Checkout Sessions
  - name: Customers
  - name: Plans
  - name: Subscriptions
  - name: Meters
  - name: Webhooks
  - name: Secret Keys
  - name: Credit Bundles
  - name: Gateway Settings
  - name: News Data
  - name: Search
  - name: Enrich
  - name: Pages
paths:
  /pages/{id}/sharing:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    put:
      tags:
        - Pages
      summary: Change Page link and workspace access
      description: >-
        Atomically change General access and add_recipients (exact emails) or
        remove_recipients (grant IDs). Alternatively send standalone
        remove_access: member targets remove the explicit Editor assignment and
        all active exact-email grants verified for that Clerk account; recipient
        targets remove only the selected Page grant; author targets remove
        associated email grants without changing authorship. This operation
        preserves Workspace/public access, fails without partial permission
        changes when identity is unavailable, and is independent of recipient
        pagination. Retry an uncertain request with its original operation_id
        and expected_revision; replay never removes later regrants. Requires
        supports_atomic_removal from inspection and cannot combine with other
        changes. Omitted General access preserves publication and placement.
        author unpublishes a Personal Page and is refused for Workspace Pages;
        workspace moves to Workspace Files and unpublishes; anyone publishes
        without moving. add_workspace moves to Workspace Files while preserving
        publication and starts with Viewer as the workspace default. Workspace
        Pages cannot return to Personal. add_workspace cannot be combined with
        general_access. Email grants are read-only and preserve independent
        Editor rights. A standalone resend grant ID queues a new invitation
        without creating a grant. New invitations and resend are limited to
        enabled accounts during rollout; inspection, reads and revoke remain
        available. New invitation emails, including resends, are limited to 50
        per acting person per hour, 100 per owning account per hour, and one per
        Page/email every ten minutes. Accepted operation retries and
        active-recipient duplicates consume no extra allowance. Limit refusal is
        429 and commits no partial audience change. Send operation_id and
        expected_revision from inspection. Exact retries require current manager
        authority and return committed references with current grant and email
        states; a reused ID with different input is refused. Stale revisions
        require inspection and draft review. A manager removing their own
        admission receives current: null. Delivery states are queued,
        provider_accepted, failed, unknown or cancelled; acceptance does not
        mean inbox delivery. Optional workspace_role changes the default for
        live Workspace members and is Author-only; it can be set for any Page in
        Workspace Files, including while public. The role remains stored when
        General access changes, contributes no access before moving to Workspace
        Files, and never grants public or email-only editing. Optional
        viewers_can_interact retains existing saved-data behavior for
        independently admitted viewers, without granting named-only recipients
        original-write authority. Uses a validated person-attributed account key
        through Forward or the MCP metered path. Returns trace_id on every
        operation result. Guest email proof grants no management authority.
      operationId: pageSharingaccess
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                operation_id:
                  type: string
                  minLength: 1
                  maxLength: 128
                  pattern: ^[A-Za-z0-9_-]+$
                expected_revision:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                remove_access:
                  description: >-
                    Standalone targeted removal. Member removes explicit Editor
                    and verified account-email Viewer access; recipient removes
                    exactly one grant; author removes associated email grants,
                    never authorship. Preserves Workspace and public access.
                    Cannot combine with other changes.
                  oneOf:
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - member
                        member_id:
                          type: string
                          minLength: 1
                          maxLength: 36
                      required:
                        - kind
                        - member_id
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - recipient
                        grant_id:
                          type: string
                          minLength: 1
                          maxLength: 36
                      required:
                        - kind
                        - grant_id
                      additionalProperties: false
                    - type: object
                      properties:
                        kind:
                          type: string
                          enum:
                            - author
                      required:
                        - kind
                      additionalProperties: false
                general_access:
                  type: string
                  enum:
                    - author
                    - workspace
                    - anyone
                add_workspace:
                  description: >-
                    Move a Personal Page to Workspace Files with Viewer as the
                    initial default, preserving publication and individual
                    grants. The Page cannot move back. Omit to preserve
                    location.
                  type: boolean
                  enum:
                    - true
                add_recipients:
                  maxItems: 50
                  type: array
                  items:
                    type: string
                    maxLength: 254
                    format: email
                    pattern: >-
                      ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                remove_recipients:
                  maxItems: 50
                  type: array
                  items:
                    type: string
                    minLength: 1
                    maxLength: 36
                resend:
                  type: string
                  minLength: 1
                  maxLength: 36
                viewers_can_interact:
                  type: boolean
                workspace_role:
                  description: >-
                    Author-only default permission for current and future live
                    Workspace members. Set while the Page belongs to Workspace
                    Files, including when public; does not assign individual
                    Editors or grant edit access through public links or email.
                    Omit to preserve.
                  type: string
                  enum:
                    - viewer
                    - editor
              required:
                - operation_id
                - expected_revision
              additionalProperties: false
      responses:
        '200':
          description: Current authorized projection or committed sharing receipt.
          content:
            application/json:
              schema:
                type: object
                properties:
                  operation_id:
                    type: string
                  committed_revision:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  canonical_link:
                    type: string
                    format: uri
                  audience:
                    type: object
                    properties:
                      general_access:
                        type: string
                        enum:
                          - author
                          - workspace
                          - anyone
                      cabinet:
                        type: string
                        enum:
                          - personal
                          - workspace
                      active_editors:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      active_named_recipients:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      workspace_role:
                        type: string
                        enum:
                          - viewer
                          - editor
                    required:
                      - general_access
                      - cabinet
                      - active_editors
                    additionalProperties: false
                  granted:
                    type: array
                    items:
                      type: string
                  revoked:
                    type: array
                    items:
                      type: string
                  invitations:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        state:
                          type: string
                          enum:
                            - queued
                            - provider_accepted
                            - failed
                            - unknown
                            - cancelled
                      required:
                        - id
                        - state
                      additionalProperties: false
                  current:
                    nullable: true
                    type: object
                    properties:
                      revision:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      canonical_link:
                        type: string
                        format: uri
                      workspace_name:
                        type: string
                        nullable: true
                      audience:
                        type: object
                        properties:
                          general_access:
                            type: string
                            enum:
                              - author
                              - workspace
                              - anyone
                          cabinet:
                            type: string
                            enum:
                              - personal
                              - workspace
                          active_editors:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          active_named_recipients:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          workspace_role:
                            type: string
                            enum:
                              - viewer
                              - editor
                        required:
                          - general_access
                          - cabinet
                          - active_editors
                        additionalProperties: false
                      can_assign_editors:
                        type: boolean
                      supports_atomic_removal:
                        description: >-
                          Supports targeted removal of explicit access in one
                          transaction. Absence means unavailable.
                        type: boolean
                      can_set_workspace_role:
                        description: >-
                          Whether this manager can change the Workspace default,
                          including while public. Older servers without this
                          capability support role changes only under Workspace
                          General access.
                        type: boolean
                      can_add_workspace:
                        description: >-
                          Whether the manager can move this Personal Page to
                          Workspace Files while preserving its public link.
                          Absence means this operation is unavailable.
                        type: boolean
                      can_invite:
                        description: >-
                          Whether new email invitations and resends are enabled.
                          Absence means unavailable. Existing reads, revocation
                          and queued delivery remain available when false.
                        type: boolean
                      supports_saved_data:
                        type: boolean
                      viewers_can_interact:
                        type: boolean
                      is_author:
                        description: >-
                          Whether the current manager created this Page,
                          independently of Editor-assignment support.
                        type: boolean
                      author:
                        nullable: true
                        type: object
                        properties:
                          display_name:
                            type: string
                            nullable: true
                          viewer_grant_ids:
                            description: >-
                              Verified exact-email associations to recipients in
                              this response. Presentation only; absence means no
                              confirmed association.
                            type: array
                            items:
                              type: string
                        required:
                          - display_name
                        additionalProperties: false
                      editors:
                        type: array
                        items:
                          type: object
                          properties:
                            member_id:
                              type: string
                            display_name:
                              type: string
                              nullable: true
                            email:
                              type: string
                              nullable: true
                            viewer_grant_ids:
                              description: >-
                                Verified exact-email associations to recipients
                                in this response. Editor and Viewer
                                contributions remain independent.
                              type: array
                              items:
                                type: string
                          required:
                            - member_id
                            - display_name
                            - email
                          additionalProperties: false
                      recipients:
                        type: array
                        items:
                          type: object
                          properties:
                            grant_id:
                              type: string
                            email:
                              type: string
                            state:
                              type: string
                              enum:
                                - active
                                - stopped
                            invitation:
                              nullable: true
                              type: object
                              properties:
                                id:
                                  type: string
                                state:
                                  type: string
                                  enum:
                                    - queued
                                    - provider_accepted
                                    - failed
                                    - unknown
                                    - cancelled
                              required:
                                - id
                                - state
                              additionalProperties: false
                            member_id:
                              description: >-
                                Current owning-Workspace membership confirmed
                                through a unique verified email identity.
                                Absence is not proof of membership.
                              type: string
                            display_name:
                              type: string
                              nullable: true
                          required:
                            - grant_id
                            - email
                            - state
                            - invitation
                          additionalProperties: false
                      next_cursor:
                        type: string
                        nullable: true
                    required:
                      - revision
                      - canonical_link
                      - audience
                      - can_assign_editors
                      - supports_saved_data
                      - viewers_can_interact
                      - author
                      - editors
                    additionalProperties: false
                  trace_id:
                    type: string
                required:
                  - operation_id
                  - committed_revision
                  - canonical_link
                  - audience
                  - current
                  - trace_id
                additionalProperties: false
        '400':
          description: 'invalid: Check the sharing fields and eligible member IDs.'
        '403':
          description: |-
            disabled: New Page invitations are not enabled for this account.

            forbidden: You cannot manage sharing for this Page.
        '404':
          description: 'not_found: Page unavailable.'
        '409':
          description: >-
            author_unavailable: The Page Author is unavailable. Restore
            membership before inviting.


            stale_revision: Sharing changed. Review your draft against the
            current audience before saving again.


            operation_mismatch: This operation ID was already used for a
            different change.


            ownership_changed: Page ownership changed. Inspect sharing again.
        '410':
          description: 'gone: Page unavailable.'
        '429':
          description: >-
            rate_limited: Invitation limit reached. Wait before inviting or
            resending.
        '503':
          description: >-
            recipient_identity_unavailable: The recipient’s verified identity
            could not be established. No access was changed.


            invitation_unavailable: Invitation limits could not be checked. Try
            again.


            membership_sync_pending: Workspace membership is being reconciled.
            Try again.


            authority_unavailable: Current Workspace authority could not be
            verified. Try again.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.