runs

runs.confirmCompanies

Confirm a run's company list so Selda finds the decision-makers and drafts the messages. Spends credits. Sends nothing, the send is still a human press in the app.

Dispatched to runs.confirmCompanies on POST /mcp/mutate. This route is a different URL for the same call: the request is answered by the same dispatcher, with the same authentication, the same scope check, the same organisation scoping and the same refusals.

  • Scope: write
  • A free sandbox key is refused: it runs the discovery and research engine: web search, crawls, model calls, per-lead credits
  • MCP tools that wrap the same function: selda_confirm_companies
  • Filled in from your API key, never sent by you: orgId
  • A legacy entry. Its summary above says what that costs you.
post/v1/runs/{runId}/confirm-companies

Request

  • Base URL: https://api.selda.ai
  • URL: https://api.selda.ai/v1/runs/{runId}/confirm-companies
  • Auth: HTTP bearer

Path parameters

runIdstring required

A Convex document id in the campaignRuns table.

Request body

languagestring required
languageChosenboolean

DID THE HUMAN NAME THAT LANGUAGE at this gate, or is it Selda's proposal riding through? The card sends a language on every confirm, whether or not anyone touched the field, and the engine read the mere presence of confirmedProfile.language as "the operator answered the question", then enforced it over every company's own evidence and told them they had chosen it. Absent = an older client that does not send it; the presence of a language is then read as before, and simply never attributed to the human.

channelstring required
targetAudiencestring
targetRolesstring[]
targetMarketstring
greetingstring
tonestring
leadsPerCompanystring
excludedDomainsstring[]
researchCountnumber
contactResearchRequeststring

What else the human wants found out about the decision-maker, in their own words. A real query, not a note: engineV3 runs one web search per named contact with exactly this question, stores the answer on the lead and hands it to the composer. Empty = nothing extra is searched for and nothing extra is spent.

Response

The call succeeded.

valueunknown required
request_idstring required

Echoed in the X-Request-Id header.

Changes

No recorded changes to this operation across all 1 revision of this API.