Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/birdsift-com:birdsift-com-leads-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Birdsift Com Leads API
version: 1.0.0
contact:
name: BirdSift
url: https://www.birdsift.com/developers
description: 'Operations tagged leads across 2 of this provider''s published API definitions: api.birdsift.com.json, birdsift-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.birdsift.com
tags:
- name: Leads
description: Saved workspace leads
paths:
/v1/leads:
get:
tags:
- Leads
summary: List saved leads
description: Returns a cursor-paginated list of leads saved in the authenticated workspace.
operationId: listLeads
parameters:
- name: limit
in: query
description: Page size (1–100)
schema:
type: integer
minimum: 1
maximum: 100
default: 25
- name: cursor
in: query
schema:
type: string
description: Opaque cursor from a previous response's next_cursor
responses:
'200':
description: Lead page
content:
application/json:
schema:
$ref: '#/components/schemas/LeadListResponse'
'400':
description: Invalid query
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limited (60 requests/minute per key)
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
servers:
- url: https://api.birdsift.com
/v1/leads/{id}:
get:
tags:
- Leads
summary: Get one saved lead
description: Fetch a single lead by UUID, including website audit flags used for outreach.
operationId: getLead
parameters:
- name: id
in: path
required: true
description: Lead UUID
schema:
type: string
format: uuid
responses:
'200':
description: Lead detail
content:
application/json:
schema:
$ref: '#/components/schemas/LeadDetail'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Lead not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
servers:
- url: https://api.birdsift.com
/v1/leads/{id}/outreach-draft:
post:
tags:
- Leads
summary: Draft outreach email for a saved lead
description: Generates a fact-based cold email draft for a saved lead using verified Google Places and website audit data.
operationId: draftOutreach
parameters:
- name: id
in: path
required: true
description: Lead UUID
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OutreachDraftRequest'
responses:
'200':
description: Draft email
content:
application/json:
schema:
$ref: '#/components/schemas/OutreachDraftResponse'
'401':
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'402':
description: Insufficient credits
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Insufficient audit data to draft outreach
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
security:
- ApiKeyAuth: []
servers:
- url: https://api.birdsift.com
components:
schemas:
LeadListResponse:
type: object
required:
- leads
- next_cursor
properties:
leads:
type: array
items:
$ref: '#/components/schemas/LeadSummary'
next_cursor:
type: string
nullable: true
description: Pass as ?cursor= on the next page
LeadDetail:
allOf:
- $ref: '#/components/schemas/LeadSummary'
- type: object
required:
- no_website_flag
- not_mobile_friendly_flag
- outdated_website_flag
properties:
no_website_flag:
type: boolean
nullable: true
not_mobile_friendly_flag:
type: boolean
nullable: true
outdated_website_flag:
type: boolean
nullable: true
last_media_year:
type: integer
nullable: true
description: Year the newest photo on the homepage was uploaded. Null when no dated media path was readable — never assume recent.
OutreachDraftRequest:
type: object
properties:
locale:
type: string
enum:
- en
- fr
description: Draft language
LeadSummary:
type: object
required:
- id
- place_id
- name
- category
- address
- website
- email
- outreach_status
- added_at
properties:
id:
type: string
format: uuid
description: BirdSift lead UUID
place_id:
type: string
description: Google Places ID
name:
type: string
category:
type: string
description: Business category or trade
address:
type: string
nullable: true
website:
type: string
nullable: true
email:
type: string
nullable: true
outreach_status:
type: string
enum:
- new
- contacted
- replied
- won
- lost
description: Where the lead sits in the outreach pipeline
added_at:
type: string
format: date-time
ErrorResponse:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
description: Machine-readable error code
message:
type: string
description: Human-readable error message
OutreachDraftResponse:
type: object
required:
- subject
- body
- facts_used
properties:
subject:
type: string
body:
type: string
facts_used:
type: array
items:
type: string
description: Verified facts referenced in the draft
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
description: Workspace API key (`bsk_live_…`). Create from the app.
OAuth2:
type: oauth2
description: 'Supabase OAuth 2.0 access token for workspace-scoped MCP access. Metadata: GET /.well-known/oauth-authorization-server'
flows:
authorizationCode:
authorizationUrl: https://tzngbfxhkxvbtoxsypii.supabase.co/auth/v1/oauth/authorize
tokenUrl: https://tzngbfxhkxvbtoxsypii.supabase.co/auth/v1/oauth/token
scopes:
email: Email address
profile: Basic profile
externalDocs:
description: BirdSift API reference
url: https://www.birdsift.com/docs/api
x-refined-from:
- api.birdsift.com.json
- birdsift-com-openapi.json