---
title: "One run with every step: what it did, what it returned, and the sentence for the ones that failed."
method: GET
path: "/automations/{id}/runs/{run_id}"
tags: ["automations"]
---

# One run with every step: what it did, what it returned, and the sentence for the ones that failed.

`GET /automations/{id}/runs/{run_id}`

## Request

- Base URL: `https://api.agentisend.com`
- URL: `https://api.agentisend.com/automations/{id}/runs/{run_id}`
- Auth: HTTP bearer

## Path parameters

- `id` string, uuid, required
- `run_id` string, uuid, required

## Response `200`

Success

- GetAutomationsByIdRunsByRunIdReply
  - `object` 'automation_run', required
  - `id` string, uuid, required
  - `automation_id` string, uuid, required
  - `version_number` integer, nullable, required
  - `trigger_type` string, required
  - `event_name` string, nullable, required
  - `contact_id` string, uuid, nullable, required
  - `status` 'running' | 'succeeded' | 'completed' | 'failed' | 'cancelled', required
  - `started_at` string, date-time, required
  - `finished_at` string, date-time, nullable, required
  - `completed_at` string, date-time, nullable, required
  - `created_at` string, date-time, required
  - `current_step` string, nullable, required
  - `waiting_for` object, nullable, required
    - `event` string, nullable, required
    - `until` string, date-time, nullable, required
  - `steps` object[]
    - `index` integer, required
    - `kind` string, required
    - `key` string, nullable, required
    - `type` string, required
    - `status` 'succeeded' | 'completed' | 'skipped' | 'failed' | 'waiting' | 'pending' | 'running', required
    - `output` object, nullable, required
    - `error` union, required
      - string
      - object
        - `message` string, required
    - `started_at` string, date-time, required
    - `finished_at` string, date-time, nullable, required
    - `completed_at` string, date-time, nullable, required
    - `created_at` string, date-time, required

## Other responses

- `400`: The request is malformed or a field failed validation. Codes: validation_error, invalid_idempotency_key, invalid_cursor, plan_not_purchasable, stripe_signature_invalid, support_upload_rejected, sign_in_check_required.
- `401`: No usable credential was sent. Codes: missing_api_key, session_required, mfa_required.
- `403`: The credential may not do this, or the account or key is stopped. Codes: sending_domain_blocked, young_domain_held, domain_sending_disabled, domain_not_verified, onboarding_recipient_not_a_member, onboarding_sender_unavailable, account_suspended, account_sandboxed, human_action_required, csrf_origin_rejected, charge_not_this_account, invalid_api_key, restricted_api_key, insufficient_role, invite_email_mismatch, domain_scope_violation, dedicated_ip_assigned_by_us, approval_required, staff_review_required, trust_paused, kill_switch_active.
- `404`: Nothing with this id exists on the account. Codes: billing_customer_missing, not_found, session_expired, support_ticket_not_found.
- `429`: A rate, quota or ramp ceiling was reached. Codes: onboarding_daily_cap_reached, trust_throttled, invite_limit_reached, rate_ceiling_exceeded, daily_quota_exceeded, monthly_quota_exceeded, rate_limit_exceeded, support_rate_limited.
- `500`: Something failed on our side. Codes: internal_server_error.

---

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