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

# Update an attached component's placement on the stack



## OpenAPI

````yaml /openapi/api-docs.yaml put /v1/stacks/{stack_id}/components/{component_id}
openapi: 3.0.3
info:
  title: StatusStack API
  description: >
    API for managing status monitoring, incidents, stacks, and website
    monitoring.


    You can import this specification directly into Postman, Insomnia or any
    other

    OpenAPI-compatible client.


    Only the operations documented here are part of the supported public API.
    Any other

    endpoint is unstable and may change without a version bump.
  version: 1.4.0
  contact:
    name: StatusStack Support
    url: https://statusstack.com/support
servers:
  - url: https://statusstack.com/api
    description: Production server
security: []
paths:
  /v1/stacks/{stack_id}/components/{component_id}:
    parameters:
      - name: stack_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: component_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
    put:
      tags:
        - Stacks
      summary: Update an attached component's placement on the stack
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StackComponentPlacement'
      responses:
        '200':
          description: Placement updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Component settings updated successfully
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NestedResourceNotFound'
        '422':
          $ref: '#/components/responses/ValidationFailed'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth: []
components:
  schemas:
    StackComponentPlacement:
      type: object
      description: >-
        Where an attached component sits on the stack. Carried on the
        stack/component pivot.
      properties:
        sort_order:
          type: integer
          minimum: 0
        is_critical:
          type: boolean
        custom_label:
          type: string
          maxLength: 255
        settings:
          type: object
          additionalProperties: true
    AuthError:
      type: object
      description: >
        The shape for authentication failures and missing API-key permissions.
        These

        responses use `error`, not `message`.
      required:
        - error
      properties:
        error:
          type: string
    ApiError:
      type: object
      description: >
        The standard failure envelope. `errors` appears only when there is
        field-level detail.
      required:
        - message
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties: true
    ValidationError:
      type: object
      description: The validation failure body.
      required:
        - message
        - errors
      properties:
        message:
          type: string
        errors:
          type: object
          description: Field name to the list of messages for that field.
          additionalProperties:
            type: array
            items:
              type: string
    QuotaExceededError:
      type: object
      description: >
        Quota refusals answer 422, not 402 or 429, so a quota refusal shares a
        status code

        with a validation failure while carrying a different body.
      required:
        - message
        - error
      properties:
        message:
          type: string
        error:
          type: string
          enum:
            - quota_exceeded
        resource:
          type: string
        usage:
          type: object
          additionalProperties: true
  responses:
    Unauthenticated:
      description: >
        No bearer credentials, or credentials that do not resolve to a valid API
        key. Every

        v1 operation can return it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthError'
    Forbidden:
      description: >
        The API key lacks the required permission, or access to the resource was
        denied.

        The two cases return different bodies, so this is a union rather than
        one shape.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/AuthError'
              - $ref: '#/components/schemas/ApiError'
    NestedResourceNotFound:
      description: >
        No such stack, or the addressed source is not attached to it. Unlike the
        stack

        detail operations, an existing stack belonging to another team returns
        403 here,

        not a concealed 404.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    ValidationFailed:
      description: >
        The request body failed validation, or the write would exceed the
        organization's

        quota. Quota refusals also answer 422, with their own body.
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/ValidationError'
              - $ref: '#/components/schemas/QuotaExceededError'
    TooManyRequests:
      description: >
        The v1 rate limit (120 requests per minute) was exceeded. Applies to
        every

        operation in the v1 group.
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds until the limit resets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >
        StatusStack authenticates requests with API keys, created via the
        dashboard with

        granular permissions (read, write, delete, admin, *).


        API keys support version compatibility:

        - v1 keys: Can only access v1 endpoints

        - v2 keys: Can access both v1 and v2 endpoints


        Available permissions:

        - `read`: View resources (GET requests)

        - `write`: Create and update resources (POST, PUT requests)

        - `delete`: Delete resources (DELETE requests)

        - `admin`: Administrative access to all resources

        - `*`: Wildcard permission (all actions allowed)

````

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