---
title: "Get app-scoped broadcast job status/results (v2, tenant actor)"
method: GET
path: "/v2/apps/{appId}/chats/broadcast/{jobId}"
tags: ["Chats"]
---

# Get app-scoped broadcast job status/results (v2, tenant actor)

`GET /v2/apps/{appId}/chats/broadcast/{jobId}`

## Request

- Base URL: `https://api.chat.ethora.com`
- URL: `https://api.chat.ethora.com/v2/apps/{appId}/chats/broadcast/{jobId}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

**Auth**: Tenant Actor

Same response shape as `/v2/chats/broadcast/{jobId}`. Cross-app jobId
probing is rejected with 403 (the job's recorded appId must match the
app in the path).

## Path parameters

- `appId` string, required
- `jobId` string, required

## Response `200`

```
{
  ok: true,
  jobId: string,
  state: string,
  progress: { processed: number, total: number } | number,
  result?: {
    ok: true,
    total: number,
    processed: number,
    results: [{ chatName, roomJid?, status: 'sent'|'room_not_found'|'dry_run'|'failed', error? }]
  }
}
```

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden — jobId belongs to a different app
- `404`: Job not found
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

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