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

# Release a business to its owner

> Hands one of the partner's businesses to its owner, who keeps it on the host's Free plan and pays the host from then on. It leaves the partner's dashboard and domains, and the webhooks the partner's keys and people set up on it stop sending. The owner has to have accepted their invitation first, or it's a 409, and so is a business whose number is still being bought. A business whose package subscription is live is a 409 too: cancel it in Stripe first.



## OpenAPI

````yaml /api-reference/openapi.json post /partner/businesses/{business_id}/release
openapi: 3.1.0
info:
  title: LobbyStack API
  version: v1
  description: >-
    Read calls, contacts, appointments and messages, book appointments, and
    subscribe to webhooks. Authenticate with an API key in the Authorization
    header. A platform key also names the business it acts on in the
    LobbyStack-Business header. Each key allows 120 requests per minute by
    default.
servers:
  - url: https://app.lobbystack.com/api/v1
security:
  - bearerAuth: []
tags:
  - name: Business
  - name: Receptionist
  - name: Agents
  - name: Billing
  - name: Phone numbers
  - name: Onboarding
  - name: Team
  - name: Website chat
  - name: Calendars
  - name: Notifications
  - name: Calls
  - name: Contacts
  - name: Appointments
  - name: Messages
  - name: Knowledge
  - name: Webhooks
  - name: Platform
  - name: Partner
paths:
  /partner/businesses/{business_id}/release:
    post:
      tags:
        - Partner
      summary: Release a business to its owner
      description: >-
        Hands one of the partner's businesses to its owner, who keeps it on the
        host's Free plan and pays the host from then on. It leaves the partner's
        dashboard and domains, and the webhooks the partner's keys and people
        set up on it stop sending. The owner has to have accepted their
        invitation first, or it's a 409, and so is a business whose number is
        still being bought. A business whose package subscription is live is a
        409 too: cancel it in Stripe first.
      operationId: releasePartnerBusiness
      parameters:
        - name: business_id
          in: path
          required: true
          description: The business id.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/PartnerBusinessReleased'
        '400':
          description: The request is invalid (invalid_request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing, invalid, or revoked (unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Refused. insufficient_scope: the key lacks the
            partner.businesses:write scope. forbidden: only a partner's platform
            keys can call this endpoint, or what only the partner's owners may
            do. key_owner_inactive: the person the key acts for can't any more:
            a per-business key's creator is no longer an owner or admin, or a
            platform key's owner_email has no verified LobbyStack account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            Not found (not_found), including a business a platform key cannot
            act on.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The request conflicts with the current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Too many requests (rate_limited). Wait for the Retry-After header's
            number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
      security:
        - bearerAuth: []
components:
  schemas:
    PartnerBusinessReleased:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Stable identifier (UUID).
        released:
          type: boolean
          const: true
        owner_user_id:
          type: string
          format: uuid
          description: The owner who keeps the business.
      required:
        - id
        - released
        - owner_user_id
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - invalid_request
                - unauthorized
                - forbidden
                - insufficient_scope
                - not_found
                - conflict
                - idempotency_key_reused
                - idempotency_request_in_progress
                - booking_disabled
                - booking_requires_confirmation
                - slot_unavailable
                - rate_limited
                - rate_limit_unavailable
                - method_not_allowed
                - internal_error
                - business_required
                - key_owner_inactive
                - plan_limit_reached
                - phone_numbers_unavailable
            message:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
                required:
                  - path
                  - message
                additionalProperties: false
          required:
            - code
            - message
          additionalProperties: false
      required:
        - error
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from Settings > API keys (lsk_...), which acts on its own
        business, or a platform key from the PLATFORM_API_KEYS setting
        (lsp_...), which onboards and manages businesses. Scopes: business:read,
        business:write, calls:read, contacts:read, contacts:write,
        appointments:read, appointments:write, messages:read, knowledge:read,
        knowledge:write, webhooks:manage, billing:manage, phone_numbers:manage,
        team:manage, businesses:create, users:create, phone_numbers:purchase,
        partner:read, partner.businesses:write, partner.demos:write,
        partner.packages:write, partner.branding:write, partner.templates:write,
        partner.team:write, partner.billing:read, partner.billing:write. Only
        platform keys can hold businesses:create and users:create, and only a
        key a partner made in its console can hold the partner scopes, which the
        Partner endpoints use. Only a partner's owners grant
        partner.billing:read and partner.billing:write.

````

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