{"openapi":"3.1.0","info":{"title":"Mailcheck API","description":"REST API for checking SPF, DKIM, and DMARC email deliverability configuration.","version":"1.0.0"},"paths":{"/api/v1/subscribe":{"post":{"tags":["mailcheck"],"summary":"Subscribe","description":"Subscribe an email address for deliverability insights & updates.","operationId":"subscribe_api_v1_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Subscribe Api V1 Subscribe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health":{"get":{"tags":["mailcheck"],"summary":"Health","description":"Health-check endpoint.","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/api/v1/check/{domain}":{"get":{"tags":["mailcheck"],"summary":"Check Domain","description":"Run SPF, DKIM, DMARC, MTA-STS, TLS-RPT, and BIMI checks for *domain*\nand return a JSON deliverability report with a 0–100 score.","operationId":"check_domain_api_v1_check__domain__get","parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string","description":"Domain name to check, e.g. example.com","title":"Domain"},"description":"Domain name to check, e.g. example.com"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Check Domain Api V1 Check  Domain  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/plans":{"get":{"tags":["mailcheck"],"summary":"Get Plans","description":"Return available pricing plans with supported crypto currencies.","operationId":"get_plans_api_v1_payments_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Plans Api V1 Payments Plans Get"}}}}}}},"/api/v1/payments/rates":{"get":{"tags":["mailcheck"],"summary":"Get Rates","description":"Return current crypto-to-USD exchange rates and calculated plan prices.","operationId":"get_rates_api_v1_payments_rates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Rates Api V1 Payments Rates Get"}}}}}}},"/api/v1/payments/checkout":{"post":{"tags":["mailcheck"],"summary":"Checkout","description":"Create a crypto payment checkout session.\n\nReturns payment details including wallet address (self-hosted) or\ncheckout URL (NOWPayments) for the user to send payment.","operationId":"checkout_api_v1_payments_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Checkout Api V1 Payments Checkout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/webhook":{"post":{"tags":["mailcheck"],"summary":"Payment Webhook","description":"Webhook endpoint for NOWPayments IPN callbacks.\n\nVerifies the HMAC signature and updates payment status accordingly.\nAlso serves as an endpoint for self-hosted payment notifications.","operationId":"payment_webhook_api_v1_payments_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Payment Webhook Api V1 Payments Webhook Post"}}}}}}},"/api/v1/payments/{payment_id}":{"get":{"tags":["mailcheck"],"summary":"Payment Status","description":"Check the status of a payment by its ID.","operationId":"payment_status_api_v1_payments__payment_id__get","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Payment Status Api V1 Payments  Payment Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments/{payment_id}/confirm":{"post":{"tags":["mailcheck"],"summary":"Confirm Payment","description":"Manually confirm a self-hosted crypto payment with a TX hash.\n\nThis is used when processing payments sent directly to our wallets\nwithout NOWPayments.","operationId":"confirm_payment_api_v1_payments__payment_id__confirm_post","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Confirm Payment Api V1 Payments  Payment Id  Confirm Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payments":{"get":{"tags":["mailcheck"],"summary":"List All Payments","description":"List all payments, optionally filtered by email or status.\n\nQuery params: ?email=user@example.com&status=confirmed","operationId":"list_all_payments_api_v1_payments_get","parameters":[{"name":"email","in":"query","required":false,"schema":{"type":"string","default":"","title":"Email"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List All Payments Api V1 Payments Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/batch":{"post":{"tags":["batch"],"summary":"Batch Check Domains","description":"Check multiple domains at once and return deliverability reports.\n\nAccepts a list of up to 50 domain names. Returns individual reports\nfor each domain plus a summary with aggregate score statistics.\n\nThis endpoint counts as ONE request against the rate limiter (not N).","operationId":"batch_check_domains_api_v1_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BatchCheckRequest":{"properties":{"domains":{"items":{"type":"string"},"type":"array","maxItems":50,"minItems":1,"title":"Domains","description":"List of domains to check (1-50)"}},"type":"object","required":["domains"],"title":"BatchCheckRequest","description":"Request body for batch domain checking."},"BatchCheckResponse":{"properties":{"results":{"additionalProperties":true,"type":"object","title":"Results"},"summary":{"additionalProperties":true,"type":"object","title":"Summary"}},"type":"object","required":["results","summary"],"title":"BatchCheckResponse","description":"Response for batch domain checking."},"CheckoutRequest":{"properties":{"plan_id":{"type":"string","title":"Plan Id"},"pay_currency":{"type":"string","title":"Pay Currency"},"email":{"type":"string","title":"Email","default":""}},"type":"object","required":["plan_id","pay_currency"],"title":"CheckoutRequest","description":"Request body for creating a crypto checkout session."},"ConfirmRequest":{"properties":{"tx_hash":{"type":"string","title":"Tx Hash"}},"type":"object","required":["tx_hash"],"title":"ConfirmRequest","description":"Request body for manually confirming a self-hosted payment."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"SubscribeRequest":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"SubscribeRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}