Skip to Content
Proposals

List proposals

List the workspace's proposals and their status, newest first.

GEThttps://api.rankparse.com/v1/proposalsFreeAPI key

Returns the workspace's proposals, newest first, including the ones RankParse created itself (rank-drop investigations, pages not confirmed as indexed, sending changes). Use it to see what the user approved, skipped or let expire, and how each run ended.

Query parameters

statusstring

Only proposals with this status: pending, approved, executing, succeeded, partially_succeeded, failed, skipped, expired, superseded or cancelled. Any other value returns 400 invalid_proposal_input. Omit for every status.

site_idstring

Only this website's proposals. A website of another workspace returns 404 site_not_found. Archived websites of your own workspace are accepted.

limitintegerdefault 25

1 to 100. Larger values are clamped to 100. A value below 1 or not a number falls back to 25. There is no cursor: to see older items, filter by status or site_id.

Response

proposalsarray

Proposal summaries, newest first.

Show properties
idstring

Proposal id (prp_...).

kindstring

indexnow_submit, outreach_send, investigate_drop or outreach_sending_change.

statusstring
titlestring

Server-built summary, for example Send 12 outreach emails to 12 domains.

site_idstring | null

The website the proposal belongs to, or null for a workspace-level item.

sourcestring

agent (created through the API or MCP), system (created by RankParse) or user (a button in the web app).

estimated_creditsinteger

Credits the action costs when it runs: 1 for IndexNow, 0 otherwise.

created_atinteger

Unix time in milliseconds.

expires_atinteger

When a pending proposal expires, in Unix milliseconds.

decided_atinteger | null

When it was approved or skipped, in Unix milliseconds.

decided_viastring | null

web (a person decided in the app), policy (the website's Automatic setting) or system.

resultobject | null

Outcome details once it has run. IndexNow: host, url_count, key_location. Outreach: queued, suppressed, changed, already_queued, removed, changed_since_review (the ids of emails that changed after review and were not sent).

error_codestring | null

Why it failed, or null. See Failure codes.

The summary never contains the URLs, email addresses, subjects or bodies. Those stay in the proposal and are shown only to reviewers in the app.

Errors

HTTPCodeWhen
400invalid_proposal_inputstatus is not a valid status.
401invalid_api_keyMissing, invalid or revoked API key.
404site_not_foundsite_id is not a website of your workspace.
429rate_limitedMore than 60 requests in a minute.

MCP tool: list_proposals (accepts site_id, status, limit), on the API-key MCP endpoint and the OAuth connector.