{"components":{"requestBodies":{},"schemas":{"AddSuppressionsRequest":{"properties":{"emails":{"items":{"type":"string"},"type":"array"},"expires_at":{"format":"date-time","nullable":true,"type":"string"},"metadata":{"additionalProperties":true,"type":"object"},"notes":{"nullable":true,"type":"string"},"reason":{"$ref":"#/components/schemas/SuppressionReason"},"reason_detail":{"nullable":true,"type":"string"},"source":{"nullable":true,"type":"string"},"source_ref":{"nullable":true,"type":"string"},"source_type":{"nullable":true,"type":"string"}},"required":["emails"],"type":"object"},"AddSuppressionsResponse":{"properties":{"added":{"format":"int64","type":"integer"},"duplicates":{"format":"int64","type":"integer"},"entry_ids":{"items":{"format":"int32","type":"integer"},"type":"array"},"updated":{"format":"int64","type":"integer"}},"required":["added","duplicates"],"type":"object"},"AdminAllApiKeys":{"properties":{"api_keys":{"items":{"$ref":"#/components/schemas/AdminApiKey"},"type":"array"},"total":{"format":"int64","type":"integer"}},"type":"object"},"AdminApiKey":{"properties":{"created_at":{"format":"date-time","type":"string"},"expires_at":{"format":"date-time","nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"key_prefix":{"type":"string"},"last_used_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"status":{"type":"string"},"tenant_id":{"format":"uuid","type":"string"}},"type":"object"},"AdminApiKeyList":{"properties":{"api_keys":{"items":{"$ref":"#/components/schemas/AdminApiKey"},"type":"array"}},"type":"object"},"AdminApiKeyWriteRequest":{"properties":{"expires_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},"AdminCreateTenantRequest":{"properties":{"contact_email":{"format":"email","type":"string"},"default_webhook_url":{"nullable":true,"type":"string"},"max_requests_per_day":{"format":"int32","type":"integer"},"max_requests_per_hour":{"format":"int32","type":"integer"},"max_requests_per_minute":{"format":"int32","type":"integer"},"max_requests_per_second":{"format":"int32","type":"integer"},"monthly_email_limit":{"format":"int32","type":"integer"},"name":{"type":"string"},"plan_tier":{"type":"string"},"result_retention_days":{"format":"int32","type":"integer"},"slug":{"type":"string"},"webhook_signing_secret":{"nullable":true,"type":"string"}},"required":["name","slug","contact_email"],"type":"object"},"AdminCreatedApiKey":{"allOf":[{"$ref":"#/components/schemas/AdminApiKey"},{"properties":{"key":{"description":"Plaintext key returned only at creation.","type":"string"}},"required":["key"],"type":"object"}]},"AdminTenant":{"properties":{"contact_email":{"format":"email","type":"string"},"created_at":{"format":"date-time","type":"string"},"default_webhook_url":{"nullable":true,"type":"string"},"id":{"format":"uuid","type":"string"},"max_requests_per_day":{"format":"int32","type":"integer"},"max_requests_per_hour":{"format":"int32","type":"integer"},"max_requests_per_minute":{"format":"int32","type":"integer"},"max_requests_per_second":{"format":"int32","type":"integer"},"monthly_email_limit":{"format":"int32","nullable":true,"type":"integer"},"name":{"type":"string"},"plan_tier":{"type":"string"},"result_retention_days":{"format":"int32","type":"integer"},"slug":{"type":"string"},"status":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"used_this_period":{"format":"int32","type":"integer"}},"type":"object"},"AdminTenantList":{"properties":{"tenants":{"items":{"$ref":"#/components/schemas/AdminTenant"},"type":"array"},"total":{"format":"int64","type":"integer"}},"type":"object"},"AdminTenantQuota":{"properties":{"monthly_email_limit":{"format":"int32","nullable":true,"type":"integer"},"name":{"type":"string"},"period_reset_at":{"format":"date-time","type":"string"},"quota_unlimited":{"type":"boolean"},"remaining_quota":{"format":"int32","nullable":true,"type":"integer"},"tenant_id":{"format":"uuid","type":"string"},"used_this_period":{"format":"int32","type":"integer"}},"type":"object"},"AdminUpdateQuotaRequest":{"properties":{"monthly_email_limit":{"format":"int32","nullable":true,"type":"integer"}},"required":["monthly_email_limit"],"type":"object"},"AdminUpdateTenantRequest":{"properties":{"contact_email":{"format":"email","type":"string"},"default_webhook_url":{"nullable":true,"type":"string"},"max_requests_per_day":{"format":"int32","type":"integer"},"max_requests_per_hour":{"format":"int32","type":"integer"},"max_requests_per_minute":{"format":"int32","type":"integer"},"max_requests_per_second":{"format":"int32","type":"integer"},"monthly_email_limit":{"format":"int32","nullable":true,"type":"integer"},"name":{"type":"string"},"plan_tier":{"type":"string"},"result_retention_days":{"format":"int32","type":"integer"},"status":{"type":"string"},"webhook_signing_secret":{"nullable":true,"type":"string"}},"type":"object"},"ApprovalCategoryBreakdown":{"properties":{"invalid":{"format":"int64","type":"integer"},"risky":{"format":"int64","type":"integer"},"unknown":{"format":"int64","type":"integer"},"unprocessed":{"format":"int64","type":"integer"},"valid":{"format":"int64","type":"integer"}},"required":["valid","risky","unknown","invalid","unprocessed"],"type":"object"},"ApprovalChecklistResponse":{"properties":{"categories":{"$ref":"#/components/schemas/ApprovalCategoryBreakdown"},"job_id":{"format":"int32","type":"integer"},"ready_to_send":{"type":"boolean"},"recommendation":{"type":"string"},"risk_flags":{"$ref":"#/components/schemas/ApprovalRiskFlags"},"safe_to_send_count":{"format":"int64","type":"integer"},"safe_to_send_pct":{"type":"number"},"total_records":{"format":"int32","type":"integer"}},"required":["job_id","total_records","categories","risk_flags","safe_to_send_count","safe_to_send_pct","recommendation","ready_to_send"],"type":"object"},"ApprovalRiskFlags":{"properties":{"catch_all_count":{"format":"int64","type":"integer"},"disposable_count":{"format":"int64","type":"integer"},"role_account_count":{"format":"int64","type":"integer"},"spam_trap_count":{"format":"int64","type":"integer"},"suppressed_count":{"format":"int64","type":"integer"}},"required":["disposable_count","catch_all_count","role_account_count","spam_trap_count","suppressed_count"],"type":"object"},"BlacklistResult":{"properties":{"listed":{"type":"boolean"},"lookup_time_ms":{"format":"int64","type":"integer"},"provider":{"type":"string"}},"required":["provider","listed","lookup_time_ms"],"type":"object"},"BounceRiskAssessment":{"properties":{"action":{"$ref":"#/components/schemas/RecommendedAction"},"category":{"$ref":"#/components/schemas/BounceRiskCategory"},"confidence":{"format":"double","maximum":1,"minimum":0.35,"type":"number"},"model_version":{"type":"string"},"risk_factors":{"items":{"$ref":"#/components/schemas/RiskFactor"},"type":"array"},"score":{"format":"int32","maximum":100,"minimum":0,"type":"integer"},"scored_at":{"format":"date-time","type":"string"}},"required":["score","category","confidence","action","model_version","scored_at","risk_factors"],"type":"object"},"BounceRiskCategory":{"enum":["safe","low","medium","high","dangerous"],"type":"string"},"BulkCreateRequest":{"properties":{"input":{"items":{"format":"email","type":"string"},"type":"array"},"source":{"description":"Alias for source_key.","nullable":true,"type":"string"},"source_key":{"description":"Optional source key used for source quality analytics.","nullable":true,"type":"string"},"webhook":{"additionalProperties":true,"nullable":true,"type":"object"}},"required":["input"],"type":"object"},"BulkCreateResponse":{"properties":{"job_id":{"format":"int32","type":"integer"},"source_key":{"nullable":true,"type":"string"}},"required":["job_id"],"type":"object"},"BulkJobResultsResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/CheckEmailOutput"},"type":"array"}},"required":["results"],"type":"object"},"CheckEmailInputProxy":{"description":"Proxy configuration for email verification.","properties":{"host":{"description":"The proxy host address.","type":"string"},"password":{"description":"Password for proxy authentication.","type":"string"},"port":{"description":"The proxy port number.","type":"integer"},"username":{"description":"Username for proxy authentication.","type":"string"}},"required":["host","port"],"title":"CheckEmailInputProxy","type":"object","x-examples":{"example-1":{"value":{"host":"my-proxy.io","port":1080}}}},"CheckEmailOutput":{"description":"The result of the email verification process.","properties":{"bounce_risk":{"allOf":[{"$ref":"#/components/schemas/BounceRiskAssessment"}],"description":"Additive bounce-risk assessment. May be null when enrichment is disabled or unavailable.","nullable":true},"debug":{"$ref":"#/components/schemas/DebugDetails"},"input":{"description":"The email address that was verified.","type":"string"},"is_reachable":{"$ref":"#/components/schemas/Reachable"},"misc":{"description":"Additional information about the email account.","oneOf":[{"$ref":"#/components/schemas/MiscDetails"},{"$ref":"#/components/schemas/CoreError"}]},"mx":{"description":"Details obtained from querying the mail server's MX records.","oneOf":[{"$ref":"#/components/schemas/MxDetails"},{"$ref":"#/components/schemas/CoreError"}]},"policy_evaluation":{},"provider":{"$ref":"#/components/schemas/Provider","nullable":true},"provider_confidence":{"$ref":"#/components/schemas/ProviderConfidence","nullable":true},"provider_rejection_reason":{"$ref":"#/components/schemas/ProviderRejectionReason","nullable":true},"provider_rules_applied":{"type":"boolean"},"recommendation":{},"score":{"$ref":"#/components/schemas/EmailScore"},"smtp":{"description":"Results from connecting to the mail server via SMTP.","oneOf":[{"$ref":"#/components/schemas/SmtpDetails"},{"$ref":"#/components/schemas/CoreError"}]},"syntax":{"$ref":"#/components/schemas/SyntaxDetails"}},"required":["input","is_reachable","misc","mx","smtp","syntax","score","provider_rules_applied"],"title":"CheckEmailOutput","type":"object","x-examples":{"Example with test@gmail.com":{"input":"test@gmail.com","is_reachable":"invalid","misc":{"is_disposable":false,"is_role_account":true},"mx":{"accepts_mail":true,"records":["alt4.gmail-smtp-in.l.google.com.","alt2.gmail-smtp-in.l.google.com.","alt3.gmail-smtp-in.l.google.com.","gmail-smtp-in.l.google.com.","alt1.gmail-smtp-in.l.google.com."]},"smtp":{"can_connect_smtp":true,"has_full_inbox":false,"is_catch_all":false,"is_deliverable":false,"is_disabled":false},"syntax":{"domain":"gmail.com","is_valid_syntax":true,"username":"test"}}}},"CheckEmailRequest":{"description":"A request object to perform an email verification. The `to_email` field is required, all other fields are optional.","properties":{"check_gravatar":{"description":"Whether to check if a Gravatar image exists for the given email.","type":"boolean"},"from_email":{"description":"In the SMTP connection, the FROM email address.","type":"string"},"gmail_verif_method":{"$ref":"#/components/schemas/GmailVerifMethod"},"hello_name":{"description":"In the SMTP connection, the EHLO hostname.","type":"string"},"hotmailb2b_verif_method":{"$ref":"#/components/schemas/HotmailB2BVerifMethod"},"hotmailb2c_verif_method":{"$ref":"#/components/schemas/HotmailB2CVerifMethod"},"proxy":{"$ref":"#/components/schemas/CheckEmailInputProxy"},"sandbox":{"default":false,"description":"When true, returns deterministic mock results without consuming credits or making real SMTP connections.","type":"boolean"},"smtp_port":{"description":"SMTP port to use for email validation. Defaults to 25, but 465, 587, and 2525 are sometimes also used.","type":"number"},"strict_provider_rules":{"description":"When false, skips provider-specific syntax validation even if the provider is recognized.","type":"boolean"},"to_email":{"description":"The email address to check.","type":"string"},"yahoo_verif_method":{"$ref":"#/components/schemas/YahooVerifMethod"}},"required":["to_email"],"title":"CheckEmailRequest","type":"object","x-stoplight":{"id":"834398a8ce480"}},"ConfidenceExplanation":{"properties":{"factors":{"items":{"type":"string"},"type":"array"},"level":{"enum":["high","medium","low","very_low"],"type":"string"},"score":{"format":"int32","maximum":100,"minimum":0,"type":"integer"}},"required":["score","level","factors"],"type":"object"},"CoreError":{"description":"Details of an error encountered during the verification process.","properties":{"message":{"description":"A human-readable description of the error.","type":"string"},"type":{"description":"The type of error.","type":"string"}},"required":["type","message"],"title":"CoreError","type":"object","x-stoplight":{"id":"a872ead6474cd"}},"CreateApiKeyRequest":{"properties":{"expires_at":{"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"scopes":{"items":{"type":"string"},"nullable":true,"type":"array"}},"type":"object"},"CreateCommentRequest":{"properties":{"author":{"nullable":true,"type":"string"},"body":{"type":"string"},"job_id":{"format":"int32","nullable":true,"type":"integer"},"list_id":{"format":"int32","nullable":true,"type":"integer"}},"required":["body"],"type":"object"},"CreatePipelineInput":{"example":{"delivery":{"dashboard":true,"max_attempts":5,"retry_backoff_seconds":300,"webhook":null},"name":"Weekly Cleanup","policy":{"missed_run_window_hours":24},"schedule":{"cron":"0 9 * * 1","timezone":"UTC"},"source":{"list_id":123,"type":"list_snapshot"},"status":"active","verification":{"delta_mode":true,"freshness_days":30}},"properties":{"delivery":{"$ref":"#/components/schemas/PipelineDeliveryConfig"},"name":{"type":"string"},"policy":{"$ref":"#/components/schemas/PipelinePolicyConfig"},"schedule":{"$ref":"#/components/schemas/PipelineSchedule"},"source":{"$ref":"#/components/schemas/PipelineSource"},"status":{"$ref":"#/components/schemas/PipelineStatus"},"verification":{"$ref":"#/components/schemas/PipelineVerificationSettings"}},"required":["name","source","schedule"],"type":"object"},"CreateProviderEndpointInput":{"properties":{"allowed_ips":{"items":{"type":"string"},"type":"array"},"label":{"type":"string"},"provider":{"type":"string"},"provider_config":{},"status":{"type":"string"}},"required":["provider","label"],"type":"object"},"CreateTenantDomainRequest":{"properties":{"domain":{"type":"string"},"is_active":{"nullable":true,"type":"boolean"},"notes":{"nullable":true,"type":"string"}},"required":["domain"],"type":"object"},"DebugDetails":{"properties":{"backend_name":{"description":"The name of the backend that performed the verification.","type":"string","x-stoplight":{"id":"2jrbdecvqh4t5"}},"duration":{"$ref":"#/components/schemas/Duration"},"end_time":{"description":"The timestamp when the email verification ended.","type":"string","x-stoplight":{"id":"zw4ccbvwsoh6q"}},"smtp":{"$ref":"#/components/schemas/DebugDetailsSmtp"},"start_time":{"description":"The timestamp when the email verification started.","type":"string","x-stoplight":{"id":"60i65k60m8e8d"}}},"required":["start_time","end_time","duration","backend_name","smtp"],"title":"DebugDetails","type":"object","x-stoplight":{"id":"4wxlk39h8v9kz"}},"DebugDetailsSmtp":{"description":"SMTP details used for debugging, including the verification method.","properties":{"verif_method":{"$ref":"#/components/schemas/VerifMethod"}},"title":"DebugDetailsSmtp","type":"object","x-stoplight":{"id":"2a90bzapppo0j"}},"DeletePipelineResponse":{"properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"type":"object"},"DnsRecordResults":{"properties":{"dmarc_policy":{"nullable":true,"type":"string"},"has_dkim":{"type":"boolean"},"has_dmarc":{"type":"boolean"},"has_mx":{"type":"boolean"},"has_spf":{"type":"boolean"},"mx_records":{"items":{"type":"string"},"type":"array"},"spf_valid":{"type":"boolean"}},"required":["has_spf","spf_valid","has_dkim","has_dmarc","has_mx","mx_records"],"type":"object"},"DomainInfo":{"properties":{"created_at":{"nullable":true,"type":"string"},"domain_age_days":{"format":"int64","nullable":true,"type":"integer"},"registrar":{"nullable":true,"type":"string"}},"type":"object"},"Duration":{"description":"An object representing a duration in seconds and nanoseconds.","properties":{"nanos":{"description":"Duration in nanoseconds.","type":"number"},"secs":{"description":"Duration in seconds.","type":"number"}},"required":["secs","nanos"],"title":"Duration","type":"object","x-stoplight":{"id":"bg9y0iez4zati"}},"EmailCategory":{"enum":["valid","risky","unknown","invalid"],"type":"string"},"EmailScore":{"properties":{"age_days":{"format":"int64","type":"integer"},"catch_all_severity":{"description":"Severity tier for catch-all domains. low=free provider with no other negative signal; high=corporate domain, or any catch-all carrying another negative signal. Only the high tier blocks safe_to_send.","enum":["low","high"],"type":"string"},"category":{"$ref":"#/components/schemas/EmailCategory"},"domain_suggestion":{"description":"Suggested corrected email when a likely domain typo is detected","type":"string"},"freshness":{"$ref":"#/components/schemas/Freshness"},"normalized_email":{"description":"Canonical form of the email after alias/plus-address normalization","type":"string"},"reason_codes":{"items":{"$ref":"#/components/schemas/ReasonCode"},"type":"array"},"safe_to_send":{"type":"boolean"},"score":{"format":"int32","maximum":100,"minimum":0,"type":"integer"},"signals":{"$ref":"#/components/schemas/ScoringSignals"},"sub_reason":{"$ref":"#/components/schemas/SubReason"},"verified_at":{"format":"date-time","type":"string"}},"required":["score","category","sub_reason","safe_to_send","reason_codes","signals"],"type":"object"},"ErrorEnvelope":{"properties":{"error":{"type":"string"}},"required":["error"],"type":"object"},"ErrorResponse":{"properties":{"error":{"type":"string"}},"required":["error"],"type":"object"},"FindEmailAcceptedResponse":{"properties":{"bulk_job_id":{"format":"int32","type":"integer"},"candidates_checked":{"format":"int32","type":"integer"},"job_id":{"format":"int32","type":"integer"},"status":{"type":"string"}},"required":["job_id","bulk_job_id","status","candidates_checked"],"type":"object"},"FindEmailRequest":{"properties":{"domain":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"strategy":{"default":"parallel","description":"Search strategy: parallel (all at once) or waterfall (high-quality patterns first)","enum":["parallel","waterfall"],"type":"string"}},"required":["first_name","last_name","domain"],"type":"object"},"FindEmailStatusResponse":{"properties":{"best_match":{"allOf":[{"$ref":"#/components/schemas/FinderBestMatch"}],"nullable":true},"bulk_job_id":{"format":"int32","type":"integer"},"candidates_checked":{"format":"int32","type":"integer"},"domain_has_mx":{"type":"boolean"},"domain_is_catch_all":{"type":"boolean"},"job_id":{"format":"int32","type":"integer"},"results":{"items":{"$ref":"#/components/schemas/FinderCandidateResult"},"type":"array"},"status":{"type":"string"}},"required":["job_id","bulk_job_id","status","domain_has_mx","domain_is_catch_all","candidates_checked","results"],"type":"object"},"FinderBestMatch":{"properties":{"confidence":{"type":"string"},"email":{"type":"string"},"pattern":{"type":"string"},"score":{"format":"int32","type":"integer"}},"required":["email","score","confidence","pattern"],"type":"object"},"FinderCandidateResult":{"properties":{"category":{"$ref":"#/components/schemas/EmailCategory"},"confidence":{"allOf":[{"$ref":"#/components/schemas/ConfidenceExplanation"}],"nullable":true},"email":{"type":"string"},"is_reachable":{"$ref":"#/components/schemas/Reachable"},"pattern":{"type":"string"},"result":{"allOf":[{"$ref":"#/components/schemas/CheckEmailOutput"}],"nullable":true},"score":{"format":"int32","type":"integer"},"sub_reason":{"$ref":"#/components/schemas/SubReason"}},"required":["email","pattern","score","category","sub_reason","is_reachable"],"type":"object"},"Freshness":{"enum":["fresh","recent","aging","stale","expired"],"type":"string"},"GmailVerifMethod":{"description":"Enumeration describing the method used to verify Gmail emails.","enum":["Smtp"],"title":"GmailVerifMethod","type":"string","x-internal":false,"x-stoplight":{"id":"xo5r48yhtxiwr"}},"HistoryEntry":{"properties":{"category":{"nullable":true,"type":"string"},"completed_at":{"format":"date-time","nullable":true,"type":"string"},"is_reachable":{"nullable":true,"type":"string"},"job_id":{"format":"int32","nullable":true,"type":"integer"},"policy_decision":{"nullable":true,"type":"string"},"policy_evaluation":{},"policy_mode":{"nullable":true,"type":"string"},"reason_codes":{"items":{"type":"string"},"nullable":true,"type":"array"},"recommendation":{},"recommendation_action":{"nullable":true,"type":"string"},"safe_to_send":{"nullable":true,"type":"boolean"},"score":{"format":"int32","nullable":true,"type":"integer"},"sub_reason":{"nullable":true,"type":"string"}},"type":"object"},"HotmailB2BVerifMethod":{"description":"Enumeration describing the method used to verify Hotmail B2B emails.","enum":["Smtp"],"title":"HotmailB2BVerifMethod","type":"string","x-stoplight":{"id":"ntdugsleyotut"}},"HotmailB2CVerifMethod":{"description":"Enumeration describing the method used to verify Hotmail B2C emails.","enum":["Smtp","Headless"],"title":"HotmailB2CVerifMethod","type":"string","x-stoplight":{"id":"cuc5bj6ra2t0i"}},"InboundOutcomeResponse":{"properties":{"accepted":{"format":"int64","type":"integer"},"duplicates":{"format":"int64","type":"integer"},"provider":{"type":"string"},"receipt_id":{"format":"uuid","type":"string"},"rejected":{"format":"int64","type":"integer"},"unmatched":{"format":"int64","type":"integer"}},"required":["receipt_id","provider","accepted","duplicates","unmatched","rejected"],"type":"object"},"JobResultPageResponse":{"properties":{"has_more":{"type":"boolean"},"next_cursor":{"format":"int64","nullable":true,"type":"integer"},"results":{"items":{"$ref":"#/components/schemas/JobTaskResult"},"type":"array"}},"required":["results","has_more"],"type":"object"},"JobTaskResult":{"properties":{"error":{"nullable":true,"type":"string"},"id":{"format":"int64","type":"integer"},"result":{"allOf":[{"$ref":"#/components/schemas/CheckEmailOutput"}],"nullable":true},"retry_count":{"format":"int32","type":"integer"},"task_state":{"type":"string"}},"required":["id","task_state","retry_count"],"type":"object"},"ListDeleteResponse":{"properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"type":"object"},"ListDetailResponse":{"properties":{"deduplicated_count":{"format":"int32","nullable":true,"type":"integer"},"email_column":{"type":"string"},"id":{"format":"int32","type":"integer"},"job_id":{"format":"int32","type":"integer"},"name":{"type":"string"},"source_key":{"nullable":true,"type":"string"},"status":{"type":"string"},"summary":{"$ref":"#/components/schemas/ListSummary"},"total_rows":{"format":"int32","type":"integer"},"unique_emails":{"format":"int32","nullable":true,"type":"integer"}},"required":["id","job_id","name","status","total_rows","email_column","summary"],"type":"object"},"ListItem":{"properties":{"completed_at":{"format":"date-time","nullable":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"email_column":{"type":"string"},"id":{"format":"int32","type":"integer"},"name":{"type":"string"},"original_filename":{"type":"string"},"source_key":{"nullable":true,"type":"string"},"status":{"type":"string"},"total_rows":{"format":"int32","type":"integer"}},"required":["id","name","original_filename","status","total_rows","email_column","created_at","completed_at"],"type":"object"},"ListListResponse":{"properties":{"lists":{"items":{"$ref":"#/components/schemas/ListItem"},"type":"array"},"total":{"format":"int64","type":"integer"}},"required":["lists","total"],"type":"object"},"ListPipelineRunsResponse":{"properties":{"runs":{"items":{"$ref":"#/components/schemas/PipelineRunView"},"type":"array"},"total":{"format":"int64","type":"integer"}},"required":["runs","total"],"type":"object"},"ListPipelinesResponse":{"properties":{"pipelines":{"items":{"$ref":"#/components/schemas/PipelineView"},"type":"array"},"total":{"format":"int64","type":"integer"}},"required":["pipelines","total"],"type":"object"},"ListSummary":{"properties":{"total_invalid":{"format":"int64","type":"integer"},"total_processed":{"format":"int64","type":"integer"},"total_risky":{"format":"int64","type":"integer"},"total_unknown":{"format":"int64","type":"integer"},"total_valid":{"format":"int64","type":"integer"}},"required":["total_valid","total_risky","total_unknown","total_invalid","total_processed"],"type":"object"},"ListUploadRequest":{"properties":{"email_column":{"nullable":true,"type":"string"},"file":{"format":"binary","type":"string"},"name":{"nullable":true,"type":"string"},"source_key":{"description":"Optional source key used for source quality analytics, for example apollo, hubspot, salesforce, signup_form, csv_vendor.","nullable":true,"type":"string"}},"required":["file"],"type":"object"},"ListUploadResponse":{"properties":{"email_column":{"type":"string"},"job_id":{"format":"int32","type":"integer"},"list_id":{"format":"int32","type":"integer"},"source_key":{"nullable":true,"type":"string"},"total_rows":{"format":"int32","type":"integer"}},"required":["list_id","job_id","total_rows","email_column"],"type":"object"},"MiscDetails":{"description":"Additional information about the email account.","properties":{"gravatar_url":{"description":"URL to the Gravatar profile picture associated with the email, if available and requested.","nullable":true,"type":"string"},"haveibeenpwned":{"nullable":true,"type":"boolean"},"is_b2c":{"description":"Is this a B2C email address?","type":"boolean","x-stoplight":{"id":"0cxn26qlxy8r4"}},"is_disposable":{"description":"Indicates if the email address is from a known disposable email provider.","type":"boolean"},"is_role_account":{"description":"Indicates if the email address is a role-based account.","type":"boolean"},"is_spam_trap_domain":{"type":"boolean"}},"required":["is_disposable","is_role_account","is_b2c","is_spam_trap_domain","gravatar_url","haveibeenpwned"],"title":"MiscDetails","type":"object"},"MxDetails":{"description":"Details about the mail server's MX records.","properties":{"accepts_mail":{"description":"Indicates if the mail server accepts emails.","type":"boolean"},"records":{"description":"List of Fully Qualified Domain Names (FQDN) of the mail server.","items":{"type":"string"},"type":"array"}},"required":["accepts_mail","records"],"title":"MxDetails","type":"object"},"OnboardRequest":{"properties":{"contact_email":{"description":"Contact email for the tenant account (billing, alerts).","type":"string"},"email_to_verify":{"description":"Email address to verify.","type":"string"},"plan_tier":{"description":"Optional plan tier (defaults to \"free\").","nullable":true,"type":"string"},"slug":{"description":"URL-safe slug (auto-generated from tenant_name if omitted).","nullable":true,"type":"string"},"tenant_name":{"description":"Display name for the new tenant.","type":"string"}},"required":["email_to_verify","tenant_name","contact_email"],"type":"object"},"OutcomeIngestRequest":{"properties":{"outcomes":{"items":{"$ref":"#/components/schemas/OutcomeInput"},"type":"array"},"provider":{"type":"string"},"source_key":{"nullable":true,"type":"string"}},"required":["provider","outcomes"],"type":"object"},"OutcomeIngestResponse":{"properties":{"auto_suppressed":{"format":"int64","type":"integer"},"ignored":{"format":"int64","type":"integer"},"ingested":{"format":"int64","type":"integer"}},"required":["ingested","auto_suppressed","ignored"],"type":"object"},"OutcomeInput":{"properties":{"campaign_id":{"nullable":true,"type":"string"},"email":{"type":"string"},"event_type":{"type":"string"},"metadata":{},"occurred_at":{"format":"date-time","nullable":true,"type":"string"},"provider_event_id":{"nullable":true,"type":"string"},"provider_message_id":{"nullable":true,"type":"string"},"source_key":{"nullable":true,"type":"string"}},"required":["email","event_type"],"type":"object"},"OutcomeListResponse":{"properties":{"limit":{"format":"int64","type":"integer"},"offset":{"format":"int64","type":"integer"},"outcomes":{"items":{"$ref":"#/components/schemas/OutcomeView"},"type":"array"}},"required":["outcomes","limit","offset"],"type":"object"},"OutcomeView":{"properties":{"campaign_id":{"nullable":true,"type":"string"},"canonical_email":{"type":"string"},"correlation_status":{"type":"string"},"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"endpoint_id":{"format":"uuid","nullable":true,"type":"string"},"event_family":{"nullable":true,"type":"string"},"event_type":{"type":"string"},"id":{"format":"int64","type":"integer"},"metadata":{},"occurred_at":{"format":"date-time","type":"string"},"provider":{"type":"string"},"provider_event_id":{"nullable":true,"type":"string"},"provider_message_id":{"nullable":true,"type":"string"},"receipt_id":{"format":"uuid","nullable":true,"type":"string"},"source_key":{"nullable":true,"type":"string"}},"required":["id","email","canonical_email","provider","event_type","occurred_at","metadata","correlation_status","created_at"],"type":"object"},"PipelineDeliveryConfig":{"example":{"dashboard":true,"max_attempts":5,"retry_backoff_seconds":300,"webhook":null},"properties":{"dashboard":{"type":"boolean"},"max_attempts":{"format":"int32","type":"integer"},"retry_backoff_seconds":{"format":"int32","type":"integer"},"webhook":{"allOf":[{"$ref":"#/components/schemas/PipelineDeliveryWebhook"}],"nullable":true}},"type":"object"},"PipelineDeliveryStatus":{"enum":["not_requested","pending","delivered","retry_scheduled","failed"],"type":"string"},"PipelineDeliveryWebhook":{"properties":{"headers":{"additionalProperties":{"type":"string"},"type":"object"},"url":{"type":"string"}},"required":["url"],"type":"object"},"PipelineErrorResponse":{"properties":{"error":{"type":"string"}},"required":["error"],"type":"object"},"PipelinePolicyConfig":{"properties":{"missed_run_window_hours":{"format":"int32","type":"integer"}},"type":"object"},"PipelineRunResultLocation":{"properties":{"download_url":{"type":"string"}},"required":["download_url"],"type":"object"},"PipelineRunStats":{"additionalProperties":true,"properties":{"billed_emails":{"format":"int32","nullable":true,"type":"integer"},"changed_only_export":{"nullable":true,"type":"boolean"},"completed_tasks":{"format":"int32","nullable":true,"type":"integer"},"delta_mode":{"nullable":true,"type":"boolean"},"freshness_days":{"format":"int32","nullable":true,"type":"integer"},"invalid":{"format":"int32","nullable":true,"type":"integer"},"published_tasks":{"format":"int32","nullable":true,"type":"integer"},"queued_emails":{"format":"int32","nullable":true,"type":"integer"},"risky":{"format":"int32","nullable":true,"type":"integer"},"selected_unique_emails":{"format":"int32","nullable":true,"type":"integer"},"skipped_unchanged":{"format":"int32","nullable":true,"type":"integer"},"source_filename":{"nullable":true,"type":"string"},"source_name":{"nullable":true,"type":"string"},"source_row_count":{"format":"int32","nullable":true,"type":"integer"},"source_unique_emails":{"format":"int32","nullable":true,"type":"integer"},"trigger_reason":{"nullable":true,"type":"string"},"unknown":{"format":"int32","nullable":true,"type":"integer"},"valid":{"format":"int32","nullable":true,"type":"integer"}},"type":"object"},"PipelineRunStatus":{"enum":["queued","preparing","fetching_source","publishing","running","delivering","completed","failed","cancelled","skipped"],"type":"string"},"PipelineRunView":{"example":{"billed_emails":1,"completed_at":"2000-01-23T04:56:07.000+00:00","created_at":"2000-01-23T04:56:07.000+00:00","delivery_attempts":0,"delivery_error":null,"delivery_status":"not_requested","error_code":null,"error_message":null,"id":1,"job_id":5,"last_delivery_attempt_at":null,"list_id":5,"next_delivery_attempt_at":null,"pipeline_id":2,"result_location":{"download_url":"/v1/lists/5/download"},"scheduled_for":"2000-01-23T04:56:07.000+00:00","source_snapshot":{"list_id":123,"type":"list_snapshot"},"started_at":"2000-01-23T04:56:07.000+00:00","stats":{"billed_emails":1,"delta_mode":true,"freshness_days":30,"selected_unique_emails":1,"source_filename":"seed.csv","source_name":"Weekly Cleanup","trigger_reason":"manual"},"status":"completed","tenant_id":"046b6c7f-0b8a-43b9-b35d-6489e6daee91","trigger_type":"manual","updated_at":"2000-01-23T04:56:07.000+00:00"},"properties":{"billed_emails":{"format":"int32","type":"integer"},"completed_at":{"format":"date-time","nullable":true,"type":"string"},"created_at":{"format":"date-time","type":"string"},"delivery_attempts":{"format":"int32","type":"integer"},"delivery_error":{"nullable":true,"type":"string"},"delivery_status":{"$ref":"#/components/schemas/PipelineDeliveryStatus"},"error_code":{"nullable":true,"type":"string"},"error_message":{"nullable":true,"type":"string"},"id":{"format":"int64","type":"integer"},"job_id":{"format":"int32","nullable":true,"type":"integer"},"last_delivery_attempt_at":{"format":"date-time","nullable":true,"type":"string"},"list_id":{"format":"int32","nullable":true,"type":"integer"},"next_delivery_attempt_at":{"format":"date-time","nullable":true,"type":"string"},"pipeline_id":{"format":"int64","type":"integer"},"result_location":{"allOf":[{"$ref":"#/components/schemas/PipelineRunResultLocation"}],"nullable":true},"scheduled_for":{"format":"date-time","nullable":true,"type":"string"},"source_snapshot":{"$ref":"#/components/schemas/PipelineSource"},"started_at":{"format":"date-time","nullable":true,"type":"string"},"stats":{"$ref":"#/components/schemas/PipelineRunStats"},"status":{"$ref":"#/components/schemas/PipelineRunStatus"},"tenant_id":{"format":"uuid","type":"string"},"trigger_type":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","pipeline_id","tenant_id","trigger_type","status","source_snapshot","stats","billed_emails","delivery_status","delivery_attempts","created_at","updated_at"],"type":"object"},"PipelineSchedule":{"properties":{"cron":{"type":"string"},"timezone":{"type":"string"}},"required":["cron","timezone"],"type":"object"},"PipelineSource":{"discriminator":{"mapping":{"bucket":"#/components/schemas/PipelineSource_oneOf_3","integration":"#/components/schemas/PipelineSource_oneOf_1","list_snapshot":"#/components/schemas/PipelineSource_oneOf","push":"#/components/schemas/PipelineSource_oneOf_2"},"propertyName":"type"},"oneOf":[{"properties":{"list_id":{"format":"int32","type":"integer"},"type":{"enum":["list_snapshot"],"type":"string"}},"required":["list_id","type"],"type":"object"},{"properties":{"audience_id":{"type":"string"},"connection_id":{"type":"string"},"field_mapping":{},"provider":{"type":"string"},"type":{"enum":["integration"],"type":"string"}},"required":["provider","connection_id","audience_id","type"],"type":"object"},{"properties":{"accepted_format":{"type":"string"},"token_id":{"type":"string"},"type":{"enum":["push"],"type":"string"}},"required":["token_id","accepted_format","type"],"type":"object"},{"properties":{"bucket":{"type":"string"},"path_pattern":{"nullable":true,"type":"string"},"prefix":{"nullable":true,"type":"string"},"provider":{"type":"string"},"region":{"nullable":true,"type":"string"},"type":{"enum":["bucket"],"type":"string"}},"required":["provider","bucket","type"],"type":"object"}]},"PipelineStatus":{"enum":["active","paused","deleted"],"type":"string"},"PipelineVerificationSettings":{"properties":{"delta_mode":{"type":"boolean"},"freshness_days":{"format":"int32","nullable":true,"type":"integer"}},"type":"object"},"PipelineView":{"example":{"created_at":"2000-01-23T04:56:07.000+00:00","delivery":{"dashboard":true,"max_attempts":5,"retry_backoff_seconds":300,"webhook":null},"id":1,"last_run_id":5,"last_scheduled_at":"2000-01-23T04:56:07.000+00:00","name":"Weekly Cleanup","next_run_at":"2000-01-23T04:56:07.000+00:00","policy":{"missed_run_window_hours":24},"schedule":{"cron":"0 9 * * 1","timezone":"UTC"},"source":{"list_id":123,"type":"list_snapshot"},"status":"active","tenant_id":"046b6c7f-0b8a-43b9-b35d-6489e6daee91","updated_at":"2000-01-23T04:56:07.000+00:00","verification":{"delta_mode":true,"freshness_days":30}},"properties":{"created_at":{"format":"date-time","type":"string"},"delivery":{"$ref":"#/components/schemas/PipelineDeliveryConfig"},"id":{"format":"int64","type":"integer"},"last_run_id":{"format":"int64","nullable":true,"type":"integer"},"last_scheduled_at":{"format":"date-time","nullable":true,"type":"string"},"name":{"type":"string"},"next_run_at":{"format":"date-time","nullable":true,"type":"string"},"policy":{"$ref":"#/components/schemas/PipelinePolicyConfig"},"schedule":{"$ref":"#/components/schemas/PipelineSchedule"},"source":{"$ref":"#/components/schemas/PipelineSource"},"status":{"$ref":"#/components/schemas/PipelineStatus"},"tenant_id":{"format":"uuid","type":"string"},"updated_at":{"format":"date-time","type":"string"},"verification":{"$ref":"#/components/schemas/PipelineVerificationSettings"}},"required":["id","tenant_id","name","status","source","schedule","verification","policy","delivery","created_at","updated_at"],"type":"object"},"Provider":{"enum":["gmail","google_workspace","outlook_consumer","microsoft365","yahoo","apple_icloud","proton","zoho"],"type":"string"},"ProviderConfidence":{"enum":["high","medium","low"],"type":"string"},"ProviderDeleteResponse":{"properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"type":"object"},"ProviderEndpointListResponse":{"properties":{"provider_endpoints":{"items":{"$ref":"#/components/schemas/ProviderEndpointView"},"type":"array"}},"required":["provider_endpoints"],"type":"object"},"ProviderEndpointView":{"properties":{"allowed_ips":{"items":{"type":"string"},"type":"array"},"created_at":{"format":"date-time","type":"string"},"delivery_token":{"nullable":true,"type":"string"},"endpoint_id":{"format":"uuid","type":"string"},"label":{"type":"string"},"provider":{"type":"string"},"provider_configured":{"type":"boolean"},"status":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"webhook_path":{"type":"string"}},"required":["endpoint_id","provider","label","status","allowed_ips","provider_configured","webhook_path","created_at","updated_at"],"type":"object"},"ProviderRejectionReason":{"enum":["provider_local_part_too_short","provider_local_part_too_long","provider_invalid_character","provider_consecutive_special_characters","provider_invalid_start_character","provider_invalid_end_character","provider_plus_addressing_not_supported","provider_reserved_word","provider_format_violation"],"type":"string"},"PushPipelineInput":{"properties":{"email_column":{"type":"string"},"rows":{"items":{"additionalProperties":{},"type":"object"},"type":"array"},"source_key":{"nullable":true,"type":"string"}},"required":["rows"],"type":"object"},"PushPipelineResponse":{"properties":{"accepted_rows":{"format":"int32","type":"integer"},"batch_id":{"format":"int64","type":"integer"},"replayed":{"type":"boolean"},"run_id":{"format":"int64","type":"integer"},"status":{"$ref":"#/components/schemas/PipelineRunStatus"}},"required":["batch_id","run_id","status","accepted_rows","replayed"],"type":"object"},"Reachable":{"description":"An enumeration describing the confidence level that the recipient address is valid: `safe`, `risky`, `invalid`, or `unknown`. Refer to our FAQ for detailed definitions: https://help.reacher.email/email-attributes-inside-json.","enum":["invalid","unknown","safe","risky"],"title":"Reachable","type":"string"},"ReasonCode":{"enum":["deliverable","invalid_syntax","invalid_recipient","provider_rejected","provider_local_part_too_short","provider_local_part_too_long","provider_invalid_character","provider_consecutive_special_characters","provider_invalid_start_character","provider_invalid_end_character","provider_plus_addressing_not_supported","provider_reserved_word","provider_format_violation","smtp_undeliverable","disabled_mailbox","no_mx","smtp_error","smtp_unreachable","catch_all","full_inbox","disposable","role_account","spam_trap","unknown_deliverability","free_provider","possible_typo"],"type":"string"},"RecommendedAction":{"enum":["send","send_with_caution","verify_manually","do_not_send"],"type":"string"},"ReputationCheckRequest":{"properties":{"domain":{"type":"string"},"force_refresh":{"default":false,"type":"boolean"}},"required":["domain"],"type":"object"},"ReputationCheckResponse":{"properties":{"blacklist_results":{"items":{"$ref":"#/components/schemas/BlacklistResult"},"type":"array"},"cached":{"type":"boolean"},"dns_records":{"$ref":"#/components/schemas/DnsRecordResults"},"domain":{"type":"string"},"domain_info":{"$ref":"#/components/schemas/DomainInfo"},"risk_level":{"type":"string"},"score":{"format":"int32","maximum":100,"minimum":0,"type":"integer"}},"required":["domain","score","risk_level","blacklist_results","dns_records","domain_info","cached"],"type":"object"},"RetryJobResponse":{"properties":{"job_id":{"format":"int32","type":"integer"},"status":{"type":"string"},"tasks_retried":{"format":"int64","type":"integer"}},"required":["job_id","status","tasks_retried"],"type":"object"},"ReverificationStatusResponse":{"properties":{"batch_size":{"format":"int32","type":"integer"},"emails_requeued":{"format":"int32","type":"integer"},"enabled":{"type":"boolean"},"last_job_id":{"format":"int32","nullable":true,"type":"integer"},"last_run_at":{"format":"date-time","nullable":true,"type":"string"},"next_run_at":{"format":"date-time","nullable":true,"type":"string"},"staleness_days":{"format":"int32","type":"integer"}},"required":["enabled"],"type":"object"},"RiskDirection":{"enum":["increases_risk","decreases_risk"],"type":"string"},"RiskFactor":{"properties":{"contribution":{"format":"int32","type":"integer"},"description":{"type":"string"},"direction":{"$ref":"#/components/schemas/RiskDirection"},"signal":{"type":"string"}},"required":["signal","contribution","description","direction"],"type":"object"},"ScoringSignals":{"properties":{"has_domain_suggestion":{"type":"boolean"},"has_mx_records":{"type":"boolean"},"is_disposable":{"type":"boolean"},"is_free_provider":{"type":"boolean"},"is_role_account":{"type":"boolean"},"is_spam_trap_domain":{"type":"boolean"},"reachable":{"$ref":"#/components/schemas/Reachable"},"smtp_can_connect":{"type":"boolean"},"smtp_error":{"type":"boolean"},"smtp_has_full_inbox":{"type":"boolean"},"smtp_is_catch_all":{"type":"boolean"},"smtp_is_deliverable":{"type":"boolean"},"smtp_is_disabled":{"type":"boolean"},"valid_syntax":{"type":"boolean"}},"required":["valid_syntax","reachable","has_mx_records","smtp_error","smtp_can_connect","smtp_is_deliverable","smtp_is_disabled","smtp_is_catch_all","smtp_has_full_inbox","is_disposable","is_role_account","is_spam_trap_domain","is_free_provider","has_domain_suggestion"],"type":"object"},"SmtpDetails":{"description":"Results from SMTP connection attempts to the mail server.","properties":{"can_connect_smtp":{"description":"Indicates if the mail exchanger can be contacted successfully.","type":"boolean"},"has_full_inbox":{"description":"Indicates if the mailbox is full.","type":"boolean"},"is_catch_all":{"description":"Indicates if the email address is a catch-all address.","type":"boolean"},"is_deliverable":{"description":"Indicates if an email sent to this address is deliverable.","type":"boolean"},"is_disabled":{"description":"Indicates if the email address has been disabled by the provider.","type":"boolean"}},"required":["can_connect_smtp","has_full_inbox","is_catch_all","is_deliverable","is_disabled"],"title":"SmtpDetails","type":"object"},"SubReason":{"enum":["deliverable","invalid_syntax","invalid_recipient","provider_rejected","smtp_undeliverable","disabled_mailbox","no_mx","smtp_error","smtp_unreachable","catch_all","full_inbox","disposable","role_account","spam_trap","risky","unknown"],"type":"string"},"SuppressionCheckResponse":{"properties":{"created_at":{"format":"date-time","nullable":true,"type":"string"},"reason":{"$ref":"#/components/schemas/SuppressionReason"},"source":{"nullable":true,"type":"string"},"suppressed":{"type":"boolean"}},"required":["suppressed"],"type":"object"},"SuppressionDeleteResponse":{"properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"type":"object"},"SuppressionEntry":{"properties":{"created_at":{"format":"date-time","type":"string"},"email":{"type":"string"},"id":{"format":"int32","type":"integer"},"notes":{"nullable":true,"type":"string"},"reason":{"$ref":"#/components/schemas/SuppressionReason"},"source":{"nullable":true,"type":"string"}},"required":["id","email","reason","created_at"],"type":"object"},"SuppressionListResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/SuppressionEntry"},"type":"array"},"total":{"format":"int64","type":"integer"}},"required":["entries","total"],"type":"object"},"SuppressionReason":{"enum":["manual","bounce","invalid","spam_trap","unsubscribe","complaint","auto_invalid"],"type":"string"},"SyntaxDetails":{"description":"Validation of the email address syntax.","properties":{"address":{"nullable":true,"type":"string"},"domain":{"description":"The domain part of the email address.","type":"string"},"is_valid_syntax":{"description":"Indicates if the email address syntax is valid.","type":"boolean"},"normalized_email":{"nullable":true,"type":"string"},"suggestion":{"nullable":true,"type":"string"},"username":{"description":"The username part of the email address.","type":"string"}},"required":["domain","is_valid_syntax","username","address","normalized_email","suggestion"],"title":"SyntaxDetails","type":"object"},"TaskWebhook":{"description":"Optional webhook configuration for sending email verification results during bulk verification.","properties":{"on_each_email":{"$ref":"#/components/schemas/Webhook"}},"title":"TaskWebhook","type":"object","x-stoplight":{"id":"6053d3ngu2hfn"}},"TenantSettingsResponse":{"properties":{"approval_excellent_threshold":{"format":"double","type":"number"},"approval_good_threshold":{"format":"double","type":"number"},"default_policy_mode":{"type":"string"},"default_webhook_url":{"nullable":true,"type":"string"},"monthly_email_limit":{"format":"int32","nullable":true,"type":"integer"},"name":{"type":"string"},"period_reset_at":{"type":"string"},"result_retention_days":{"format":"int32","type":"integer"},"slug":{"type":"string"},"tenant_id":{"format":"uuid","type":"string"},"used_this_period":{"format":"int32","type":"integer"}},"required":["tenant_id","name","slug","used_this_period","period_reset_at","result_retention_days","default_policy_mode","approval_excellent_threshold","approval_good_threshold"],"type":"object"},"TenantUsageResponse":{"properties":{"monthly_email_limit":{"format":"int32","nullable":true,"type":"integer"},"period_reset_at":{"type":"string"},"plan_tier":{"type":"string"},"quota_remaining":{"format":"int32","nullable":true,"type":"integer"},"quota_unlimited":{"type":"boolean"},"tenant_id":{"format":"uuid","type":"string"},"tenant_name":{"type":"string"},"used_this_period":{"format":"int32","type":"integer"}},"required":["tenant_id","tenant_name","plan_tier","used_this_period","period_reset_at","quota_unlimited"],"type":"object"},"TenantWebhookResponse":{"properties":{"default_webhook_url":{"nullable":true,"type":"string"},"tenant_id":{"format":"uuid","type":"string"},"tenant_name":{"type":"string"},"webhook_signing_secret_configured":{"type":"boolean"}},"required":["tenant_id","tenant_name","webhook_signing_secret_configured"],"type":"object"},"TriggerPipelineInput":{"properties":{"force":{"type":"boolean"},"reason":{"nullable":true,"type":"string"}},"type":"object"},"TriggerPipelineResponse":{"properties":{"run_id":{"format":"int64","type":"integer"},"status":{"$ref":"#/components/schemas/PipelineRunStatus"}},"required":["run_id","status"],"type":"object"},"UpdateApiKeyRequest":{"properties":{"expires_at":{"nullable":true,"type":"string"},"name":{"nullable":true,"type":"string"},"scopes":{"items":{"type":"string"},"nullable":true,"type":"array"}},"type":"object"},"UpdatePipelineInput":{"example":{"delivery":{"dashboard":true,"max_attempts":5,"retry_backoff_seconds":300,"webhook":null},"name":"Weekly Cleanup","policy":{"missed_run_window_hours":24},"schedule":{"cron":"0 9 * * 1","timezone":"UTC"},"source":{"list_id":123,"type":"list_snapshot"},"status":"active","verification":{"delta_mode":true,"freshness_days":30}},"properties":{"delivery":{"allOf":[{"$ref":"#/components/schemas/PipelineDeliveryConfig"}],"nullable":true},"name":{"nullable":true,"type":"string"},"policy":{"allOf":[{"$ref":"#/components/schemas/PipelinePolicyConfig"}],"nullable":true},"schedule":{"allOf":[{"$ref":"#/components/schemas/PipelineSchedule"}],"nullable":true},"source":{"allOf":[{"$ref":"#/components/schemas/PipelineSource"}],"nullable":true},"status":{"allOf":[{"$ref":"#/components/schemas/PipelineStatus"}],"nullable":true},"verification":{"allOf":[{"$ref":"#/components/schemas/PipelineVerificationSettings"}],"nullable":true}},"type":"object"},"UpdateProviderEndpointInput":{"properties":{"allowed_ips":{"items":{"type":"string"},"nullable":true,"type":"array"},"label":{"nullable":true,"type":"string"},"provider_config":{},"rotate_delivery_token":{"type":"boolean"},"status":{"nullable":true,"type":"string"}},"type":"object"},"UpdateReverificationRequest":{"description":"Turns scheduled re-checks on or off for the workspace and sets how old a\nresult may get before it is checked again.","properties":{"batch_size":{"description":"Addresses re-checked in each run (1 to 1,000).","format":"int32","type":"integer"},"enabled":{"type":"boolean"},"staleness_days":{"description":"Re-check results older than this many days (1 to 365).","format":"int32","type":"integer"}},"required":["enabled","staleness_days"],"type":"object"},"UpdateTenantDomainRequest":{"properties":{"domain":{"nullable":true,"type":"string"},"is_active":{"nullable":true,"type":"boolean"},"is_verified":{"nullable":true,"type":"boolean"},"notes":{"nullable":true,"type":"string"}},"type":"object"},"UpdateTenantSettingsRequest":{"properties":{"approval_excellent_threshold":{"description":"Safe-to-send percentage for an excellent list. Set it with `approval_good_threshold`.","format":"double","nullable":true,"type":"number"},"approval_good_threshold":{"description":"Safe-to-send percentage for a good list. Must be below the excellent threshold.","format":"double","nullable":true,"type":"number"},"default_policy_mode":{"nullable":true,"type":"string"},"default_webhook_url":{"nullable":true,"type":"string"},"result_retention_days":{"format":"int32","nullable":true,"type":"integer"},"webhook_signing_secret":{"nullable":true,"type":"string"}},"type":"object"},"UpdateWebhookRequest":{"properties":{"default_webhook_url":{"nullable":true,"type":"string"},"webhook_signing_secret":{"nullable":true,"type":"string"}},"type":"object"},"VerifMethod":{"description":"The method used for email verification.","properties":{"type":{"description":"The method used for the email verification.","enum":["Smtp","Headless","Api","Skipped"],"x-stoplight":{"id":"4ogsz639tcdb6"}}},"required":["type"],"title":"VerifMethod","type":"object","x-stoplight":{"id":"9xw9e1jwti230"}},"Webhook":{"description":"Configuration for a webhook to receive email verification results. The method will be POST, and the body will contain the email verification response.","properties":{"extra":{"type":"object","x-stoplight":{"id":"f20boz81d2fei"}},"url":{"description":"The URL to send the email verification results to.","type":"string","x-stoplight":{"id":"iraaa1ism4bzi"}}},"required":["url"],"title":"Webhook","type":"object","x-stoplight":{"id":"p9emghvcb92fj"}},"YahooVerifMethod":{"description":"Enumeration describing the method used to verify Yahoo emails.","enum":["Api","Headless","Smtp"],"title":"YahooVerifMethod","type":"string"}},"securitySchemes":{"AdminSecret":{"description":"Private operator credential for backend admin routes. Never send from a browser or workspace API key.","in":"header","name":"x-reacher-secret","type":"apiKey"},"Authorization":{"description":"Send Authorization: Bearer rch_live_... for tenant API calls. The signed-in console uses a server-issued backend token.","in":"header","name":"Authorization","type":"apiKey"},"LegacySecret":{"description":"Legacy self-hosted v0 bulk credential. The shared hosted app does not expose v0.","in":"header","name":"x-reacher-secret","type":"apiKey"}}},"info":{"contact":{"email":"amaury@reacher.email","name":"Reacher","url":"https://reacher.email"},"description":"### What is Reacher?\n\nReacher provides email verification, list hygiene, suppressions, scheduled re-verification, and pipelines. The app and API use the same host.","license":{"name":"AGPL-3.0 OR Commercial","url":"https://github.com/reacherhq/check-if-email-exists/blob/master/LICENSE.md"},"termsOfService":"https://github.com/reacherhq/policies/blob/master/terms/index.fr.md","title":"Reacher","version":"4.3.0"},"openapi":"3.0.0","paths":{"/healthz":{"get":{"description":"Returns a lightweight readiness signal with no upstream dependency checks.","operationId":"healthz","responses":{"200":{"description":"Service is alive"}},"security":[],"summary":"GET /healthz","tags":["Health"]}},"/openapi.json":{"get":{"operationId":"openapi_spec","responses":{"200":{"description":"Merged OpenAPI specification for all documented REST endpoints"}},"security":[],"summary":"Serve the merged OpenAPI document for all documented REST endpoints.","tags":["System"]}},"/readyz":{"get":{"description":"Performs dependency checks for Postgres and RabbitMQ and returns readiness status.","operationId":"readyz","responses":{"200":{"description":"Service readiness and dependency checks"}},"security":[],"summary":"GET /readyz","tags":["Health"]}},"/v0/bulk":{"post":{"description":"Creates a legacy bulk verification job and queues tasks synchronously via sqlxmq.","operationId":"create_bulk_job","responses":{"200":{"description":"Legacy bulk job created"}},"security":[{"LegacySecret":[]}],"summary":"POST /v0/bulk","tags":["v0"]}},"/v0/bulk/{job_id}":{"get":{"description":"Returns current status and summary for a legacy bulk verification job.","operationId":"get_bulk_job_status","parameters":[{"description":"Legacy bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Bulk status response"}},"security":[{"LegacySecret":[]}],"summary":"GET /v0/bulk/{job_id}","tags":["v0"]}},"/v0/bulk/{job_id}/results":{"get":{"description":"Returns terminal result rows for a legacy bulk job.","operationId":"get_bulk_job_result","parameters":[{"description":"Legacy bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Bulk job results"}},"security":[{"LegacySecret":[]}],"summary":"GET /v0/bulk/{job_id}/results","tags":["v0"]}},"/v0/check_email":{"post":{"description":"Legacy email verification endpoint (deprecated, retained for compatibility).","operationId":"post_check_email","parameters":[{"description":"Optional idempotency key","in":"header","name":"Idempotency-Key","required":false,"schema":{"nullable":true,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEmailRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEmailOutput"}}},"description":"Email verification result"}},"security":[{"Authorization":[]},{"LegacySecret":[]}],"summary":"POST /v0/check_email","tags":["v0"]}},"/v1/admin/api-keys":{"get":{"description":"List all API keys across tenants with optional filtering.","operationId":"list_all_api_keys","parameters":[{"in":"query","name":"tenant_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminAllApiKeys"}}},"description":"All API keys"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/api-keys","tags":["Admin"]}},"/v1/admin/jobs":{"get":{"description":"List jobs across all tenants with optional filters.","operationId":"list_jobs","parameters":[{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"tenant_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Admin job list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/jobs","tags":["Admin Jobs"]}},"/v1/admin/jobs/{job_id}":{"get":{"description":"Fetch a single job.","operationId":"get_job","parameters":[{"description":"Job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Admin job details"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/jobs/{job_id}","tags":["Admin Jobs"]}},"/v1/admin/jobs/{job_id}/events":{"get":{"description":"Fetch events for a job.","operationId":"get_job_events","parameters":[{"description":"Job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"description":"Job event list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/jobs/{job_id}/events","tags":["Admin Jobs"]}},"/v1/admin/jobs/{job_id}/results":{"get":{"description":"Fetch task results for a job.","operationId":"get_job_results","parameters":[{"description":"Job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"state","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job result list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/jobs/{job_id}/results","tags":["Admin Jobs"]}},"/v1/admin/tenants":{"get":{"description":"List tenants with optional status and pagination filters.","operationId":"list_tenants","parameters":[{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenantList"}}},"description":"Tenant list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/tenants","tags":["Admin"]},"post":{"description":"Create a new tenant.","operationId":"create_tenant","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateTenantRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenant"}}},"description":"Tenant created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"POST /v1/admin/tenants","tags":["Admin"]}},"/v1/admin/tenants/{tenant_id}":{"delete":{"description":"Delete a tenant.","operationId":"delete_tenant","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Tenant deleted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"DELETE /v1/admin/tenants/{tenant_id}","tags":["Admin"]},"get":{"description":"Fetch tenant details by tenant ID.","operationId":"get_tenant","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenant"}}},"description":"Tenant details"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/tenants/{tenant_id}","tags":["Admin"]},"put":{"description":"Update tenant fields.","operationId":"update_tenant","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateTenantRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenant"}}},"description":"Tenant updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"PUT /v1/admin/tenants/{tenant_id}","tags":["Admin"]}},"/v1/admin/tenants/{tenant_id}/api-keys":{"get":{"description":"List API keys for a tenant.","operationId":"list_api_keys","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminApiKeyList"}}},"description":"Tenant API keys"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/tenants/{tenant_id}/api-keys","tags":["Admin"]},"post":{"description":"Create a new API key for a tenant.","operationId":"create_api_key","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminApiKeyWriteRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreatedApiKey"}}},"description":"API key created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"POST /v1/admin/tenants/{tenant_id}/api-keys","tags":["Admin"]}},"/v1/admin/tenants/{tenant_id}/api-keys/{key_id}":{"delete":{"description":"Revoke an API key.","operationId":"revoke_api_key","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}},{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"API key revoked"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"DELETE /v1/admin/tenants/{tenant_id}/api-keys/{key_id}","tags":["Admin"]},"get":{"description":"Fetch one API key by tenant and key ID.","operationId":"get_api_key","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}},{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminApiKey"}}},"description":"API key details"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/tenants/{tenant_id}/api-keys/{key_id}","tags":["Admin"]},"patch":{"description":"Update metadata for an API key.","operationId":"update_api_key","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}},{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminApiKeyWriteRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminApiKey"}}},"description":"API key updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"PATCH /v1/admin/tenants/{tenant_id}/api-keys/{key_id}","tags":["Admin"]}},"/v1/admin/tenants/{tenant_id}/api-keys/{key_id}/reactivate":{"post":{"description":"Reactivate a previously revoked API key.","operationId":"reactivate_api_key","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}},{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"API key reactivated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"POST /v1/admin/tenants/{tenant_id}/api-keys/{key_id}/reactivate","tags":["Admin"]}},"/v1/admin/tenants/{tenant_id}/jobs":{"get":{"description":"List jobs scoped to one tenant.","operationId":"list_tenant_jobs","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"description":"Tenant job list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/tenants/{tenant_id}/jobs","tags":["Admin Jobs"]}},"/v1/admin/tenants/{tenant_id}/quota":{"get":{"description":"Fetch current tenant quota usage and remaining allowance.","operationId":"get_tenant_quota","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenantQuota"}}},"description":"Tenant quota details"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"GET /v1/admin/tenants/{tenant_id}/quota","tags":["Admin"]},"patch":{"description":"Update tenant quota limit.","operationId":"update_tenant_quota","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminUpdateQuotaRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenantQuota"}}},"description":"Quota updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"PATCH /v1/admin/tenants/{tenant_id}/quota","tags":["Admin"]}},"/v1/admin/tenants/{tenant_id}/quota/reset":{"post":{"description":"Reset tenant quota usage counters.","operationId":"reset_tenant_quota","parameters":[{"description":"Tenant identifier","in":"path","name":"tenant_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminTenantQuota"}}},"description":"Quota reset"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[{"AdminSecret":[]}],"summary":"POST /v1/admin/tenants/{tenant_id}/quota/reset","tags":["Admin"]}},"/v1/bulk":{"post":{"description":"Creates a tenant-scoped bulk job for async processing.","operationId":"v1_create_bulk_job","parameters":[{"description":"Optional idempotency key","in":"header","name":"Idempotency-Key","required":false,"schema":{"nullable":true,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateResponse"}}},"description":"Bulk job created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Create the v1 bulk endpoint.","tags":["v1"]}},"/v1/bulk/{job_id}":{"get":{"description":"Returns status and current progress for a tenant-scoped v1 bulk job.","operationId":"v1_get_bulk_job_progress","parameters":[{"description":"V1 bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Bulk job progress"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/bulk/{job_id}","tags":["Jobs"]}},"/v1/bulk/{job_id}/results":{"get":{"description":"Returns terminal results for a tenant-scoped v1 bulk job.","operationId":"v1_get_bulk_job_results","parameters":[{"description":"V1 bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Supported values: `json`, `csv`","in":"query","name":"format","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","minimum":0,"type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkJobResultsResponse"}},"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Bulk job results"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/bulk/{job_id}/results","tags":["Jobs"]}},"/v1/check-email-with-onboard":{"post":{"operationId":"v1_check_email_with_onboard","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardRequest"}}},"required":true},"responses":{"201":{"description":"Tenant onboarded and email verified"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[],"summary":"POST /v1/check-email-with-onboard — Self-service signup + email verification in one call.\nNo authentication required. Creates a tenant, generates an API key,\nverifies the email, and returns all three.","tags":["v1"]}},"/v1/check_email":{"post":{"description":"Verifies an email address and returns a result.","operationId":"v1_check_email","parameters":[{"description":"Optional idempotency key","in":"header","name":"Idempotency-Key","required":false,"schema":{"nullable":true,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEmailRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckEmailOutput"}}},"description":"Email verification result"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/check_email","tags":["v1"]}},"/v1/comments":{"get":{"operationId":"v1_list_comments","parameters":[{"in":"query","name":"job_id","required":false,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"list_id","required":false,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"description":"Comments list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/comments","tags":["Comments"]},"post":{"operationId":"v1_create_comment","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommentRequest"}}},"required":true},"responses":{"201":{"description":"Comment created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/comments","tags":["Comments"]}},"/v1/comments/{comment_id}":{"delete":{"operationId":"v1_delete_comment","parameters":[{"description":"Comment identifier","in":"path","name":"comment_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"description":"Comment deleted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/comments/{comment_id}","tags":["Comments"]}},"/v1/emails/{email}/history":{"get":{"description":"Returns the verification history timeline for a specific email address.","operationId":"v1_email_history","parameters":[{"description":"Email address to look up","in":"path","name":"email","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"email":{"type":"string"},"history":{"items":{"$ref":"#/components/schemas/HistoryEntry"},"type":"array"},"total":{"format":"int64","type":"integer"}},"required":["email","history","total"],"type":"object"}}},"description":"Verification history for the email"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/emails/{email}/history","tags":["Verification"]}},"/v1/events":{"get":{"description":"Returns a paginated, filterable audit log of all job events for the tenant.","operationId":"v1_list_events","parameters":[{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"event_type","required":false,"schema":{"type":"string"}},{"in":"query","name":"actor","required":false,"schema":{"type":"string"}},{"in":"query","name":"job_id","required":false,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"since","required":false,"schema":{"type":"string"}},{"in":"query","name":"until","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Audit log events"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/events","tags":["Events"]}},"/v1/find_email":{"post":{"operationId":"v1_find_email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindEmailRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindEmailAcceptedResponse"}}},"description":"Finder job accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/find_email","tags":["v1"]}},"/v1/find_email/{job_id}":{"get":{"operationId":"v1_get_find_email","parameters":[{"description":"Finder job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindEmailStatusResponse"}}},"description":"Finder job result"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/find_email/{job_id}","tags":["v1"]}},"/v1/inbound/providers/{provider}/{endpoint_id}/{delivery_token}":{"post":{"operationId":"v1_ingest_provider_outcomes","parameters":[{"description":"sendgrid, ses, mailgun, or postmark","in":"path","name":"provider","required":true,"schema":{"type":"string"}},{"description":"Provider endpoint identifier","in":"path","name":"endpoint_id","required":true,"schema":{"format":"uuid","type":"string"}},{"description":"Secret endpoint delivery token","in":"path","name":"delivery_token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundOutcomeResponse"}}},"description":"Provider events authenticated and ingested"},"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundOutcomeResponse"}}},"description":"Receipt retained while endpoint is paused"},"401":{"description":"Provider signature rejected"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"security":[],"tags":["Outcomes"]}},"/v1/jobs/{job_id}":{"get":{"description":"Returns progress summary and state for a tenant-scoped bulk job.","operationId":"v1_get_job_status","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Bulk job progress summary"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/jobs/{job_id}","tags":["Jobs"]}},"/v1/jobs/{job_id}/approval":{"get":{"description":"Returns a pre-send approval checklist summarizing list quality.","operationId":"v1_job_approval_checklist","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovalChecklistResponse"}}},"description":"Pre-send approval checklist"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/jobs/{job_id}/approval","tags":["Jobs"]}},"/v1/jobs/{job_id}/cancel":{"post":{"description":"Requests cancellation for a tenant-scoped bulk job.","operationId":"v1_cancel_job","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Job cancellation accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/jobs/{job_id}/cancel","tags":["Jobs"]}},"/v1/jobs/{job_id}/download":{"get":{"description":"Streams all terminal task results for a tenant-scoped bulk job.","operationId":"v1_download_job_results","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}},{"description":"Supported values: `csv`, `json`","in":"query","name":"format","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/x-ndjson":{"schema":{"format":"binary","type":"string"}},"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Job result download stream"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/jobs/{job_id}/download","tags":["Jobs"]}},"/v1/jobs/{job_id}/events":{"get":{"description":"Returns paginated event history for a tenant-scoped bulk job.","operationId":"v1_get_job_events","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"description":"Job events"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/jobs/{job_id}/events","tags":["Jobs"]}},"/v1/jobs/{job_id}/failure-center":{"get":{"operationId":"v1_get_job_failure_center","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Job failure center"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Get job failure center","tags":["Jobs"]}},"/v1/jobs/{job_id}/failure-report":{"get":{"operationId":"v1_get_job_failure_report","parameters":[{"in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/x-ndjson":{"schema":{"format":"binary","type":"string"}},"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Job failure report stream"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Download job failure report","tags":["Jobs"]}},"/v1/jobs/{job_id}/latency":{"get":{"description":"Returns verification latency analytics for a job (p50, p95, p99, avg, min, max).","operationId":"v1_job_latency","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"Latency analytics"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/jobs/{job_id}/latency","tags":["Jobs"]}},"/v1/jobs/{job_id}/results":{"get":{"description":"Returns paginated completed task results for a tenant-scoped bulk job.","operationId":"v1_get_job_results","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"cursor","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"state","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResultPageResponse"}}},"description":"Job result page"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/jobs/{job_id}/results","tags":["Jobs"]}},"/v1/jobs/{job_id}/retry":{"post":{"description":"Retries all failed or dead-lettered tasks in a tenant-scoped bulk job.","operationId":"v1_retry_job","parameters":[{"description":"Bulk job identifier","in":"path","name":"job_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetryJobResponse"}}},"description":"Retry initiated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/jobs/{job_id}/retry","tags":["Jobs"]}},"/v1/lists":{"get":{"operationId":"v1_list_lists","parameters":[{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListListResponse"}}},"description":"List resources"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/lists","tags":["v1"]},"post":{"operationId":"v1_create_list","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ListUploadRequest"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUploadResponse"}}},"description":"List upload accepted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/lists","tags":["v1"]}},"/v1/lists/{list_id}":{"delete":{"operationId":"v1_delete_list","parameters":[{"description":"List identifier","in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteResponse"}}},"description":"List deleted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/lists/{list_id}","tags":["v1"]},"get":{"operationId":"v1_get_list","parameters":[{"description":"List identifier","in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDetailResponse"}}},"description":"List detail"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/lists/{list_id}","tags":["v1"]}},"/v1/lists/{list_id}/download":{"get":{"operationId":"v1_download_list","parameters":[{"description":"List identifier","in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"in":"query","name":"format","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Cleaned list CSV download"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/lists/{list_id}/download","tags":["v1"]}},"/v1/lists/{list_id}/quality":{"get":{"description":"Returns a quality benchmark report for a list.","operationId":"v1_list_quality","parameters":[{"description":"List identifier","in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"description":"List quality benchmark report"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/lists/{list_id}/quality","tags":["Lists"]}},"/v1/lists/{list_id}/remediation-exports":{"post":{"operationId":"v1_create_remediation_export","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Remediation export"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Create remediation export","tags":["Lists"]}},"/v1/lists/{list_id}/remediation-exports/{export_id}/download":{"get":{"operationId":"v1_download_remediation_export","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}},{"in":"path","name":"export_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Remediation export CSV"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Download remediation export","tags":["Lists"]}},"/v1/lists/{list_id}/remediation-plan":{"get":{"operationId":"v1_get_remediation_plan","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Remediation plan"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Get remediation plan","tags":["Lists"]},"post":{"operationId":"v1_create_remediation_plan","parameters":[{"in":"path","name":"list_id","required":true,"schema":{"format":"int32","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Remediation plan"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Create remediation plan","tags":["Lists"]}},"/v1/me":{"get":{"description":"Returns the authenticated tenant context and quota metadata.","operationId":"v1_me","responses":{"200":{"description":"Current tenant profile"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me","tags":["Account"]}},"/v1/me/api-keys":{"get":{"description":"List API keys for the authenticated tenant.","operationId":"listTenantApiKeys","responses":{"200":{"description":"API key list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/api-keys","tags":["Account"]},"post":{"description":"Create a new API key for the authenticated tenant.","operationId":"createTenantApiKey","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}},"required":true},"responses":{"201":{"description":"API key created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/me/api-keys","tags":["Account"]}},"/v1/me/api-keys/{key_id}":{"delete":{"description":"Revoke an API key.","operationId":"revokeTenantApiKey","parameters":[{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"API key revoked"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/me/api-keys/{key_id}","tags":["Account"]},"get":{"description":"Return a single API key for the authenticated tenant.","operationId":"getTenantApiKey","parameters":[{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"API key details"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/api-keys/{key_id}","tags":["Account"]},"patch":{"description":"Update metadata for an existing API key.","operationId":"updateTenantApiKey","parameters":[{"description":"API key identifier","in":"path","name":"key_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyRequest"}}},"required":true},"responses":{"200":{"description":"API key updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"PATCH /v1/me/api-keys/{key_id}","tags":["Account"]}},"/v1/me/domains":{"get":{"description":"List all active and inactive domain entries for the authenticated tenant.","operationId":"v1_list_tenant_domains","responses":{"200":{"description":"Tenant domains list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/domains","tags":["Tenant"]},"post":{"description":"Add a domain for the authenticated tenant.","operationId":"v1_create_tenant_domain","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTenantDomainRequest"}}},"required":true},"responses":{"201":{"description":"Tenant domain created"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/me/domains","tags":["Tenant"]}},"/v1/me/domains/{domain}":{"delete":{"description":"Remove a domain from the authenticated tenant.","operationId":"v1_delete_tenant_domain","parameters":[{"description":"Domain identifier","in":"path","name":"domain","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Tenant domain deleted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/me/domains/{domain}","tags":["Tenant"]},"get":{"description":"Get one domain entry for the authenticated tenant.","operationId":"v1_get_tenant_domain","parameters":[{"description":"Domain identifier","in":"path","name":"domain","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Tenant domain details"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/domains/{domain}","tags":["Tenant"]},"patch":{"description":"Update the domain value, status, verification state, or metadata notes.","operationId":"v1_update_tenant_domain","parameters":[{"description":"Domain identifier","in":"path","name":"domain","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTenantDomainRequest"}}},"required":true},"responses":{"200":{"description":"Tenant domain updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"PATCH /v1/me/domains/{domain}","tags":["Tenant"]}},"/v1/me/settings":{"get":{"description":"Get tenant runtime settings and default operational behavior.","operationId":"v1_get_tenant_settings","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSettingsResponse"}}},"description":"Tenant settings"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/settings","tags":["Tenant"]},"patch":{"description":"Update tenant settings such as retention, default webhook URL, or secret.","operationId":"v1_update_tenant_settings","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTenantSettingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantSettingsResponse"}}},"description":"Tenant settings updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"PATCH /v1/me/settings","tags":["Tenant"]}},"/v1/me/usage":{"get":{"description":"Return current tenant usage and quota summary.","operationId":"v1_get_tenant_usage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantUsageResponse"}}},"description":"Tenant usage summary"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/usage","tags":["Tenant"]}},"/v1/me/webhook":{"delete":{"description":"Clear tenant webhook URL and signing secret.","operationId":"v1_clear_tenant_webhook","responses":{"200":{"description":"Tenant webhook cleared"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/me/webhook","tags":["Tenant"]},"get":{"description":"Get masked tenant webhook integration state.","operationId":"v1_get_tenant_webhook","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantWebhookResponse"}}},"description":"Tenant webhook state"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/me/webhook","tags":["Tenant"]},"patch":{"description":"Update tenant webhook URL and signing secret.","operationId":"v1_update_tenant_webhook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantWebhookResponse"}}},"description":"Tenant webhook updated"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"PATCH /v1/me/webhook","tags":["Tenant"]}},"/v1/outcomes":{"get":{"operationId":"v1_list_outcomes","parameters":[{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"email","required":false,"schema":{"type":"string"}},{"in":"query","name":"event_type","required":false,"schema":{"type":"string"}},{"in":"query","name":"source_key","required":false,"schema":{"type":"string"}},{"in":"query","name":"since","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutcomeListResponse"}}},"description":"Paginated provider outcomes"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/outcomes","tags":["Outcomes"]},"post":{"operationId":"v1_ingest_outcomes","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutcomeIngestRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutcomeIngestResponse"}}},"description":"Provider outcomes ingested"},"400":{"description":"Invalid outcome payload"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/outcomes","tags":["Outcomes"]}},"/v1/pipelines":{"get":{"operationId":"v1_list_pipelines","parameters":[{"in":"query","name":"status","required":false,"schema":{"$ref":"#/components/schemas/PipelineStatus"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelinesResponse"}}},"description":"Pipeline list"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Bad request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/pipelines","tags":["Pipelines"]},"post":{"operationId":"v1_create_pipeline","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePipelineInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineView"}}},"description":"Pipeline created"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Bad request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/pipelines","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}":{"delete":{"operationId":"v1_delete_pipeline","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePipelineResponse"}}},"description":"Pipeline deleted"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/pipelines/{pipeline_id}","tags":["Pipelines"]},"get":{"operationId":"v1_get_pipeline","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineView"}}},"description":"Pipeline detail"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/pipelines/{pipeline_id}","tags":["Pipelines"]},"patch":{"operationId":"v1_update_pipeline","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePipelineInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineView"}}},"description":"Pipeline updated"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Bad request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"PATCH /v1/pipelines/{pipeline_id}","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}/pause":{"post":{"operationId":"v1_pause_pipeline","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineView"}}},"description":"Pipeline paused"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/pipelines/{pipeline_id}/pause","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}/push":{"post":{"operationId":"v1_push_pipeline","parameters":[{"description":"Push pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Required idempotency key","in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushPipelineInput"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushPipelineResponse"}}},"description":"Push batch accepted"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Bad request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Conflict"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/pipelines/{pipeline_id}/push","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}/resume":{"post":{"operationId":"v1_resume_pipeline","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineView"}}},"description":"Pipeline resumed"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/pipelines/{pipeline_id}/resume","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}/runs":{"get":{"operationId":"v1_list_pipeline_runs","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPipelineRunsResponse"}}},"description":"Pipeline run history"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/pipelines/{pipeline_id}/runs","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}/runs/{run_id}":{"get":{"operationId":"v1_get_pipeline_run","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}},{"description":"Pipeline run identifier","in":"path","name":"run_id","required":true,"schema":{"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineRunView"}}},"description":"Pipeline run detail"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/pipelines/{pipeline_id}/runs/{run_id}","tags":["Pipelines"]}},"/v1/pipelines/{pipeline_id}/trigger":{"post":{"operationId":"v1_trigger_pipeline","parameters":[{"description":"Pipeline identifier","in":"path","name":"pipeline_id","required":true,"schema":{"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerPipelineInput"}}},"required":true},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerPipelineResponse"}}},"description":"Pipeline run triggered"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Bad request"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Internal server error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PipelineErrorResponse"}}},"description":"Service unavailable"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/pipelines/{pipeline_id}/trigger","tags":["Pipelines"]}},"/v1/provider-endpoints":{"get":{"operationId":"v1_list_provider_endpoints","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderEndpointListResponse"}}},"description":"Configured provider endpoints"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"tags":["Outcomes"]},"post":{"operationId":"v1_create_provider_endpoint","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderEndpointInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderEndpointView"}}},"description":"Provider endpoint created; delivery token is returned once"},"400":{"description":"Invalid provider endpoint"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"tags":["Outcomes"]}},"/v1/provider-endpoints/{endpoint_id}":{"delete":{"operationId":"v1_delete_provider_endpoint","parameters":[{"description":"Provider endpoint identifier","in":"path","name":"endpoint_id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderDeleteResponse"}}},"description":"Provider endpoint disabled and deleted"},"404":{"description":"Provider endpoint not found"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"tags":["Outcomes"]},"patch":{"operationId":"v1_update_provider_endpoint","parameters":[{"description":"Provider endpoint identifier","in":"path","name":"endpoint_id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderEndpointInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderEndpointView"}}},"description":"Provider endpoint updated"},"404":{"description":"Provider endpoint not found"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"tags":["Outcomes"]}},"/v1/query":{"get":{"description":"Flexible historical query API for verification results across jobs.","operationId":"v1_query_results","parameters":[{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"category","required":false,"schema":{"type":"string"}},{"in":"query","name":"min_score","required":false,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"max_score","required":false,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"safe_to_send","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"job_id","required":false,"schema":{"format":"int32","type":"integer"}},{"in":"query","name":"since","required":false,"schema":{"type":"string"}},{"in":"query","name":"until","required":false,"schema":{"type":"string"}},{"in":"query","name":"recommendation_action","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy_mode","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy_decision","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered verification results"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/query","tags":["Query"]}},"/v1/reputation/check":{"post":{"operationId":"v1_check_reputation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationCheckRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationCheckResponse"}}},"description":"Reputation check response"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/reputation/check","tags":["v1"]}},"/v1/reverification":{"put":{"operationId":"v1_update_reverification","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateReverificationRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReverificationStatusResponse"}}},"description":"Reverification schedule status"},"400":{"description":"Invalid schedule"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"PUT /v1/reverification","tags":["v1"]}},"/v1/reverification/status":{"get":{"operationId":"v1_reverification_status","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReverificationStatusResponse"}}},"description":"Reverification schedule status"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/reverification/status","tags":["v1"]}},"/v1/sources/quality":{"get":{"operationId":"v1_source_quality","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Source quality analytics"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"List source quality","tags":["v1"]}},"/v1/suppressions":{"get":{"operationId":"v1_list_suppressions","parameters":[{"in":"query","name":"limit","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"offset","required":false,"schema":{"format":"int64","type":"integer"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"source_type","required":false,"schema":{"type":"string"}},{"in":"query","name":"source_ref","required":false,"schema":{"type":"string"}},{"in":"query","name":"include_expired","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionListResponse"}}},"description":"Suppression list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/suppressions","tags":["v1"]},"post":{"operationId":"v1_add_suppressions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSuppressionsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSuppressionsResponse"}}},"description":"Suppression entries added"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"POST /v1/suppressions","tags":["v1"]}},"/v1/suppressions/check":{"get":{"operationId":"v1_check_suppression","parameters":[{"in":"query","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionCheckResponse"}}},"description":"Suppression check result"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"GET /v1/suppressions/check","tags":["v1"]}},"/v1/suppressions/export":{"get":{"operationId":"v1_export_suppressions","responses":{"200":{"content":{"text/csv":{"schema":{"format":"binary","type":"string"}}},"description":"Suppression export CSV"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Export suppressions","tags":["v1"]}},"/v1/suppressions/import":{"post":{"operationId":"v1_import_suppressions","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Suppression entries imported"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"Import suppressions","tags":["v1"]}},"/v1/suppressions/{id}":{"delete":{"operationId":"v1_delete_suppression","parameters":[{"description":"Suppression entry identifier","in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuppressionDeleteResponse"}}},"description":"Suppression entry deleted"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"DELETE /v1/suppressions/{id}","tags":["v1"]}},"/v1/suppressions/{id}/events":{"get":{"operationId":"v1_list_suppression_events","parameters":[{"in":"path","name":"id","required":true,"schema":{"format":"int32","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object"}}},"description":"Suppression event list"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Request error"}},"summary":"List suppression events","tags":["v1"]}},"/version":{"get":{"description":"Returns the running server version.","operationId":"get_version","responses":{"200":{"description":"Service version"}},"security":[],"summary":"GET /version","tags":["System"]}}},"security":[{"Authorization":[]}],"servers":[{"description":"Reacher Production","url":"/"}],"tags":[{"description":"System and service metadata endpoints","name":"System"},{"description":"Service health endpoints","name":"Health"},{"description":"Legacy v0 API endpoints","name":"v0"},{"description":"Primary v1 API endpoints","name":"v1"},{"description":"Job lifecycle and results endpoints","name":"Jobs"},{"description":"Scheduled list-cleaning pipeline endpoints","name":"Pipelines"},{"description":"Account-level endpoints","name":"Account"},{"description":"Administrative endpoints","name":"Admin"},{"description":"Administrative job endpoints","name":"Admin Jobs"},{"description":"Tenant-scoped account settings and domain endpoints","name":"Tenant"},{"description":"List upload, cleaning, and quality endpoints","name":"Lists"},{"description":"Historical verification lookup endpoints","name":"Verification"},{"description":"Advanced audit log endpoints","name":"Events"},{"description":"Advanced historical query endpoints; experimental for large reporting workloads","name":"Query"},{"description":"Collaboration annotation endpoints; experimental","name":"Comments"},{"description":"Normalized provider outcomes, suppression feedback, and authenticated provider adapters","name":"Outcomes"}]}