{"openapi":"3.1.0","info":{"title":"Scrape.Email API","version":"1.0.0","summary":"Business contact discovery, URL enrichment, and cloud scraping.","description":"Account-scoped REST API for the Scrape.Email workspace.\n\n**Credits.** Lead Finder costs 1 credit per delivered lead, URL enrichment 5 credits per URL that returns contact details, Music Promotion and Press 5 credits per newly delivered canonical contact, and Instant Scrape 20 credits per successfully enriched result. Failed or unsupported inputs are not charged.\n\n**Asynchronous jobs.** `POST /api/v1/scrape/jobs` queues work and returns immediately. A server-side worker keeps processing after your process exits, so integrate with `scrape.job.completed` instead of polling from a short-lived runtime.\n\n**Rate limits.** Per API key: search 60/min, export 10/min, saved leads 120/min, account 120/min, enrichment 30/min, music and press search 30/min, scrape creation 20/min, scrape status 240/min.","contact":{"name":"Scrape.Email support","email":"waconzy@live.com","url":"https://www.scrape.email/contact"},"license":{"name":"Commercial","url":"https://www.scrape.email/terms"}},"servers":[{"url":"https://www.scrape.email","description":"Production"}],"externalDocs":{"description":"API reference","url":"https://www.scrape.email/api-docs"},"tags":[{"name":"Account","description":"Plan, workspace, and credit balance."},{"name":"Leads","description":"Search, reveal, export, and saved contacts."},{"name":"Verification","description":"Email address verification."},{"name":"Enrichment","description":"Public URL contact-route discovery."},{"name":"Compliance","description":"Suppression list sync."},{"name":"Instant Scrape","description":"Asynchronous multi-platform scraping jobs."},{"name":"Music Promotion","description":"Playlist, radio, TV, and media contacts."},{"name":"Press","description":"Journalists, editors, and outlets."}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/register":{"post":{"tags":["Account"],"operationId":"register","summary":"Create a free account and get an API key","description":"Public endpoint used by the mobile app. Creates a 14-day trial account with the standard 20 free credits and returns a working API key immediately. Throttled per IP because each signup carries free credits.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}}},"responses":{"201":{"description":"Account created with its API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"409":{"description":"An account already exists for that email."},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/account/delete":{"post":{"tags":["Account"],"operationId":"deleteAccount","summary":"Delete this account and all of its data","description":"Self-service deletion. Removes the account, its saved leads, campaigns, senders, keys, webhooks and CRM connections. Payment records are retained for accounting. Requires `{ \"confirm\": true }`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirm":{"type":"boolean","const":true}}}}}},"responses":{"200":{"description":"Deletion result.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"},"accountId":{"type":"string"},"note":{"type":"string"}}}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/account":{"get":{"tags":["Account"],"operationId":"getAccount","summary":"Plan, workspace, and credit balance","description":"Returns the workspace, plan, live credit balance, and the credit cost of every module. Requires the `Search` scope.","responses":{"200":{"description":"Current account state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/leads/search":{"post":{"tags":["Leads"],"operationId":"searchLeads","summary":"Search and reveal business contacts","description":"Charges 1 credit per newly delivered lead. Delivered contacts are saved to the workspace. At least one targeting filter is required.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadFilters"}}}},"responses":{"200":{"description":"Delivered page and credit usage.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadSearchResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/leads/export":{"post":{"tags":["Leads"],"operationId":"exportLeads","summary":"Export matched leads as CSV","description":"Requires the `Export` scope. Sends UTF-8 CSV with `X-Lead-*` usage headers.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadFilters"}}}},"responses":{"200":{"description":"CSV file.","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/leads/saved":{"get":{"tags":["Leads"],"operationId":"listSavedLeads","summary":"List saved leads","description":"Returns contacts already revealed in this workspace. Reading does not spend credits. Requires the `Search` scope.","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"pageSize","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":100}},{"name":"status","in":"query","schema":{"type":"string","example":"Saved"}},{"name":"campaignId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Saved contacts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedLeadsResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/suppressions":{"get":{"tags":["Compliance"],"operationId":"listSuppressions","summary":"Read the do-not-contact list","description":"Returns the account's suppression list so it can be synced with your own systems. Requires the `Search` scope.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":2000,"default":500}}],"responses":{"200":{"description":"Suppression entries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionList"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Compliance"],"operationId":"addSuppressions","summary":"Add one or many suppressions","description":"Suppressed recipients are excluded from every send path, including scheduled follow-ups. Requires the `Search` scope.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionRequest"}}}},"responses":{"200":{"description":"Per-address result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Compliance"],"operationId":"removeSuppression","summary":"Remove a suppression","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","format":"email"}}],"responses":{"200":{"description":"Removal result.","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean"},"email":{"type":"string"}}}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/verify":{"post":{"tags":["Verification"],"operationId":"verifyEmails","summary":"Verify one or many email addresses","description":"Runs syntax, domain, mail-exchanger, disposable, role-address, free-provider, typo, and catalog-readiness checks. Charges 1 credit per verified address; only the affordable share of a batch is verified and the rest is reported in `skipped`.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyRequest"}}}},"responses":{"200":{"description":"Verification rows and credit usage.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/enrichment":{"post":{"tags":["Enrichment"],"operationId":"enrichUrls","summary":"Enrich public URLs into contact routes","description":"Accepts up to 100 public URLs. Returns all emails, phone numbers, social usernames, per-network profiles, the contact page, and the submission link. Off-brand socials, paid pitch platforms, and unrelated submission links are removed. Charges 5 credits per URL that returns contact details.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentRequest"}}}},"responses":{"200":{"description":"Enrichment rows and credit usage.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/scrape/jobs":{"get":{"tags":["Instant Scrape"],"operationId":"listScrapeJobs","summary":"List recent scrape jobs","responses":{"200":{"description":"The 50 most recent jobs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScrapeJobList"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Instant Scrape"],"operationId":"createScrapeJob","summary":"Queue an Instant Scrape job","description":"Queues the URL list and returns immediately. A server-side worker completes the job even if your process exits. Charges 20 credits per successfully enriched result.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScrapeJobRequest"}}}},"responses":{"201":{"description":"Queued job.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScrapeJobCreated"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/scrape/jobs/{jobId}":{"get":{"tags":["Instant Scrape"],"operationId":"getScrapeJob","summary":"Job progress and results","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":2000,"default":200}}],"responses":{"200":{"description":"Job state with result rows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScrapeJobDetail"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"404":{"description":"Job not found."},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/scrape/jobs/{jobId}/export":{"get":{"tags":["Instant Scrape"],"operationId":"exportScrapeJob","summary":"Export job results as CSV","description":"Requires the `Export` scope. Sends UTF-8 CSV with an `X-Scrape-Rows` header.","parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CSV file.","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"404":{"description":"Job not found."},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/music-promotion/search":{"post":{"tags":["Music Promotion"],"operationId":"searchMusicPromotion","summary":"Search music-promotion contacts","description":"Playlist, radio, TV, network, podcast, DJ, label, PR, booking, venue, and media records. Charges 5 credits per newly delivered canonical contact.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicPromotionFilters"}}}},"responses":{"200":{"description":"Delivered contacts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadSearchResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/music-promotion/export":{"post":{"tags":["Music Promotion"],"operationId":"exportMusicPromotion","summary":"Export music-promotion contacts as CSV","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MusicPromotionFilters"}}}},"responses":{"200":{"description":"CSV file.","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/press/search":{"post":{"tags":["Press"],"operationId":"searchPress","summary":"Search press and journalist contacts","description":"Charges 5 credits per newly delivered contact.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressFilters"}}}},"responses":{"200":{"description":"Delivered contacts.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadSearchResult"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/press/export":{"post":{"tags":["Press"],"operationId":"exportPress","summary":"Export press contacts as CSV","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PressFilters"}}}},"responses":{"200":{"description":"CSV file.","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"description":"Invalid request body or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, invalid, or under-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Not enough credits for the requested delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsufficientCredits"}}}},"429":{"description":"Per-key rate limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporary upstream failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{"search.completed":{"post":{"operationId":"webhook_search_completed","summary":"search.completed event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"search.completed"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"export.completed":{"post":{"operationId":"webhook_export_completed","summary":"export.completed event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"export.completed"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"lead.created":{"post":{"operationId":"webhook_lead_created","summary":"lead.created event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"lead.created"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"enrichment.completed":{"post":{"operationId":"webhook_enrichment_completed","summary":"enrichment.completed event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"enrichment.completed"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"scrape.job.created":{"post":{"operationId":"webhook_scrape_job_created","summary":"scrape.job.created event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"scrape.job.created"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"scrape.job.completed":{"post":{"operationId":"webhook_scrape_job_completed","summary":"scrape.job.completed event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"scrape.job.completed"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"music-promotion.completed":{"post":{"operationId":"webhook_music_promotion_completed","summary":"music-promotion.completed event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"music-promotion.completed"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}},"press.completed":{"post":{"operationId":"webhook_press_completed","summary":"press.completed event","description":"Delivered to registered HTTPS endpoints with an HMAC-SHA256 signature over `timestamp + \".\" + rawBody`.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["id","event","timestamp","data"],"properties":{"id":{"type":"string","example":"evt_9f2c1a"},"event":{"type":"string","const":"press.completed"},"timestamp":{"type":"integer","example":1770000000},"data":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Acknowledge quickly, then process asynchronously."}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"bl_live_*","description":"Account-scoped API key created in the API & Webhooks module. The full key is shown once."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Valid API key with Search scope required."}}},"Suppression":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"reason":{"type":"string","enum":["Unsubscribed","Bounced","Complaint","Manual"]},"source":{"type":"string","enum":["Inbox","Manual","Provider"]},"createdAt":{"type":"string","format":"date-time"}}},"SuppressionList":{"type":"object","properties":{"suppressions":{"type":"array","items":{"$ref":"#/components/schemas/Suppression"}},"total":{"type":"integer"}}},"SuppressionRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"emails":{"type":"array","maxItems":200,"items":{"type":"string","format":"email"}},"reason":{"type":"string","enum":["Unsubscribed","Bounced","Complaint","Manual"],"default":"Manual"},"source":{"type":"string","enum":["Inbox","Manual","Provider"],"default":"Provider"}}},"SuppressionResult":{"type":"object","properties":{"suppressed":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"suppressed":{"type":"boolean"},"reason":{"type":"string"},"error":{"type":"string"}}}}}},"InsufficientCredits":{"type":"object","properties":{"error":{"type":"string"},"usage":{"$ref":"#/components/schemas/Usage"}}},"RegisterRequest":{"type":"object","required":["name","email","password"],"properties":{"name":{"type":"string","minLength":2,"example":"Alex Morgan"},"email":{"type":"string","format":"email","example":"alex@company.com"},"password":{"type":"string","minLength":8,"example":"at-least-eight-characters"}}},"RegisterResult":{"type":"object","properties":{"apiKey":{"type":"string","description":"Shown once. Use it as the Bearer token.","example":"bl_live_..."},"account":{"type":"object","properties":{"workspace":{"type":"string"},"plan":{"type":"string"},"trialEnds":{"type":["string","null"]},"usage":{"$ref":"#/components/schemas/Usage"}}},"note":{"type":"string"}}},"Usage":{"type":"object","properties":{"creditLimit":{"type":"integer","example":150000},"creditsUsed":{"type":"integer","example":4200},"creditsRemaining":{"type":"integer","example":145800},"bonusCredits":{"type":"integer","example":0},"usageResetAt":{"type":["string","null"],"format":"date-time"}}},"Account":{"type":"object","properties":{"workspace":{"type":"string"},"plan":{"type":"string","enum":["Trial","Starter","Professional","Team","Agency","Enterprise"]},"usage":{"$ref":"#/components/schemas/Usage"},"creditCosts":{"type":"object","properties":{"leadFinder":{"type":"integer","example":1},"urlEnrichment":{"type":"integer","example":5},"musicPromotion":{"type":"integer","example":5},"press":{"type":"integer","example":5},"instantScrape":{"type":"integer","example":20}}}}},"LeadFilters":{"type":"object","description":"At least one targeting filter is required.","properties":{"company":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"domain":{"type":"string"},"title":{"type":"string"},"industry":{"type":"string"},"location":{"type":"string"},"country":{"type":"string"},"verification":{"type":"string"},"minRevenue":{"type":"string"},"maxRevenue":{"type":"string"},"linkedin":{"type":"string"},"techStack":{"type":"string"},"funding":{"type":"string"},"trafficGrowth":{"type":"string"},"hiring":{"type":"string"},"companyAttributes":{"type":"string"},"hqLocation":{"type":"string"},"page":{"type":"integer","minimum":1,"default":1},"pageSize":{"type":"integer","minimum":1,"default":100},"quantity":{"type":"integer","description":"Export only: number of matching rows to reveal."},"hasEmail":{"type":"boolean"},"hasPhone":{"type":"boolean"},"hasLinkedIn":{"type":"boolean"},"hasCompany":{"type":"boolean"},"hasDomain":{"type":"boolean"}}},"Lead":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"linkedin":{"type":"string"},"title":{"type":"string"},"level":{"type":"string"},"company":{"type":"string"},"domain":{"type":"string"},"location":{"type":"string"},"country":{"type":"string"},"revenue":{"type":"string"},"employees":{"type":"string"},"industry":{"type":"string"},"verification":{"type":"string"},"verification_status":{"type":"string","enum":["Yes","No"]},"sourceType":{"type":"string"},"submissionUrl":{"type":"string"},"status":{"type":"string"}}},"LeadSearchResult":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/Lead"}},"total":{"type":"integer"},"page":{"type":"integer"},"pageSize":{"type":"integer"},"matchMode":{"type":"string","enum":["exact","closest"]},"relaxedFilters":{"type":"array","items":{"type":"string"}},"usage":{"$ref":"#/components/schemas/Usage"},"saved":{"type":"object","properties":{"saved":{"type":"integer"},"existing":{"type":"integer"},"total":{"type":"integer"}}},"creditsCharged":{"type":"integer"}}},"SavedLeadsResult":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/Lead"}},"total":{"type":"integer"},"page":{"type":"integer"},"pageSize":{"type":"integer"},"totalPages":{"type":"integer"}}},"VerifyRequest":{"type":"object","description":"Provide either email or emails. Up to 100 addresses per call.","properties":{"email":{"type":"string","format":"email"},"emails":{"type":"array","maxItems":100,"items":{"type":"string","format":"email"}}}},"VerificationRow":{"type":"object","properties":{"email":{"type":"string"},"normalized":{"type":"string"},"status":{"type":"string","enum":["valid","risky","invalid","unknown"]},"reason":{"type":"string"},"score":{"type":"integer","minimum":0,"maximum":100},"suggestion":{"type":"string","description":"Corrected address when the domain looks misspelled."},"checks":{"type":"object","properties":{"syntax":{"type":"boolean"},"domain":{"type":"boolean"},"mx":{"type":"boolean"},"disposable":{"type":"boolean"},"freeProvider":{"type":"boolean"},"roleAccount":{"type":"boolean"},"typo":{"type":"boolean"},"catalogReady":{"type":"boolean"}}}}},"VerifyResult":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/VerificationRow"}},"summary":{"type":"object","properties":{"total":{"type":"integer"},"valid":{"type":"integer"},"risky":{"type":"integer"},"invalid":{"type":"integer"},"unknown":{"type":"integer"},"catalogReady":{"type":"integer"}}},"creditsCharged":{"type":"integer"},"skipped":{"type":"integer"},"usage":{"$ref":"#/components/schemas/Usage"}}},"EnrichmentRequest":{"type":"object","required":["urls"],"properties":{"urls":{"type":"array","maxItems":100,"items":{"type":"string","format":"uri"}}}},"EnrichmentRow":{"type":"object","properties":{"inputUrl":{"type":"string"},"finalUrl":{"type":"string"},"status":{"type":"string","enum":["enriched","no_contact_details","credits_required","unavailable"]},"title":{"type":"string"},"description":{"type":"string"},"company":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"emails":{"type":"array","items":{"type":"string"}},"phones":{"type":"array","items":{"type":"string"}},"socialUsernames":{"type":"array","items":{"type":"string"}},"socialProfiles":{"type":"array","items":{"type":"string"}},"linkedin":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"x":{"type":"string"},"youtube":{"type":"string"},"tiktok":{"type":"string"},"contactPage":{"type":"string"},"submissionLink":{"type":"string"},"hasContactDetails":{"type":"boolean"},"error":{"type":"string"}}},"EnrichmentResult":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/EnrichmentRow"}},"usage":{"$ref":"#/components/schemas/Usage"},"creditsCharged":{"type":"integer"},"contactDetailsFound":{"type":"integer"},"contactDetailsLocked":{"type":"integer"}}},"ScrapeJobRequest":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Public URLs, one per line or separated by whitespace."},"datasetId":{"type":"string","description":"Optional forced dataset. Omit to auto-detect per URL."}}},"ScrapeJob":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["Queued","Running","Complete","Failed"]},"datasetId":{"type":"string"},"inputCount":{"type":"integer"},"processedCount":{"type":"integer"},"successCount":{"type":"integer"},"failedCount":{"type":"integer"},"sharedCreditsUsed":{"type":"integer"},"currentBatch":{"type":"integer"},"totalBatches":{"type":"integer"},"createdAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]}}},"ScrapeJobList":{"type":"object","properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/ScrapeJob"}}}},"ScrapeJobCreated":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/ScrapeJob"},"usage":{"$ref":"#/components/schemas/Usage"},"skipped":{"type":"integer"},"note":{"type":"string"}}},"ScrapeResultRow":{"type":"object","properties":{"inputUrl":{"type":"string"},"datasetId":{"type":"string"},"sourceRow":{"type":"integer"},"status":{"type":"string","enum":["Ready","Failed"]},"result":{"type":"object","additionalProperties":{"type":"string"}},"error":{"type":"string"},"enrichmentStatus":{"type":"string"}}},"ScrapeJobDetail":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/ScrapeJob"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/ScrapeResultRow"}},"offset":{"type":"integer"},"limit":{"type":"integer"}}},"MusicPromotionFilters":{"type":"object","properties":{"source":{"type":"string","enum":["all","playlist","media"],"default":"all"},"query":{"type":"string"},"category":{"type":"string"},"contactMethod":{"type":"string","enum":["email","phone","contact-page","website","social","email-and-link"]},"country":{"type":"string"},"stateRegion":{"type":"string"},"city":{"type":"string"},"organization":{"type":"string"},"genre":{"type":"string"},"audienceMarket":{"type":"string"},"curator":{"type":"string"},"qualificationStatus":{"type":"string","enum":["Qualified","Review"]},"confidence":{"type":"string","enum":["High","Medium","Low"]},"emailDomain":{"type":"string"},"emailEvidence":{"type":"string"},"origin":{"type":"string"},"market":{"type":"string"},"hasSocial":{"type":"boolean"},"qualityTier":{"type":"string"},"page":{"type":"integer","minimum":1,"default":1},"pageSize":{"type":"integer","minimum":1,"default":50},"quantity":{"type":"integer"}}},"PressFilters":{"type":"object","properties":{"query":{"type":"string"},"category":{"type":"string"},"outletType":{"type":"string"},"country":{"type":"string"},"contactMethod":{"type":"string","enum":["email","website","linkedin","social","article"]},"emailStatus":{"type":"string"},"emailEvidence":{"type":"string"},"source":{"type":"string"},"page":{"type":"integer","minimum":1,"default":1},"pageSize":{"type":"integer","minimum":1,"default":50},"quantity":{"type":"integer"}}}}}}