{"openapi":"3.1.0","info":{"title":"Check365 Public API","version":"1.0.0","description":"Machine-readable API reference for Check365 endpoints used in public documentation.","contact":{"name":"Check365 Support","url":"https://check365.io/contact"}},"servers":[{"url":"https://api.check365.io","description":"Production API"}],"externalDocs":{"description":"Human-readable documentation","url":"https://check365.io/docs/api-authentication"},"components":{"securitySchemes":{"ApiKeyQuery":{"type":"apiKey","in":"query","name":"api_key"}},"schemas":{"ValidationRecord":{"type":"object","properties":{"email":{"type":"string","format":"email"},"emailProvider":{"type":"string","example":"unknown"},"emailType":{"type":"string","example":"unknown"},"status":{"type":"string","example":"unvalidated"},"safeToSend":{"type":"boolean","example":false},"risk":{"type":"string","example":"high"},"isRole":{"type":"boolean","example":false},"statusReason":{"type":"string","example":"invalid_domain"}},"required":["email","emailProvider","emailType","status","safeToSend","risk","isRole","statusReason"]},"DisposableCheckResponse":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"email":{"type":"string","format":"email"},"isDisposable":{"type":"boolean"}},"required":["email","isDisposable"]},"message":{"type":"string"}},"required":["success","data","message"]},"SingleValidationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/ValidationRecord"}},"required":["success","message","data"]},"BulkUploadRequest":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email"}},"api_key":{"type":"string"},"job_id":{"type":"string"}},"required":["emails","api_key","job_id"]},"BulkUploadResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"job_id":{"type":"string"}},"required":["success","message","job_id"]},"BulkStatusData":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","example":"completed"},"creditsUsed":{"type":"integer","minimum":0},"progress":{"type":"integer","minimum":0,"maximum":100},"total":{"type":"integer","minimum":0},"results":{"type":"array","items":{"$ref":"#/components/schemas/ValidationRecord"}}},"required":["jobId","status","creditsUsed","progress","total","results"]},"BulkStatusResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/BulkStatusData"}},"required":["success","message","data"]}}},"paths":{"/api/public/disposable-check":{"get":{"summary":"Public disposable email checker","description":"Checks whether an email belongs to a disposable email provider.","operationId":"publicDisposableCheck","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","format":"email"},"description":"Email address to inspect."}],"responses":{"200":{"description":"Disposable check result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisposableCheckResponse"}}}}}}},"/api/validation/single-email":{"get":{"summary":"Single email validation","description":"Validates one email and returns validation and deliverability-related fields.","operationId":"singleEmailValidation","security":[{"ApiKeyQuery":[]}],"parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"},"description":"Check365 API key."},{"name":"email","in":"query","required":true,"schema":{"type":"string","format":"email"},"description":"Email address to validate."}],"responses":{"200":{"description":"Validation result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleValidationResponse"}}}}}}},"/api/validation/bulk-upload":{"post":{"summary":"Bulk upload","description":"Submits a bulk validation job and returns a job identifier.","operationId":"bulkUpload","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUploadRequest"}}}},"responses":{"200":{"description":"Bulk upload accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUploadResponse"}}}}}}},"/api/validation/bulk-status":{"get":{"summary":"Bulk status","description":"Returns the progress and results for a previously submitted bulk validation job.","operationId":"bulkStatus","security":[{"ApiKeyQuery":[]}],"parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string"},"description":"Check365 API key."},{"name":"job_id","in":"query","required":true,"schema":{"type":"string"},"description":"Bulk job identifier returned by bulk upload."}],"responses":{"200":{"description":"Bulk job status and result payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStatusResponse"}}}}}}}}}