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.
openapi: 3.2.0
info:
title: Checkmails Eu Jobs API
version: 1.0.0
contact:
name: checkmails support
url: https://checkmails.eu
description: 'Operations tagged Jobs across 2 of this provider''s published API definitions: checkmails-eu-openapi.json, checkmails-eu-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://checkmails.eu
description: Production
security:
- BearerAuth: []
tags:
- name: Jobs
paths:
/api/v1/jobs/{id}:
get:
summary: Get the status of a bulk job
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Job status
content:
application/json:
schema:
type: object
properties:
job_id:
type: string
total:
type: integer
processed:
type: integer
done:
type: boolean
results:
type: array
items:
$ref: '#/components/schemas/Result'
'400':
description: Missing job ID
'401':
description: Missing or invalid API key
'403':
description: Job belongs to another account
'404':
description: Job not found
tags:
- Jobs
operationId: getApiV1JobsById
x-operation-id-source: derived
servers:
- url: https://checkmails.eu
description: Production
components:
schemas:
Result:
type: object
properties:
email:
type: string
format: email
valid:
type: boolean
description: true ssi verdict == 'valid' (champ conservé pour compatibilité, lire verdict pour 3 états)
verdict:
type: string
enum:
- valid
- invalid
- indeterminate
description: Verdict canonique à 3 états. 'indeterminate' signifie qu'aucune réponse définitive n'a pu être obtenue (4xx persistant, 421, greylist, proxy indisponible, DNS qui ne répond pas — reason dns_indisponible…). Ne PAS envoyer en froid sur 'indeterminate'.
blocked:
type: boolean
reason:
type: string
mx_host:
type: string
smtp_code:
type: integer
flags:
type: array
items:
type: string
risk_score:
type: integer
minimum: 0
maximum: 100
suggestion:
type: string
format: email
description: 'Adresse que la personne voulait probablement taper (faute de frappe sur un fournisseur connu : gmial.com, hotmail.ma, gmail.fr…, ou structure réparée : virgule pour un point, point final). Absent s''il n''y a rien à proposer, et jamais présent sur une adresse ''valid''. Jamais appliquée par l''API : c''est au formulaire de la proposer. Renvoyé par POST /api/v1/verify uniquement. Quand la faute est sûre et que le domaine tapé ne peut pas recevoir de courrier (inexistant, sans MX, MX de parking, squat connu, gmail.*), le domaine n''est pas sondé : verdict ''invalid'', reason ''faute_de_frappe_probable'', flag ''typo_suspected'', aucun crédit débité.'
required:
- email
- valid
- reason
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: chk_<32hex>
externalDocs:
description: Docs & MCP
url: https://checkmails.eu/docs
x-refined-from:
- checkmails-eu-openapi.json
- checkmails-eu-openapi.yml