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

# Set the stage

> Send `{ "stageId": null }` to clear the stage.



## OpenAPI

````yaml /api-reference/openapi.json put /v1/contacts/{contactId}/stage
openapi: 3.0.0
info:
  title: Flovoo API
  description: |-
    Authenticate with an API key created from **Connectors → API**:

    ```
    Authorization: Bearer flv_...
    ```

    The organization is derived from the key, so no request carries an
    organization id.
  version: '1.0'
  contact: {}
servers: []
security: []
tags: []
paths:
  /v1/contacts/{contactId}/stage:
    put:
      tags:
        - Contacts
      summary: Set the stage
      description: 'Send `{ "stageId": null }` to clear the stage.'
      operationId: PublicContactsController_setStage
      parameters:
        - name: contactId
          required: true
          in: path
          description: The contact id.
          schema:
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicSetStageDoc'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicContactDoc'
        '400':
          description: >-
            The request failed validation. Every failing field is listed in
            `details`, not just the first.
          content:
            application/json:
              example:
                error:
                  type: invalid_request_error
                  code: validation_failed
                  message: The request failed validation.
                  details:
                    - param: phone
                      code: invalid_string
                      message: Invalid phone number format
                  requestId: req_01J8X4M2N9P3Q5R7
        '401':
          description: The key is missing, unknown, or revoked.
          content:
            application/json:
              examples:
                missing:
                  summary: No Authorization header
                  value:
                    error:
                      type: authentication_error
                      code: missing_api_key
                      message: No API key was provided.
                      requestId: req_01J8X4M2N9P3Q5R7
                invalid:
                  summary: Unknown key
                  value:
                    error:
                      type: authentication_error
                      code: invalid_api_key
                      message: The API key provided is not valid.
                      requestId: req_01J8X4M2N9P3Q5R7
                revoked:
                  summary: Revoked key
                  value:
                    error:
                      type: authentication_error
                      code: revoked_api_key
                      message: This API key has been revoked.
                      requestId: req_01J8X4M2N9P3Q5R7
        '403':
          description: The key is valid but lacks the route's scope.
          content:
            application/json:
              example:
                error:
                  type: permission_error
                  code: insufficient_scope
                  message: >-
                    This API key does not have the required scope:
                    contacts.create.
                  requestId: req_01J8X4M2N9P3Q5R7
        '404':
          description: No such Contact in this organization.
          content:
            application/json:
              example:
                error:
                  type: invalid_request_error
                  code: not_found
                  message: >-
                    Contact with ID 0198f2a1-8c3d-7a4e-b5f6-1a2b3c4d5e6f not
                    found in this organization.
                  requestId: req_01J8X4M2N9P3Q5R7
        '429':
          description: Rate limit exceeded. `Retry-After` gives the seconds to wait.
          content:
            application/json:
              example:
                error:
                  type: rate_limit_error
                  code: rate_limit_exceeded
                  message: >-
                    Rate limit of 300 requests per minute exceeded. Retry in
                    23s.
                  requestId: req_01J8X4M2N9P3Q5R7
        '500':
          description: >-
            An error on our side. The original exception is never returned;
            quote `requestId` to support.
          content:
            application/json:
              example:
                error:
                  type: api_error
                  code: internal_error
                  message: An unexpected error occurred.
                  requestId: req_01J8X4M2N9P3Q5R7
      security:
        - api-key: []
components:
  schemas:
    PublicSetStageDoc:
      type: object
      properties:
        stageId:
          type: string
          format: uuid
          nullable: true
      required:
        - stageId
    PublicContactDoc:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        phone:
          description: Digits only, no + prefix
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        avatar:
          type: string
          nullable: true
        notes:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - active
            - archived
        isBlocked:
          description: Blocked contacts cannot send or receive messages
          type: boolean
        sourceMethod:
          description: How the contact entered the system, e.g. MANUAL, IMPORT
          type: string
          nullable: true
        assigneeId:
          description: Must be set before a message can be sent to this contact
          type: string
          format: uuid
          nullable: true
        stageId:
          type: string
          format: uuid
          nullable: true
        tags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              name:
                type: string
              color:
                description: 'Hex colour, e.g. #74d44e'
                type: string
            required:
              - id
              - name
              - color
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        lastInteractionAt:
          type: string
          format: date-time
          nullable: true
      required:
        - id
        - name
        - phone
        - email
        - avatar
        - notes
        - status
        - isBlocked
        - sourceMethod
        - assigneeId
        - stageId
        - tags
        - createdAt
        - updatedAt
        - lastInteractionAt
  securitySchemes:
    api-key:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: Your API key, e.g. flv_9f2a8c1e…

````