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

# Dashboard Bootstrap

> Authorize and hydrate the dashboard's bounded first view in one request.

The identity-only result is returned before any organization read for
waitlisted and app-only users. Only an admitted control-plane identity may
resolve org authority, consume its effective read scope, and hydrate the
initial org/app projection.



## OpenAPI

````yaml https://api.getfloo.com/openapi.json get /v1/auth/dashboard-bootstrap
openapi: 3.1.0
info:
  title: floo API
  version: 0.1.0
servers:
  - url: https://api.getfloo.com
security: []
paths:
  /v1/auth/dashboard-bootstrap:
    get:
      tags:
        - auth
      summary: Dashboard Bootstrap
      description: >-
        Authorize and hydrate the dashboard's bounded first view in one request.


        The identity-only result is returned before any organization read for

        waitlisted and app-only users. Only an admitted control-plane identity
        may

        resolve org authority, consume its effective read scope, and hydrate the

        initial org/app projection.
      operationId: auth_dashboard_bootstrap
      parameters:
        - $ref: '#/components/parameters/X-Floo-Org-Id'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardBootstrapResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  parameters:
    X-Floo-Org-Id:
      name: X-Floo-Org-Id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Organization to act in; defaults to the one joined most recently.
  schemas:
    DashboardBootstrapResponse:
      properties:
        profile:
          $ref: '#/components/schemas/WhoamiResponse'
        org:
          anyOf:
            - $ref: '#/components/schemas/OrgResponse'
            - type: 'null'
        apps:
          anyOf:
            - $ref: '#/components/schemas/AppListResponse'
            - type: 'null'
      type: object
      required:
        - profile
      title: DashboardBootstrapResponse
      description: Identity gate plus the bounded initial dashboard projection.
    ErrorResponse:
      properties:
        detail:
          $ref: '#/components/schemas/ErrorDetail'
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Body of every error response except request validation (422).
    WhoamiResponse:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
        email:
          type: string
          title: Email
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        waitlisted:
          type: boolean
          title: Waitlisted
        control_plane_access:
          type: boolean
          title: Control Plane Access
        effective_scope:
          anyOf:
            - $ref: '#/components/schemas/KeyScope'
            - type: 'null'
      type: object
      required:
        - user_id
        - email
        - name
        - waitlisted
        - control_plane_access
      title: WhoamiResponse
      description: Response from the whoami endpoint.
    OrgResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        slug:
          type: string
          title: Slug
        plan:
          anyOf:
            - $ref: '#/components/schemas/OrgPlan'
            - type: 'null'
        spend_cap:
          anyOf:
            - type: integer
            - type: 'null'
          title: Spend Cap
        spend_cap_policy:
          $ref: '#/components/schemas/SpendCapPolicy'
        current_period_spend_cents:
          type: integer
          title: Current Period Spend Cents
          default: 0
        spend_cap_exceeded:
          type: boolean
          title: Spend Cap Exceeded
          default: false
        billing_period_start:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Billing Period Start
        billing_period_end:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Billing Period End
        member_count:
          type: integer
          title: Member Count
        member_limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Member Limit
        has_payment_method:
          type: boolean
          title: Has Payment Method
          default: false
        is_internal:
          type: boolean
          title: Is Internal
          default: false
        my_role:
          $ref: '#/components/schemas/OrgRole'
        onboarding_completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Onboarding Completed At
        logo_data_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Logo Data Url
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
        - id
        - name
        - slug
        - plan
        - spend_cap
        - spend_cap_policy
        - member_count
        - my_role
        - created_at
        - updated_at
      title: OrgResponse
      description: Response for a single organization.
    AppListResponse:
      properties:
        apps:
          items:
            $ref: '#/components/schemas/AppResponse'
          type: array
          title: Apps
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        per_page:
          type: integer
          title: Per Page
      type: object
      required:
        - apps
        - total
        - page
        - per_page
      title: AppListResponse
      description: Paginated response for listing apps.
    ErrorDetail:
      properties:
        code:
          type: string
          title: Code
        message:
          type: string
          title: Message
      additionalProperties: true
      type: object
      required:
        - code
        - message
      title: ErrorDetail
      description: Standard error envelope with operation-specific JSON context.
    KeyScope:
      type: string
      enum:
        - read
        - write
        - admin
      title: KeyScope
      description: |-
        Permission scope for an API key.

        Privilege hierarchy: read < write < admin (enforced via scope_level(),
        not native comparison — StrEnum compares lexicographically).
    OrgPlan:
      type: string
      enum:
        - paygo
        - team
        - enterprise
      title: OrgPlan
      description: Billing plan tier for an organization.
    SpendCapPolicy:
      type: string
      enum:
        - 'off'
        - alerts_only
        - freeze_new_spend
        - hard_stop
      title: SpendCapPolicy
      description: How floo should react when an org reaches its spend cap.
    OrgRole:
      type: string
      enum:
        - admin
        - member
        - viewer
      title: OrgRole
      description: Role of a user within an organization.
    AppResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        org_id:
          type: string
          format: uuid
          title: Org Id
        status:
          type: string
          title: Status
        effective_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Effective Status
        runtime_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Runtime Status
        deploy_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Deploy Status
        active_deploy_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Active Deploy Id
        active_deploy_step:
          anyOf:
            - type: string
            - type: 'null'
          title: Active Deploy Step
        last_deploy_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Deploy Id
        last_deploy_outcome:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Deploy Outcome
        last_deploy_failure:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Deploy Failure
        last_deploy_failure_stage:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Deploy Failure Stage
        inferred_health_flags:
          additionalProperties:
            type: boolean
          type: object
          title: Inferred Health Flags
        access_mode:
          $ref: '#/components/schemas/AccessMode'
        access_policy:
          $ref: '#/components/schemas/AccessPolicy'
          default: invite
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        runtime:
          anyOf:
            - type: string
            - type: 'null'
          title: Runtime
        runtime_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Runtime Url
        health_status:
          $ref: '#/components/schemas/HealthStatus'
        last_health_check_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Last Health Check At
        github_connected:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Github Connected
        events:
          anyOf:
            - $ref: '#/components/schemas/AppEventsSummary'
            - type: 'null'
        envs:
          items:
            $ref: '#/components/schemas/EnvironmentSummary'
          type: array
          title: Envs
          default: []
        services:
          items:
            $ref: '#/components/schemas/ServiceSummary'
          type: array
          title: Services
          default: []
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
        - id
        - name
        - org_id
        - status
        - access_mode
        - url
        - runtime
        - health_status
        - last_health_check_at
        - created_at
        - updated_at
      title: AppResponse
      description: Response for a single app.
    AccessMode:
      type: string
      enum:
        - public
        - password
        - accounts
        - sso
      title: AccessMode
      description: Access control mode for an app.
    AccessPolicy:
      type: string
      enum:
        - invite
        - domain
        - open
      title: AccessPolicy
      description: Access policy for ACCOUNTS-mode apps.
    HealthStatus:
      type: string
      enum:
        - healthy
        - unhealthy
        - unknown
      title: HealthStatus
      description: Health check status of an app.
    AppEventsSummary:
      properties:
        mode:
          $ref: '#/components/schemas/ReparoMode'
        webhook_configured:
          type: boolean
          title: Webhook Configured
        error_threshold:
          type: integer
          title: Error Threshold
        cooldown_minutes:
          type: integer
          title: Cooldown Minutes
      type: object
      required:
        - mode
        - webhook_configured
        - error_threshold
        - cooldown_minutes
      title: AppEventsSummary
      description: Content-free events routing summary embedded in AppResponse.
    EnvironmentSummary:
      properties:
        name:
          type: string
          title: Name
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        access_mode:
          $ref: '#/components/schemas/AccessMode'
        access_policy:
          $ref: '#/components/schemas/AccessPolicy'
      type: object
      required:
        - name
        - url
        - access_mode
        - access_policy
      title: EnvironmentSummary
      description: Lightweight environment info embedded in AppResponse.
    ServiceSummary:
      properties:
        name:
          type: string
          title: Name
        type:
          $ref: '#/components/schemas/ServiceType'
        ingress:
          $ref: '#/components/schemas/IngressMode'
        url:
          anyOf:
            - type: string
            - type: 'null'
          title: Url
        cloud_run_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Cloud Run Url
      type: object
      required:
        - name
        - type
        - ingress
        - url
      title: ServiceSummary
      description: |-
        Lightweight service info embedded in AppResponse so the dashboard
        knows which services are public-facing and what each one's URL is.

        `url` is the customer-facing URL routed through floo's gateway (or a
        custom domain). `cloud_run_url` is the direct Cloud Run runtime URL —
        exposed so agents can debug deploy issues without scraping deploy logs;
        clients should always hit `url`, not `cloud_run_url`.
    ReparoMode:
      type: string
      enum:
        - webhook
        - 'off'
      title: ReparoMode
      description: |-
        Operating mode for Reparo.

        `webhook` — detected errors fire an enriched outbound webhook
        `off`     — detection disabled for the app

        Historical note: a `native` mode used to exist that promised floo
        would generate fixes via a GitHub PR. That scope was dropped on
        2026-04-13 because it competes with specialized agent platforms.
    ServiceType:
      type: string
      enum:
        - web
        - api
        - worker
        - cron
        - database
        - cache
        - storage
      title: ServiceType
      description: Type of service within an app.
    IngressMode:
      type: string
      enum:
        - public
        - internal
      title: IngressMode
      description: Whether the service accepts public traffic.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: A `floo_` API key.

````

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