Skip to main content
Use Woodpecker Co through Corsair: one client, typed API calls. Create a key in Woodpecker under Add-ons, API & Integrations, API keys. Your subscription needs the API add-on. Things to know before you send:
  • Real outreach. campaigns.run starts contacting the campaign’s prospects. It also resumes a paused or stopped campaign.
  • Pause and stop. campaigns.pause and campaigns.stop both halt contact until campaigns.run is called again; they differ in the status they leave the campaign in.
  • Adding prospects can partly succeed. prospects.addToCampaign returns a result per prospect, and an entry with status: 'ERROR' was not added. DUPLICATE is not an error. If none could be added, Woodpecker answers 400: the call throws a WoodpeckerCoAPIError whose body.prospects holds the reasons.
  • force. Prospects whose global status is not ACTIVE are rejected unless you pass force: true, and with it they may be contacted again even after replying elsewhere or opting out.
  • Deleting a step. campaigns.deleteStep needs the campaign in DRAFT or EDITED status and the step’s ID. Both come from Woodpecker’s campaign API (POST v2/campaigns/{id}/make_editable and GET v2/campaigns/{id}), which this plugin does not wrap yet. A deleted step cannot be restored.
  • Rate limits. Woodpecker runs one request at a time per account and queues six more for up to 15 seconds each. Anything past that is dropped, with a 429 on v2 and a 409 E_TOO_MANY_REQUESTS on v1. The plugin retries both up to three times with backoff. Every other 409 is a real conflict and is not retried.
  • Paging. prospects.listInCampaigns returns next_page, which stays set while pages come back full, so a full last page leads to one empty page. Woodpecker’s X-Total-Count header is not exposed.
  • Webhooks. The plugin does not receive webhooks. webhooks.listEvents lists the event types from Woodpecker’s docs without calling the API.
What you get:
  • 8 typed API operations

Setup

1

Install

2

Add the plugin

corsair.ts
Multi-tenancy is the default — scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

List running campaigns
Add a prospect to a campaign
See the full list on the API page.

What’s next

API reference

Every woodpeckerco.api.* operation with input and output types.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.