leads

leads.add

Add one company/contact. Pass analysis with research you already did and the message is written from it instead of a fresh crawl.

Dispatched to leads.add 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 may call it
  • MCP tools that wrap the same function: selda_add_lead
  • Filled in from your API key, never sent by you: orgId, userId
post/v1/leads

Request

  • Base URL: https://api.selda.ai
  • URL: https://api.selda.ai/v1/leads
  • Auth: HTTP bearer

Request body

projectIdstring required
firstNamestring
lastNamestring
emailstring
companystring
companyDomainstring
jobTitlestring
linkedinUrlstring
phonestring
notesstring
analysisstring
outreachAnglestring

The opening the operator already chose, and why they chose the company. Both are read by the engine (operatorAngle governs the opening, whyGoodLead feeds research and the fit call). They were wired into the engine on 17.8.2026 and had no door on this mutation for an hour, which is the same shape of gap the analysis had for a week: read by a writer, unreachable by the caller.

whyGoodLeadstring
externalUrlstring
mediaImageUrlstring

A PICTURE FOR THIS ONE PERSON'S MESSAGE (15.9.2026). mediaImageUrl is a public https address, a gif rendered for this company, a screenshot of their own site. mediaLinkUrl makes it clickable, which is how a gif opens a video. It goes into THIS lead's draft when the draft is composed, so it is in the text the human approves, and it beats any picture set on the campaign as a whole. A picture never costs a lead: an address that cannot be used is dropped, the lead is created anyway, and the answer says in words what was not kept and why (mediaRejected).

mediaLinkUrlstring
mediaAltstring
mediaWidthnumber
sourcestring
tagsstring[]
citystring
countrystring
locationstring
customFieldsunknown
fieldsobject

Your own data for this company's personal page, e.g. { demo: "https://...", offer: "...", price: 49 }.

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.