Skip to main content

API, MCP, webhooks & integrations overview

Where to find API keys, the MCP server, webhooks, the two external bidding modes, and Slack/Discord.

Written by Ivan Nedelkovski

Short answer

Lancer is automatable. Under Settings → Integrations you'll find API keys, the MCP server, webhooks, and a link to the full developer documentation at docs.lancer.app. (Slack and Discord notifications connect separately, per campaign.)


API

Create an API key in Settings → Integrations and use it to drive Lancer programmatically — for example to fetch your leads, submit a bid, or reject a job. The full, up-to-date endpoint reference now lives at docs.lancer.app, linked from the Documentation tab in Settings → Integrations.


MCP server

Lancer ships an MCP server so AI tools (like Claude) can work with your account directly. Your connection URL and key are in Settings → Integrations → MCP, which also links out to the full MCP docs (connect guides per client, tools, resources, and prompts). Your MCP key is shown in full only once, when it is created. After that the page shows it masked; if you need a key again, use Regenerate to reveal a new key (the old key stops working). It can:

  • Read and manage campaigns, knowledge base and leads — create/update campaigns, reorder which campaign wins when a job matches more than one, simulate filters, and pull leads across any time range.

  • Manage your inbox — triage rooms, read full conversations and the original job post, open attachment content directly (images, PDFs and text extracts, not just file names), draft and send replies with attachments, and schedule Zoom or Upwork meetings.

  • Work the pipeline — move deals through your CRM stages, set deal values, keep notes and follow-up tasks current, and bulk-export conversations to analyze win/loss.

  • Run guided setup prompts right from your AI tool — "Set up Lancer" walks a new account through the knowledge base, draft campaigns and a cover-letter template end to end; "Tune suitability decisions" benchmarks the suitability AI against a sample of your real jobs and iterates your knowledge base with you until it agrees with your calls.

  • Send a proposal for one job you paste in — for jobs your campaign filters skipped. Share an Upwork job link and say which cover-letter template, sending account or knowledge base to use (if you have several and haven't sent one before, it asks). It drafts the letter and answers, checks the job isn't already sent or being handled by a campaign, and warns on a low fit — then shows you everything and waits. You can edit the letter, answers, boost and attachments, then confirm to send now or after a delay; you can cancel a scheduled send, and later check whether it was sent or failed. Nothing is sent without your explicit confirmation. This is the same feature as the Send Proposal page — see Send a proposal for any Upwork job.

The agent guards a few decisions rather than just inferring them from your leads:

  • Rewriting your cover letter template, or excluding a whole country/market from a campaign, needs your stated goal on the record (and, for a country exclusion, export evidence). Tell it directly what you want — e.g. "fix these claims in my cover letter" or "optimize my template for X clients" — and it proceeds, instead of repeating the same request for missing info.

  • It won't recommend lowering or disabling boost on its own, ever — Lancer always recommends boosting, so that stays fixed platform policy regardless of what evidence comes up. If boost spend looks high, ask it to help design a controlled experiment instead.

  • It won't recommend swapping the contractor or bidder account bound to a campaign on its own either — but it will make that change if you ask for it directly and confirm which account.

It's currently in Beta.


Webhooks & External modes

Subscribe to webhooks to push events — such as a new matching job or a new lead — to your own system. If a delivery fails, it's logged and recorded in your Activity feed, but the webhook itself stays enabled and keeps receiving future events — you don't need to manually re-enable it. Webhook URLs must be public http(s) addresses: Lancer refuses to save URLs that point to localhost, internal hostnames or private network addresses, and it does not follow redirects, so a redirecting endpoint shows as a failed delivery. Point the webhook straight at the final URL. Combined with an external bidding mode on a campaign, Lancer can hand part of the work to your system: in External proposal Lancer still decides which jobs are worth bidding on and only sends you the suitable ones, and your system writes the proposal; in External decision & proposal your system both decides and writes. Either way Lancer submits the proposal on Upwork through your account. See "Test Mode, External Modes & Advanced" and the setup guide at docs.lancer.app.


Slack & Discord

Get new-job, bid and reply alerts in Slack or Discord. These connect per campaign (new campaigns don't inherit an existing connection). Setup guides: Slack · Discord.

Did this answer your question?