---
title: "Get Registered Application"
method: GET
path: "/api/svc-registry/apps/{app_name}"
tags: ["svc-registry"]
---

# Get Registered Application

`GET /api/svc-registry/apps/{app_name}`

## Request

- Base URL: `https://app.gocrisp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.gocrisp.com/api/svc-registry/apps/{app_name}`
- Auth: none declared

Return one registered app for Terraform refresh / provider Read.

Auth matches ``POST /apps``: Terraform SA, ``gcp-developers`` member, or
local registry secret. The Terraform SA is bound to the same app/env (or
GCP project) as on write.

## Path parameters

- `app_name` string, required

## Query parameters

- `environment` string, nullable

## Response `200`

Successful Response

- RegisteredAppResponse: Single registered-app row as returned to callers.
  - `id` integer, required
  - `appName` string, required
  - `applicationId` string, required
  - `environment` string, required
  - `baseUrl` string, required
  - `sourceProjectId` string, required
  - `runtimeServiceAccountEmail` string, required
  - `name` string, nullable
  - `attachmentScope` string, required
  - `attachmentId` string, required
  - `path` string, nullable
  - `icon` string, nullable
  - `team` ApplicationTeam: Contact metadata for the team that owns an application.
    - `emails` string[]: Contact email addresses for the owning team.
    - `slackChannels` string[]: Slack channels (for example '#alerts-keel') for the owning team.
  - `authorizationModules` string[]
  - `installAcrossAllAccounts` boolean
  - `accountInstallModules` string[]
  - `roleBundles` RoleBundleDeclaration[]
    - `slug` string, required
    - `displayName` string, required
    - `description` string, nullable
    - `application` string[]
    - `modules` object
  - `declaredRoleBundles` RoleBundleDeclaration[]
    - `slug` string, required
    - `displayName` string, required
    - `description` string, nullable
    - `application` string[]
    - `modules` object
  - `companions` CompanionAppSummary[]
    - `applicationId` string, required
    - `appName` string, required
    - `displayName` string, required
  - `companionApplications` CompanionApplicationDeclarationResponse[]
    - `applicationId` string, required
    - `appName` string, required
    - `displayName` string, required
    - `authorizationModules` string[]
    - `attachments` ApplicationAttachmentDeclarationOutput[]
      - `scope` AttachmentTarget, required: One attachment target in a registration payload. ``kind='all_accounts'`` is accepted as legacy wire sugar and normalized to the canonical bucket ``kind='account', all=true``. Concrete FGA scopes require either ``id`` or ``ids``.
        - `kind` 'platform' | 'portfolio' | 'account' | 'all_accounts', required
        - `id` string, nullable
        - `ids` string[], nullable
        - `all` boolean
      - `eligibleModules` string[]
      - `defaultInstallation` AttachmentDefaultInstallation: Whether dock creates the app instance at this scope, and which eligible modules it installs.
        - `application` 'automatic' | 'operator', required
        - `modules` string[]
      - `source` 'registration' | 'operator' | 'dynamic'
    - `roleBundles` RoleBundleDeclaration[]
      - `slug` string, required
      - `displayName` string, required
      - `description` string, nullable
      - `application` string[]
      - `modules` object
  - `attachments` ApplicationAttachmentDeclarationOutput[]
    - `scope` AttachmentTarget, required: One attachment target in a registration payload. ``kind='all_accounts'`` is accepted as legacy wire sugar and normalized to the canonical bucket ``kind='account', all=true``. Concrete FGA scopes require either ``id`` or ``ids``.
      - `kind` 'platform' | 'portfolio' | 'account' | 'all_accounts', required
      - `id` string, nullable
      - `ids` string[], nullable
      - `all` boolean
    - `eligibleModules` string[]
    - `defaultInstallation` AttachmentDefaultInstallation: Whether dock creates the app instance at this scope, and which eligible modules it installs.
      - `application` 'automatic' | 'operator', required
      - `modules` string[]
    - `source` 'registration' | 'operator' | 'dynamic'
  - `isEnabled` boolean
  - `backendServiceName` string, nullable
  - `publicDomain` string, nullable
  - `cloudRunServiceName` string, nullable
  - `catalogStatus` string, required
  - `routingStatus` string, required
  - `lastError` string, nullable
  - `publishedBy` string, nullable
  - `publishedByKind` string, nullable
  - `lastPublishedAt` string, date-time, nullable
  - `lastReconciledAt` string, date-time, nullable
  - `createdAt` string, date-time, nullable
  - `updatedAt` string, date-time, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `1a687a31589e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gocrisp/apis/crisp-app-dock/changes/api/svc-registry/apps/:app_name/get.md)

---

[API](https://skmtc.dev/gocrisp/apis/crisp-app-dock.md) - [All operations](https://skmtc.dev/gocrisp/apis/crisp-app-dock/llms.txt) - [OpenAPI document](https://skmtc.dev/gocrisp/apis/crisp-app-dock/revisions/28638f87e7d4?raw)
