---
title: "Inspect prepared agent host action status"
method: GET
path: "/agent-host/actions/{actionId}"
tags: ["Agent hosts"]
---

# Inspect prepared agent host action status

`GET /agent-host/actions/{actionId}`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/agent-host/actions/{actionId}`
- Auth: HTTP bearer

Returns one prepared agent-host action status when the authenticated automation client has `agent_hosts.read`. External URL: `/v1/agent-host/actions/{actionId}`. Current Next.js implementation path: `/api/platform/v1/agent-host/actions/[actionId]`. This read-only route does not require `Idempotency-Key`; it exposes confirmation, grant, and fail-closed safety state only and never executes a prepared action, calls external providers, reveals raw host transcripts, or returns secrets.

## Path parameters

- `actionId` string, required

## Headers

- `X-Correlation-Id` string

## Response `200`

Prepared agent host action status.

- AgentHostPreparedActionStatusResponse
  - `ok` true, required
  - `action` AgentHostPreparedActionStatus, required
    - `id` string, uuid, required
    - `action_id` string, required
    - `vertical_id` string, required
    - `host_class` string, required
    - `actor_id` string, required
    - `capability` string, required
    - `description` string, required
    - `status` 'prepared' | 'confirmed' | 'rejected' | 'expired' | 'executed' | 'failed' | 'blocked_by_revoked_grant' | 'blocked_by_missing_grant', required
    - `required_scope` 'organizations.read' | 'onboarding.write' | 'credentials.write' | 'listings.read' | 'listings.write' | 'viewings.read' | 'viewings.write' | 'webhooks.read' | 'webhooks.write' | 'sandbox.reset' | 'agent.profile.read' | 'agent.profile.write' | 'agent.listings.read' | 'agent.listings.write' | 'agent.listings.publish' | 'agent.leads.read' | 'agent.leads.write' | 'agent.clients.read' | 'agent.clients.write' | 'agent.viewings.read' | 'agent.viewings.write' | 'agent.distribution.read' | 'agent.distribution.manage' | 'agent.analytics.read' | 'agency.roster.read' | 'agency.roster.manage' | 'agency.teams.manage' | 'agency.listings.read' | 'agency.listings.manage' | 'agency.leads.route' | 'agency.analytics.read' | 'agency.audit.read' | 'agency.integrations.manage' | 'sites.read' | 'sites.write' | 'sites.publish' | 'sites.domains.manage' | 'forms.read' | 'forms.write' | 'forms.submissions.read' | 'scheduling.read' | 'scheduling.write' | 'crm.read' | 'crm.write' | 'crm.sync' | 'widgets.embed' | 'developers.projects.read' | 'developers.projects.write' | 'developers.inventory.read' | 'developers.inventory.write' | 'developers.inventory.publish' | 'developers.prices.read' | 'developers.prices.write' | 'developers.media.write' | 'developers.showflat.read' | 'developers.showflat.write' | 'developers.leads.read' | 'developers.leads.route' | 'renovations.projects.read' | 'renovations.projects.write' | 'development_professional_services.projects.read' | 'valuation_appraisal.cases.read' | 'valuations.read' | 'valuations.embed_keys.read' | 'valuations.embed_keys.write' | 'portfolio.read' | 'property_management.units.read' | 'geospatial.read' | 'insurance_move_in.cases.read' | 'insurance_move_in.cases.write' | 'advertising.campaigns.read' | 'advertising.campaigns.write' | 'advertising.analytics.read' | 'business_directory.profiles.read' | 'business_directory.profiles.write' | 'banks.frontends.read' | 'banks.frontends.write' | 'banks.frontends.publish' | 'banks.eligibility.read' | 'banks.rates.read' | 'banks.products.read' | 'banks.applications.read' | 'banks.applications.write' | 'banks.applications.status.write' | 'banks.documents.read' | 'banks.documents.manifest.write' | 'banks.callbacks.manage' | 'banks.staff.read' | 'banks.staff.manage' | 'banks.audit.read' | 'official_sources.read' | 'official_sources.datasets.read' | 'official_sources.freshness.read' | 'official_sources.audit.read' | 'official_sources.refresh' | 'official_sources.credentials.manage' | 'official_sources.admin' | 'services.bookings.read' | 'services.payments.read' | 'services.payments.write' | 'services.payouts.read' | 'services.payouts.manage' | 'services.payouts.admin' | 'services.settlement.reconcile' | 'platform.billing_owner_visibility.read' | 'platform.import_export_readiness.read' | 'provider_workspace.read' | 'provider_leads.read' | 'provider_leads.manage' | 'provider_bookings.read' | 'provider_bookings.manage' | 'provider_conversations.write' | 'provider_integrations.manage' | 'provider_integrations.sync' | 'provider_catalog.read' | 'provider_sites.read' | 'provider_sites.write' | 'provider_sites.publish' | 'provider_ai.permissions.manage' | 'transactions.read' | 'transactions.write' | 'transactions.documents.read' | 'transactions.documents.write' | 'transactions.milestones.write' | 'conveyancing.matters.read' | 'conveyancing.matters.write' | 'conveyancing.law_firms.manage' | 'conveyancing.audit.read' | 'conveyancing.shares.write' | 'stamp_duty.status.read' | 'stamp_duty.status.write' | 'consents.read' | 'consents.write' | 'document_shares.read' | 'document_shares.write' | 'agent_hosts.read' | 'agent_hosts.write', required: Approved additive platform scope string. Domain scopes are contract-defined for future routes but are not granted to the slice-1 sandbox fixture by default.
    - `idempotency_key_hash` string, required
    - `side_effects_summary` string, required
    - `confirmation_required` true, required
    - `revocable` boolean, required
    - `prepared_at` string, date-time, required
    - `expires_at` string, date-time, required
    - `confirmed_at` string, date-time, nullable, required
    - `rejected_at` string, date-time, nullable, required
  - `grant` AgentHostGrantRuntime, required
    - `grant_id` string, uuid, required
    - `host_class` string, required
    - `actor_id` string, required
    - `organization_id` string, uuid, required
    - `client_id` string, uuid, required
    - `subject_type` string, required
    - `subject_id` string, required
    - `status` 'active' | 'revoked' | 'expired' | 'suspended', required
    - `scopes` PlatformScope[], required
    - `granted_at` string, date-time, required
    - `revoked_at` string, date-time, nullable, required
    - `revocation_reason` string, nullable, required
    - `tools_hidden` boolean, required
    - `future_calls_fail_closed` true, required
  - `safety` AgentHostActionSafety, required
    - `confirmation_required` true, required
    - `revoked_grant_blocks_execution` boolean, required
    - `missing_grant_blocks_execution` boolean, required
    - `future_calls_fail_closed` true, required
    - `tools_hidden` boolean, 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)
