---
title: "Inspect provider integration install-consent gate"
method: GET
path: "/providers/current/integrations/{appId}/install-gate"
tags: ["Provider integrations"]
---

# Inspect provider integration install-consent gate

`GET /providers/current/integrations/{appId}/install-gate`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/providers/current/integrations/{appId}/install-gate`
- Auth: HTTP bearer

Returns a read-only install-consent gate for a connected app when the authenticated automation client has `provider_integrations.manage`. External URL: `/v1/providers/current/integrations/{appId}/install-gate`. Current Next.js implementation path: `/api/platform/v1/providers/current/integrations/[appId]/install-gate`. This read-only route does not require `Idempotency-Key`; it exposes consent copy, required scopes, data categories, prerequisite evidence, and a fail-closed gate decision only. It never returns raw credentials, OAuth tokens, webhook secrets, raw sync payloads, customer PII, direct external-system calls, install mutations, pause/resume mutations, or revocation mutations.

## Path parameters

- `appId` string, required

## Headers

- `X-Correlation-Id` string

## Response `200`

Provider integration install or revocation gate.

- ProviderIntegrationGateResponse: Read-only install-consent or revocation gate state. The gate response is fail-closed and never performs connected-app install, pause, resume, revoke, credential, OAuth, provider, or fan-out side effects.
  - `app` ProviderIntegrationGateApp, required
    - `app_id` string, required
    - `owner` string, required
    - `verticals` string[], required
    - `categories` string[], required
    - `required_scopes` PlatformScope[], required
    - `data_categories` string[], required
    - `credential_type` 'none' | 'oauth' | 'api_key_digest' | 'webhook_secret_digest' | 'managed_service_account', required
    - `sync_mode` 'read_only' | 'write_with_confirmation' | 'webhook' | 'batch_import' | 'manual_export', required
    - `certification_status` 'deferred' | 'sandbox_certified' | 'live_review' | 'live_certified' | 'revoked', required
    - `install_eligibility` 'public_catalog' | 'invite_only' | 'operator_review' | 'unsupported', required
    - `revocation_behavior` string[], required
    - `support_owner` string, required
  - `modules` ProviderIntegrationGateModule[], required
    - `module_id` 'agent' | 'agency' | 'business' | 'mortgage' | 'legal' | 'developer' | 'renovation', required
    - `label` string, required
    - `workspace_root` string, required
    - `lifecycle_state` 'sandbox_installed' | 'live_review' | 'deferred', required
    - `sync_health` 'healthy' | 'review_required' | 'deferred', required
    - `adapter_posture` 'local_gate_ready_pending_release' | 'deferred_adapter_state_visible' | 'unsupported_adapter_state_visible', required
    - `support_owner` string, required
  - `gate` ProviderIntegrationGateDecision, required
    - `action` 'install_consent' | 'revocation', required
    - `allowed` false, required
    - `decision` 'closed_until_reviewed_runtime_route', required
    - `reason` 'install_route_deferred_until_reviewed_consent_mutation' | 'revocation_route_deferred_until_reviewed_fanout_mutation', required
    - `required_scope` 'provider_integrations.manage', required
    - `route_mode` 'read_only_gate_no_side_effects', required
    - `source_contract` 'vertical_apps_integration_surface', required
    - `runtime_boundary` 'runtime_app_install_routes_deferred_until_prerequisites_pass', required
    - `satisfied_prerequisite_ids` string[], required
    - `missing_prerequisite_ids` string[], required
    - `next_action` string, required
  - `consent` ProviderIntegrationGateConsent, required
    - `consent_required` true, required
    - `consent_text_version` 'connected_app_install_consent_v1', required
    - `consent_subject` 'workspace_connected_app_install', required
    - `required_acknowledgements` string[], required
    - `data_categories` string[], required
    - `scopes` PlatformScope[], required
  - `revocation` ProviderIntegrationGateRevocation, required
    - `revoke_supported` true, required
    - `terminal_state` 'revoked', required
    - `fanout_targets` string[], required
    - `future_reads_blocked` true, required
    - `audit_event_required` true, required
  - `authorization` ProviderIntegrationGateAuthorization, required
    - `organization_id` string, uuid, required
    - `client_id` string, uuid, required
    - `api_key_id` string, uuid, required
    - `required_scope` 'provider_integrations.manage', required
    - `granted_provider_scopes` PlatformScope[], required
    - `actor_model` 'api_key_automation_client', required
  - `public_safety` ProviderIntegrationGatePublicSafety, required
    - `raw_credentials_returned` false, required
    - `oauth_tokens_returned` false, required
    - `webhook_secrets_returned` false, required
    - `customer_pii_returned` false, required
    - `raw_sync_payloads_returned` false, required
    - `direct_external_system_calls` false, required
    - `install_mutation_enabled` false, required
    - `revocation_mutation_enabled` false, required
    - `pause_resume_mutation_enabled` false, required
  - `principal` Principal, required (unresolved $ref)
  - `livemode` boolean, required
  - `request_id` string, required

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid platform API key.
- `403`: Credential, environment, or scope is not allowed.
- `404`: Platform API feature or resource is not available.
- `429`: Rate limit exceeded.
- `500`: Unexpected platform API failure.

---

[API](https://skmtc.dev/homejourney/apis/homejourney-platform-api.md) · [All operations](https://skmtc.dev/homejourney/apis/homejourney-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/homejourney/apis/homejourney-platform-api/revisions/a2c6fe063db1?raw)
