---
title: "Society Progress Poll"
method: GET
path: "/v1/mcp/society-progress/{job_id}"
tags: ["mcp-iframe-polling"]
---

# Society Progress Poll

`GET /v1/mcp/society-progress/{job_id}`

## Request

- Base URL: `https://api.evidenso.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.evidenso.com/v1/mcp/society-progress/{job_id}`
- Auth: none declared

Return the current society-progress payload for an in-flight job.

Called by the iframe every ~3 s. The signature is HMAC-SHA256 over
`job_id` with `MCP_SOCIETY_PROGRESS_SIGNING_SECRET` (or
`INTERNAL_SERVICE_TOKEN` as the fallback). On signature mismatch we
return 403 — same shape as expired/leaked URLs.

Response body:
    {"society_progress": {...}}  — matches `_meta.society_progress`
    from the MCP tool results, so the iframe's
    `extractSocietyProgress()` works against either source.

## Path parameters

- `job_id` string, required

## Query parameters

- `sig` string, required: HMAC signature from the kickoff URL.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/evidenso/apis/persona-rag-api.md) - [All operations](https://skmtc.dev/evidenso/apis/persona-rag-api/llms.txt) - [OpenAPI document](https://skmtc.dev/evidenso/apis/persona-rag-api/revisions/86408c178d4f?raw)
