MatchKraft Logo
MatchKraft
Email VerifierEmail FinderDomain ScanPricingTestimonials
Log inSign up for free

API Reference

MatchKraft API

Async job-based API for domain scanning, email validation, and email finding. Submit a job, receive a webhook, fetch results.

Base URLhttps://app.matchkraft.com/api/v2

Contents

Overview

The MatchKraft API is asynchronous. Every operation — domain scanning, email validation, or email finding — runs as a background job. This means you get a response instantly while your data is processed in parallel, without waiting for results.

How it works

1

Submit a job

POST your records to the relevant endpoint.

2

Receive a jobId

The API responds immediately with a unique jobId.

3

Job processes in background

MatchKraft processes your records asynchronously.

4

Webhook fires on completion

Your configured webhook endpoint receives a notification with the jobId and status.

5

Fetch results

Use the jobId from the webhook to call the results endpoint and retrieve your data.

Webhook (recommended)

Configure a webhook URL in your dashboard. MatchKraft will POST to it the moment your job completes. Use the jobId from the payload to fetch results.

Polling

Alternatively, call the results endpoint periodically using your jobId until the status is COMPLETED.

Authentication

All API requests must include your API key as a request header. You can find your API key in your MatchKraft dashboard under Settings → API Keys.

Required header
apikey: YOUR_API_KEY
Keep your API key secret. Never expose it in client-side code or public repositories. Rotate it immediately from your dashboard if compromised.

Where to find your API key

Navigate to Integrations → API Key in your MatchKraft dashboard to copy your key and view the base URL.

MatchKraft dashboard showing where to find your API key under Integrations → API Key

Domain Scan

Scan one or more domains to extract verified B2B contact emails associated with each website. Submit a list of URLs and receive a jobId to track progress.

Submit job

POSThttps://app.matchkraft.com/api/v2/domain-scan
curl
curl --location 'https://app.matchkraft.com/api/v2/domain-scan' \
--header 'apikey: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "jobName": "Domain Scan",
  "records": [
    "https://example.com",
    "https://example2.com"
  ]
}'

Response

200 OK — application/json
{
  "jobId": "20f70187-b941-4bb0-b10f-599b025fc425",
  "jobName": "My Job",
  "status": "PENDING"
}

Store the jobId. You will need it to fetch results after your webhook fires.

Fetch results

GEThttps://app.matchkraft.com/api/v2/domain-scan/results/{jobId}

Replace {jobId} with the value returned when the job was submitted. Call this after your webhook notifies you that the job is complete.

Email Validation

Validate one or more email addresses for deliverability, syntax, domain health, and spam-trap detection. Results include a verified status for each address.

Submit job

POSThttps://app.matchkraft.com/api/v2/email-validation
curl
curl --location 'https://app.matchkraft.com/api/v2/email-validation' \
--header 'apikey: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "jobName": "Lead Generation Influencers",
  "records": [
    "john@gmail.com",
    "test@domain.com"
  ]
}'

Response

200 OK — application/json
{
  "jobId": "20f70187-b941-4bb0-b10f-599b025fc425",
  "jobName": "My Job",
  "status": "PENDING"
}

Fetch results

GEThttps://app.matchkraft.com/api/v2/email-validation/results/{jobId}

Email Finder

Find verified professional email addresses for a list of contacts given their first name, last name, and company website. Each record in records is an object with those three fields.

Submit job

POSThttps://app.matchkraft.com/api/v2/email-finder
curl
curl --location 'https://app.matchkraft.com/api/v2/email-finder' \
--header 'apikey: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
  "jobName": "Email Finder Job",
  "records": [
    {
      "firstName": "Arseniy",
      "lastName": "Grusha",
      "website": "https://dataprana.io"
    },
    {
      "firstName": "Randi",
      "lastName": "Zuckerberg",
      "website": "https://zuckerbergmedia.com"
    }
  ]
}'

Request fields

FieldTypeDescription
jobNamestringHuman-readable label for the job.
records[].firstNamestringContact's first name.
records[].lastNamestringContact's last name.
records[].websitestringCompany website URL.

Response

200 OK — application/json
{
  "jobId": "20f70187-b941-4bb0-b10f-599b025fc425",
  "jobName": "My Job",
  "status": "PENDING"
}

Fetch results

GEThttps://app.matchkraft.com/api/v2/email-finder/results/{jobId}

Webhooks

Configure a webhook URL in your MatchKraft dashboard. When a job finishes, MatchKraft sends a single HTTP POST to that URL. The payload is intentionally minimal — it tells you which job completed, not the results themselves.

Setting up your webhook

Go to Integrations → Webhook in your dashboard, paste your endpoint URL, and click Save Webhook. Use Test Webhook to verify the connection.

MatchKraft dashboard showing the Webhook URL setup screen under Integrations → Webhook

What the webhook contains

  • ✓jobId — the unique identifier of the completed job
  • ✓event — always "job.completed"
  • ✓jobType — which endpoint the job belongs to
  • ✓status — COMPLETED or FAILED
  • ✗Results data — NOT included. Fetch these separately using the jobId.

Webhook payload example

POST to your webhook URL — application/json
{
  "event": "job.completed",
  "jobId": "20f70187-b941-4bb0-b10f-599b025fc425",
  "jobType": "email-validation",
  "status": "COMPLETED"
}

After receiving the webhook

  1. 1Extract the jobId from the payload.
  2. 2Determine the endpoint from jobType (e.g. email-validation → /email-validation/results/{jobId}).
  3. 3Call the corresponding results endpoint with your API key.
  4. 4Process the results.

Webhook best practices

  • Respond to the webhook with HTTP 200 immediately — process the jobId asynchronously.
  • Implement idempotency using the jobId in case the webhook is delivered more than once.
  • Validate that the incoming payload contains a recognized jobId before fetching results.
  • Use HTTPS for your webhook endpoint to protect data in transit.

Product

  • Email Verifier
  • Email Finder
  • Domain Scan
  • Pricing

Resources

  • Testimonials
  • Book a Meeting
  • API Reference
  • Blog

Company

  • About
  • Contact

Legal

  • Privacy
  • Terms
MatchKraft

Built for deliverability and scale

© 2026 MatchKraft. All rights reserved.