> ## 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.

# Get App

> Get a single app by ID.

Passes ``user`` to ``get_user_app`` so a 404 for an app that lives in
one of the caller's *other* orgs surfaces with ``owning_org`` in the
error detail, letting the dashboard render a "switch to org X"
affordance instead of a raw 404.



## OpenAPI

````yaml https://api.getfloo.com/openapi.json get /v1/apps/{app_id}
openapi: 3.1.0
info:
  title: floo API
  version: 0.1.0
servers:
  - url: https://api.getfloo.com
security: []
paths:
  /v1/apps/{app_id}:
    get:
      tags:
        - apps
      summary: Get App
      description: |-
        Get a single app by ID.

        Passes ``user`` to ``get_user_app`` so a 404 for an app that lives in
        one of the caller's *other* orgs surfaces with ``owning_org`` in the
        error detail, letting the dashboard render a "switch to org X"
        affordance instead of a raw 404.
      operationId: apps_get_app
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: App Id
        - $ref: '#/components/parameters/X-Floo-Org-Id'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppResponse'
        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:
    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.
    ErrorResponse:
      properties:
        detail:
          $ref: '#/components/schemas/ErrorDetail'
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Body of every error response except request validation (422).
    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`.
    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.
    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.