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

# Get connection status

> Returns the workspace's integration connection state and recommendations in one
payload: whether Slack and Microsoft Teams are connected (with team/org name when
available), the browser-extension download and web-store URLs (null until
published), the list of suggested or accepted integration/skill recommendations
enriched with catalog name, description, category, icon, confidence, priority, and
rationale, and the technology signals detected about the organization's site and
DNS. Scoped to the caller's workspace. Requires the agents:read scope.



## OpenAPI

````yaml GET /v1/api/connect/status
openapi: 3.1.0
info:
  title: HQ API
  description: >-
    Public HTTP API for HQ. Authenticate with a Personal Access Token
    (`Authorization: Bearer hq_pat_...`) for server-side integrations, or an
    OAuth 2.1 authorization-code + PKCE flow for browser apps acting on a user's
    behalf. Both grant from the same resource:action scope vocabulary; an
    endpoint's required scope is listed under its `security`.
  license:
    name: Apache-2.0
    identifier: Apache-2.0
  version: 1.0.0
servers:
  - url: https://api.hq.zone
    description: HQ API (production)
security: []
tags:
  - name: me
    description: The signed-in user's own account
  - name: conversations
    description: Conversations and their messages
  - name: documents
    description: The content-addressed documents library
  - name: schedules
    description: Scheduled prompts and recurring tasks
  - name: agents
    description: Agents, their skills and integrations
  - name: memory
    description: What the assistant remembers (L5 governance)
  - name: tokens
    description: Personal Access Token management
  - name: billing
    description: Usage and billing
  - name: notifications
    description: In-app notification center
  - name: admin
    description: Workspace administration
  - name: integrations
    description: Workspace integrations (Slack, MCP, skills)
  - name: onboarding
    description: New-workspace onboarding wizard
  - name: auth
    description: Sign-in, sessions, and OAuth
paths:
  /v1/api/connect/status:
    get:
      tags:
        - integrations
      summary: Get connection status
      description: >-
        Returns the workspace's integration connection state and recommendations
        in one

        payload: whether Slack and Microsoft Teams are connected (with team/org
        name when

        available), the browser-extension download and web-store URLs (null
        until

        published), the list of suggested or accepted integration/skill
        recommendations

        enriched with catalog name, description, category, icon, confidence,
        priority, and

        rationale, and the technology signals detected about the organization's
        site and

        DNS. Scoped to the caller's workspace. Requires the agents:read scope.
      operationId: connect_status
      responses:
        '200':
          description: Connection state + recommendations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectStatus'
      security:
        - bearer_pat:
            - agents:read
        - oauth2:
            - agents:read
components:
  schemas:
    ConnectStatus:
      type: object
      required:
        - slack
        - teams
        - extension
        - recommendations
        - detected
      properties:
        detected:
          type: array
          items:
            $ref: '#/components/schemas/DetectedItem'
          description: >-
            Everything the profiler detected about the org's site/DNS - shown so
            the

            tenant sees the result even when nothing maps to a connectable

            recommendation (e.g. HubSpot/Mailchimp, which we have no connector
            for yet).
        extension:
          $ref: '#/components/schemas/ExtensionState'
        recommendations:
          type: array
          items:
            $ref: '#/components/schemas/RecItem'
        slack:
          $ref: '#/components/schemas/SlackState'
        teams:
          $ref: '#/components/schemas/TeamsState'
    DetectedItem:
      type: object
      required:
        - source
        - signal_type
        - value
        - confidence
      properties:
        confidence:
          type: number
          format: float
        signal_type:
          type: string
        source:
          type: string
        value:
          type: string
    ExtensionState:
      type: object
      properties:
        download_url:
          type:
            - string
            - 'null'
          description: Self-hosted packaged build (our origin), when available.
        web_store_url:
          type:
            - string
            - 'null'
          description: Chrome Web Store listing, when published.
    RecItem:
      type: object
      required:
        - id
        - kind
        - target_slug
        - confidence
        - status
      properties:
        category:
          type:
            - string
            - 'null'
          description: Catalog category.
        confidence:
          type: number
          format: float
        description:
          type:
            - string
            - 'null'
          description: Catalog description.
        display_name:
          type:
            - string
            - 'null'
          description: >-
            Friendly catalog name (NULL when the slug is not in the catalog -
            the UI

            then falls back to the raw slug).
        icon_url:
          type:
            - string
            - 'null'
          description: >-
            Origin-served icon URL for the catalog entry, mirroring the catalog
            GET

            (`/v1/mcp/catalog/{slug}/icon?v=<md5>` for integrations,

            `/v1/skills/catalog/{slug}/icon?v=<md5>` for skills); `None` when
            the

            entry has no icon, so the UI falls back to a monogram from
            display_name.
        id:
          type: string
          format: uuid
        kind:
          type: string
        priority:
          type:
            - string
            - 'null'
          description: >-
            LLM-reasoned priority (high | medium | low) when the rec came from
            the

            reasoning stage; null for plain rule-bridge recs (migration 0155).
        rationale:
          type:
            - string
            - 'null'
          description: >-
            The model's reasoning for suggesting this - shown so the user sees
            why.
        reason:
          type:
            - string
            - 'null'
        status:
          type: string
        target_slug:
          type: string
    SlackState:
      type: object
      required:
        - connected
      properties:
        connected:
          type: boolean
        team_name:
          type:
            - string
            - 'null'
    TeamsState:
      type: object
      required:
        - connected
        - connect_available
      properties:
        connect_available:
          type: boolean
          description: >-
            Whether "Connect Teams" (the Microsoft sign-in claim flow) is wired
            -

            true only when the controlplane has the Microsoft OIDC app
            configured

            (`MS_OIDC_CLIENT_ID`). The UI keeps the button disabled until then,
            so

            the feature can ship inert and self-activate once the env is set.
        connected:
          type: boolean
        org_name:
          type:
            - string
            - 'null'
        package_url:
          type:
            - string
            - 'null'
          description: >-
            Download path for the HQ Teams app package (manifest zip) when the

            controlplane has one configured (`HQ_TEAMS_APP_PACKAGE`); `None`

            otherwise, so the UI shows the "ask your HQ contact" fallback
            instead of

            a broken link. Mirrors the extension `download_url` shape.
  securitySchemes:
    bearer_pat:
      type: http
      scheme: bearer
      bearerFormat: hq_pat
      description: 'Personal Access Token. Send as `Authorization: Bearer hq_pat_...`.'
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.hq.zone/v1/oauth/authorize
          tokenUrl: https://api.hq.zone/v1/oauth/token
          refreshUrl: https://api.hq.zone/v1/oauth/token
          scopes:
            admin: Administer the workspace (users, settings, integrations)
            agents:read: View the agents in your workspace
            agents:write: Create and configure agents
            billing:read: View usage and billing information
            conversations:read: Read your conversations and their messages
            conversations:write: Start conversations and send messages on your behalf
            documents:read: Read your documents library
            documents:write: Upload and manage documents in your library
            memory:read: Read what the assistant remembers about you
            memory:write: Correct or delete what the assistant remembers
            schedules:read: View your scheduled tasks
            schedules:write: Create and manage scheduled tasks
            tables:read: Read your tables and their rows
            tables:write: Create tables and add, edit, or delete rows

````