@apifreaks/openapi-specs 0.3.2 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3486 -128
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3486 -127
- package/dist/specs/domain/domain-reputation.yaml +898 -0
- package/dist/specs/domain/domain-typosquatting.yaml +253 -0
- package/dist/specs/email-validation/bulk-email-validation.yaml +64 -10
- package/dist/specs/email-validation/email-checker.yaml +74 -11
- package/package.json +1 -1
- package/specs/domain/domain-reputation.json +1115 -0
- package/specs/domain/domain-typosquatting.json +344 -0
- package/specs/email-validation/bulk-email-validation.json +78 -9
- package/specs/email-validation/email-checker.json +88 -11
package/dist/index.js
CHANGED
|
@@ -6993,6 +6993,1123 @@ var bulk_domain_checker_default = {
|
|
|
6993
6993
|
]
|
|
6994
6994
|
};
|
|
6995
6995
|
|
|
6996
|
+
// specs/domain/domain-reputation.json
|
|
6997
|
+
var domain_reputation_default = {
|
|
6998
|
+
openapi: "3.1.1",
|
|
6999
|
+
info: {
|
|
7000
|
+
title: "Domain Reputation API - Real-Time Risk Verdict, Trust Score, DGA Detection, and Threat Intelligence for Any Domain",
|
|
7001
|
+
version: "1.0.0",
|
|
7002
|
+
description: "Assess any domain and get a synthesized risk verdict, a weighted trust score, DGA detection, threat intelligence matches, and a full email deliverability check in one call. Every score carries the evidence behind it, and partial data is called out in errors rather than silently dropped. Built for fraud screening, phishing triage, email vetting, brand protection, and threat intel enrichment.",
|
|
7003
|
+
contact: {
|
|
7004
|
+
name: "APIFreaks Support",
|
|
7005
|
+
url: "https://apifreaks.com/contact",
|
|
7006
|
+
email: "support@apifreaks.com"
|
|
7007
|
+
}
|
|
7008
|
+
},
|
|
7009
|
+
servers: [
|
|
7010
|
+
{
|
|
7011
|
+
url: "https://api.apifreaks.com/v1.0",
|
|
7012
|
+
description: "Domain Reputation API Server"
|
|
7013
|
+
}
|
|
7014
|
+
],
|
|
7015
|
+
paths: {
|
|
7016
|
+
"/domain/reputation": {
|
|
7017
|
+
get: {
|
|
7018
|
+
tags: ["Domain APIs"],
|
|
7019
|
+
summary: "Get a real-time risk verdict, trust score, and threat intelligence for any domain.",
|
|
7020
|
+
description: "The Domain Reputation API assesses a domain and returns a risk verdict, trust score, DGA detection results, threat intelligence matches, email deliverability analysis, and evidence summary. Partial data is flagged in the errors array rather than silently dropped.",
|
|
7021
|
+
parameters: [
|
|
7022
|
+
{
|
|
7023
|
+
name: "format",
|
|
7024
|
+
in: "query",
|
|
7025
|
+
required: false,
|
|
7026
|
+
schema: {
|
|
7027
|
+
type: "string",
|
|
7028
|
+
enum: ["json", "xml"],
|
|
7029
|
+
default: "json"
|
|
7030
|
+
},
|
|
7031
|
+
description: "Format of the response."
|
|
7032
|
+
},
|
|
7033
|
+
{
|
|
7034
|
+
name: "domainName",
|
|
7035
|
+
in: "query",
|
|
7036
|
+
required: true,
|
|
7037
|
+
schema: {
|
|
7038
|
+
type: "string"
|
|
7039
|
+
},
|
|
7040
|
+
description: "The domain name to assess (e.g. example.com). Must contain at least one dot and be at most 253 characters. Automatically lowercased."
|
|
7041
|
+
}
|
|
7042
|
+
],
|
|
7043
|
+
responses: {
|
|
7044
|
+
"200": {
|
|
7045
|
+
description: "Success",
|
|
7046
|
+
content: {
|
|
7047
|
+
"application/json": {
|
|
7048
|
+
schema: {
|
|
7049
|
+
$ref: "#/components/schemas/DomainReputationResponse"
|
|
7050
|
+
},
|
|
7051
|
+
examples: {
|
|
7052
|
+
success: {
|
|
7053
|
+
summary: "Safe domain (apple.com)",
|
|
7054
|
+
value: {
|
|
7055
|
+
input: {
|
|
7056
|
+
domain: "apple.com"
|
|
7057
|
+
},
|
|
7058
|
+
assessed_at: "2026-09-08T08:36:23.820181075Z",
|
|
7059
|
+
version: "1.0.0",
|
|
7060
|
+
processing_time_ms: 1739,
|
|
7061
|
+
risk_category: {
|
|
7062
|
+
verdict: "safe",
|
|
7063
|
+
confidence: 0.8,
|
|
7064
|
+
primary_threat: null,
|
|
7065
|
+
severity: "none",
|
|
7066
|
+
threat_types: [],
|
|
7067
|
+
sources: [],
|
|
7068
|
+
pivot_matches: []
|
|
7069
|
+
},
|
|
7070
|
+
dga_score: {
|
|
7071
|
+
score: 0,
|
|
7072
|
+
is_dga: false,
|
|
7073
|
+
model: "deterministic_features_v1",
|
|
7074
|
+
features: {
|
|
7075
|
+
domain_length: 5,
|
|
7076
|
+
vowel_consonant_ratio: 0.6666666666666666,
|
|
7077
|
+
ngram_perplexity: -8.83,
|
|
7078
|
+
shannon_entropy: 1.9219280948873623,
|
|
7079
|
+
digit_letter_ratio: 0,
|
|
7080
|
+
consonant_streak_max: 3,
|
|
7081
|
+
tld_in_known_dga_set: false
|
|
7082
|
+
},
|
|
7083
|
+
interpretation: "human_readable"
|
|
7084
|
+
},
|
|
7085
|
+
trust_signals: {
|
|
7086
|
+
trust_score: 72,
|
|
7087
|
+
trust_band: "high",
|
|
7088
|
+
signals: {
|
|
7089
|
+
positive: [
|
|
7090
|
+
{
|
|
7091
|
+
code: "spf_configured",
|
|
7092
|
+
weight: 5,
|
|
7093
|
+
polarity: "positive",
|
|
7094
|
+
category: "email_security",
|
|
7095
|
+
evidence: "SPF record found",
|
|
7096
|
+
confidence: 1
|
|
7097
|
+
},
|
|
7098
|
+
{
|
|
7099
|
+
code: "dmarc_present",
|
|
7100
|
+
weight: 5,
|
|
7101
|
+
polarity: "positive",
|
|
7102
|
+
category: "email_security",
|
|
7103
|
+
evidence: "DMARC record present",
|
|
7104
|
+
confidence: 1
|
|
7105
|
+
},
|
|
7106
|
+
{
|
|
7107
|
+
code: "established_domain",
|
|
7108
|
+
weight: 10,
|
|
7109
|
+
polarity: "positive",
|
|
7110
|
+
category: "domain_age",
|
|
7111
|
+
evidence: "Domain age > 2 years",
|
|
7112
|
+
confidence: 1
|
|
7113
|
+
},
|
|
7114
|
+
{
|
|
7115
|
+
code: "mature_domain",
|
|
7116
|
+
weight: 5,
|
|
7117
|
+
polarity: "positive",
|
|
7118
|
+
category: "domain_age",
|
|
7119
|
+
evidence: "Domain age > 5 years",
|
|
7120
|
+
confidence: 1
|
|
7121
|
+
},
|
|
7122
|
+
{
|
|
7123
|
+
code: "paid_ssl",
|
|
7124
|
+
weight: 5,
|
|
7125
|
+
polarity: "positive",
|
|
7126
|
+
category: "ssl_certificate",
|
|
7127
|
+
evidence: "Uses paid SSL certificate",
|
|
7128
|
+
confidence: 0.9
|
|
7129
|
+
},
|
|
7130
|
+
{
|
|
7131
|
+
code: "valid_ssl",
|
|
7132
|
+
weight: 3,
|
|
7133
|
+
polarity: "positive",
|
|
7134
|
+
category: "ssl_certificate",
|
|
7135
|
+
evidence: "Valid SSL certificate",
|
|
7136
|
+
confidence: 1
|
|
7137
|
+
}
|
|
7138
|
+
],
|
|
7139
|
+
negative: [
|
|
7140
|
+
{
|
|
7141
|
+
code: "privacy_whois",
|
|
7142
|
+
weight: 1,
|
|
7143
|
+
polarity: "negative",
|
|
7144
|
+
category: "whois_privacy",
|
|
7145
|
+
evidence: "WHOIS information is privacy-protected",
|
|
7146
|
+
confidence: 0.9
|
|
7147
|
+
},
|
|
7148
|
+
{
|
|
7149
|
+
code: "external_redirect",
|
|
7150
|
+
weight: 10,
|
|
7151
|
+
polarity: "negative",
|
|
7152
|
+
category: "content_analysis",
|
|
7153
|
+
evidence: "Site redirects visitors to an external domain",
|
|
7154
|
+
confidence: 0.8
|
|
7155
|
+
}
|
|
7156
|
+
],
|
|
7157
|
+
neutral: []
|
|
7158
|
+
},
|
|
7159
|
+
indicators: {
|
|
7160
|
+
is_newly_registered: false,
|
|
7161
|
+
uses_free_extension: false,
|
|
7162
|
+
uses_free_ssl: false,
|
|
7163
|
+
has_privacy_whois: true,
|
|
7164
|
+
ssl_age_days: 26,
|
|
7165
|
+
has_dmarc: true,
|
|
7166
|
+
has_spf: true,
|
|
7167
|
+
redirects_externally: true,
|
|
7168
|
+
javascript_obfuscated: false,
|
|
7169
|
+
domain_age_days: 14446,
|
|
7170
|
+
registrar: "NOM-IQ Ltd dba Com Laude"
|
|
7171
|
+
}
|
|
7172
|
+
},
|
|
7173
|
+
email_deliverability: {
|
|
7174
|
+
score: 95,
|
|
7175
|
+
grade: "excellent",
|
|
7176
|
+
can_receive_email: true,
|
|
7177
|
+
authentication: {
|
|
7178
|
+
spf: {
|
|
7179
|
+
present: true,
|
|
7180
|
+
policy: "~all",
|
|
7181
|
+
record: "v=spf1 include:_spf.apple.com include:_spf-txn.apple.com ~all"
|
|
7182
|
+
},
|
|
7183
|
+
dkim: {
|
|
7184
|
+
found: true,
|
|
7185
|
+
selectors_found: ["selector1", "selector2"],
|
|
7186
|
+
providers_detected: [],
|
|
7187
|
+
note: "Only common selectors are probed; a domain may use a custom selector"
|
|
7188
|
+
},
|
|
7189
|
+
dmarc: {
|
|
7190
|
+
present: true,
|
|
7191
|
+
policy: "quarantine",
|
|
7192
|
+
reporting_configured: true
|
|
7193
|
+
}
|
|
7194
|
+
},
|
|
7195
|
+
infrastructure: {
|
|
7196
|
+
mx_count: 6,
|
|
7197
|
+
mx_records: [
|
|
7198
|
+
"mx-in-ma.apple.com.",
|
|
7199
|
+
"mx-in.g.apple.com.",
|
|
7200
|
+
"mx-in-rn.apple.com.",
|
|
7201
|
+
"mx-in-sg.apple.com.",
|
|
7202
|
+
"mx-in-hfd.apple.com.",
|
|
7203
|
+
"mx-in-vib.apple.com."
|
|
7204
|
+
],
|
|
7205
|
+
mx_provider: "self_hosted",
|
|
7206
|
+
null_mx: false
|
|
7207
|
+
},
|
|
7208
|
+
reputation: {
|
|
7209
|
+
spam_blacklisted: false,
|
|
7210
|
+
newly_registered: false,
|
|
7211
|
+
domain_age_days: 14446
|
|
7212
|
+
},
|
|
7213
|
+
issues: [
|
|
7214
|
+
{
|
|
7215
|
+
code: "spf_softfail",
|
|
7216
|
+
severity: "low",
|
|
7217
|
+
message: "The SPF policy '~all' only soft-fails unauthorized senders",
|
|
7218
|
+
recommendation: "Move to '-all' once all legitimate sending sources are listed"
|
|
7219
|
+
}
|
|
7220
|
+
]
|
|
7221
|
+
},
|
|
7222
|
+
intelligence: {
|
|
7223
|
+
ioc_type: "domain",
|
|
7224
|
+
ioc_value: "apple.com",
|
|
7225
|
+
related_iocs: [
|
|
7226
|
+
{
|
|
7227
|
+
type: "ipv4",
|
|
7228
|
+
value: "17.253.144.10",
|
|
7229
|
+
confidence: 0.9
|
|
7230
|
+
},
|
|
7231
|
+
{
|
|
7232
|
+
type: "ipv6",
|
|
7233
|
+
value: "2620:149:af0:0:0:0:0:10",
|
|
7234
|
+
confidence: 0.9
|
|
7235
|
+
}
|
|
7236
|
+
],
|
|
7237
|
+
feed_tags: [
|
|
7238
|
+
"verdict:safe",
|
|
7239
|
+
"severity:none",
|
|
7240
|
+
"ns:d.ns.apple.com.",
|
|
7241
|
+
"ns:b.ns.apple.com.",
|
|
7242
|
+
"ns:c.ns.apple.com.",
|
|
7243
|
+
"ns:a.ns.apple.com.",
|
|
7244
|
+
"mx:mx-in-ma.apple.com.",
|
|
7245
|
+
"mx:mx-in.g.apple.com.",
|
|
7246
|
+
"mx:mx-in-rn.apple.com.",
|
|
7247
|
+
"mx:mx-in-sg.apple.com.",
|
|
7248
|
+
"mx:mx-in-hfd.apple.com.",
|
|
7249
|
+
"mx:mx-in-vib.apple.com."
|
|
7250
|
+
],
|
|
7251
|
+
stix_pattern: "[domain-name:value = 'apple.com' OR ipv4-addr:value = '17.253.144.10' OR ipv6-addr:value = '2620:149:af0:0:0:0:0:10']",
|
|
7252
|
+
recommended_action: "allow",
|
|
7253
|
+
first_seen: null,
|
|
7254
|
+
last_seen: null
|
|
7255
|
+
},
|
|
7256
|
+
evidence_summary: {
|
|
7257
|
+
why_flagged: []
|
|
7258
|
+
},
|
|
7259
|
+
errors: []
|
|
7260
|
+
}
|
|
7261
|
+
},
|
|
7262
|
+
partialData: {
|
|
7263
|
+
summary: "Partial data (WHOIS lookup failed)",
|
|
7264
|
+
value: {
|
|
7265
|
+
input: {
|
|
7266
|
+
domain: "apifreaks.com"
|
|
7267
|
+
},
|
|
7268
|
+
risk_category: {
|
|
7269
|
+
verdict: "safe",
|
|
7270
|
+
confidence: 0.7,
|
|
7271
|
+
severity: "none"
|
|
7272
|
+
},
|
|
7273
|
+
trust_signals: {
|
|
7274
|
+
trust_score: 70,
|
|
7275
|
+
trust_band: "high",
|
|
7276
|
+
indicators: {
|
|
7277
|
+
is_newly_registered: null,
|
|
7278
|
+
has_privacy_whois: null,
|
|
7279
|
+
domain_age_days: null,
|
|
7280
|
+
registrar: null
|
|
7281
|
+
}
|
|
7282
|
+
},
|
|
7283
|
+
errors: ["WHOIS lookup failed"]
|
|
7284
|
+
}
|
|
7285
|
+
}
|
|
7286
|
+
}
|
|
7287
|
+
}
|
|
7288
|
+
},
|
|
7289
|
+
headers: {
|
|
7290
|
+
"X-AF-Credits-Cost": {
|
|
7291
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7292
|
+
}
|
|
7293
|
+
}
|
|
7294
|
+
},
|
|
7295
|
+
"400": {
|
|
7296
|
+
description: "Bad Request \u2013 Invalid or missing domainName parameter",
|
|
7297
|
+
content: {
|
|
7298
|
+
"application/json": {
|
|
7299
|
+
schema: {
|
|
7300
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
7301
|
+
},
|
|
7302
|
+
examples: {
|
|
7303
|
+
invalidDomain: {
|
|
7304
|
+
summary: "Invalid domain parameter",
|
|
7305
|
+
value: {
|
|
7306
|
+
error: "Invalid Domain Exception",
|
|
7307
|
+
message: 'Please provide a valid domain name in the "domainName" parameter.',
|
|
7308
|
+
path: "/v1.0/domain/reputation",
|
|
7309
|
+
status: 400,
|
|
7310
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7311
|
+
}
|
|
7312
|
+
},
|
|
7313
|
+
missingDomain: {
|
|
7314
|
+
summary: "Missing domainName parameter",
|
|
7315
|
+
value: {
|
|
7316
|
+
error: "Invalid Param Exception",
|
|
7317
|
+
message: 'Please provide a valid domain name in the "domainName" parameter.',
|
|
7318
|
+
path: "/v1.0/domain/reputation",
|
|
7319
|
+
status: 400,
|
|
7320
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7321
|
+
}
|
|
7322
|
+
}
|
|
7323
|
+
}
|
|
7324
|
+
}
|
|
7325
|
+
},
|
|
7326
|
+
headers: {
|
|
7327
|
+
"X-AF-Credits-Cost": {
|
|
7328
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7329
|
+
}
|
|
7330
|
+
}
|
|
7331
|
+
},
|
|
7332
|
+
"503": {
|
|
7333
|
+
description: "Service Unavailable \u2013 The assessment service is temporarily unavailable",
|
|
7334
|
+
content: {
|
|
7335
|
+
"application/json": {
|
|
7336
|
+
schema: {
|
|
7337
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
7338
|
+
},
|
|
7339
|
+
examples: {
|
|
7340
|
+
serviceUnavailable: {
|
|
7341
|
+
summary: "Service Unavailable",
|
|
7342
|
+
value: {
|
|
7343
|
+
error: "Service Unavailable",
|
|
7344
|
+
message: "Service is unavailable. Please try after some time. [For Technical Support email at: support@apifreaks.com]",
|
|
7345
|
+
path: "/v1.0/domain/reputation",
|
|
7346
|
+
status: 503,
|
|
7347
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7348
|
+
}
|
|
7349
|
+
}
|
|
7350
|
+
}
|
|
7351
|
+
}
|
|
7352
|
+
},
|
|
7353
|
+
headers: {
|
|
7354
|
+
"X-AF-Credits-Cost": {
|
|
7355
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7356
|
+
}
|
|
7357
|
+
}
|
|
7358
|
+
}
|
|
7359
|
+
},
|
|
7360
|
+
operationId: "getDomainReputation"
|
|
7361
|
+
}
|
|
7362
|
+
}
|
|
7363
|
+
},
|
|
7364
|
+
components: {
|
|
7365
|
+
securitySchemes: {
|
|
7366
|
+
ApiKeyAuthHeader: {
|
|
7367
|
+
type: "apiKey",
|
|
7368
|
+
in: "header",
|
|
7369
|
+
name: "X-apiKey",
|
|
7370
|
+
description: "Pass your API key via the X-apiKey request header."
|
|
7371
|
+
},
|
|
7372
|
+
ApiKeyAuthQuery: {
|
|
7373
|
+
type: "apiKey",
|
|
7374
|
+
in: "query",
|
|
7375
|
+
name: "apiKey",
|
|
7376
|
+
description: "Pass your API key via the apiKey query parameter."
|
|
7377
|
+
}
|
|
7378
|
+
},
|
|
7379
|
+
schemas: {
|
|
7380
|
+
DomainReputationResponse: {
|
|
7381
|
+
type: "object",
|
|
7382
|
+
required: [
|
|
7383
|
+
"input",
|
|
7384
|
+
"assessed_at",
|
|
7385
|
+
"version",
|
|
7386
|
+
"processing_time_ms",
|
|
7387
|
+
"risk_category",
|
|
7388
|
+
"dga_score",
|
|
7389
|
+
"trust_signals",
|
|
7390
|
+
"email_deliverability",
|
|
7391
|
+
"intelligence",
|
|
7392
|
+
"evidence_summary",
|
|
7393
|
+
"errors"
|
|
7394
|
+
],
|
|
7395
|
+
properties: {
|
|
7396
|
+
input: {
|
|
7397
|
+
type: "object",
|
|
7398
|
+
required: ["domain"],
|
|
7399
|
+
properties: {
|
|
7400
|
+
domain: {
|
|
7401
|
+
type: "string",
|
|
7402
|
+
description: "Domain name being analyzed."
|
|
7403
|
+
}
|
|
7404
|
+
},
|
|
7405
|
+
description: "Input object containing the analyzed domain."
|
|
7406
|
+
},
|
|
7407
|
+
assessed_at: {
|
|
7408
|
+
type: "string",
|
|
7409
|
+
description: "Timestamp when the assessment was performed (YYYY-MM-DDTHH:mm:ssZ)."
|
|
7410
|
+
},
|
|
7411
|
+
version: {
|
|
7412
|
+
type: "string",
|
|
7413
|
+
description: "API / response schema version."
|
|
7414
|
+
},
|
|
7415
|
+
processing_time_ms: {
|
|
7416
|
+
type: "integer",
|
|
7417
|
+
description: "Time taken to process the request, in milliseconds."
|
|
7418
|
+
},
|
|
7419
|
+
risk_category: {
|
|
7420
|
+
$ref: "#/components/schemas/RiskCategory"
|
|
7421
|
+
},
|
|
7422
|
+
dga_score: {
|
|
7423
|
+
$ref: "#/components/schemas/DgaScore"
|
|
7424
|
+
},
|
|
7425
|
+
trust_signals: {
|
|
7426
|
+
$ref: "#/components/schemas/TrustSignals"
|
|
7427
|
+
},
|
|
7428
|
+
email_deliverability: {
|
|
7429
|
+
$ref: "#/components/schemas/EmailDeliverability"
|
|
7430
|
+
},
|
|
7431
|
+
intelligence: {
|
|
7432
|
+
$ref: "#/components/schemas/Intelligence"
|
|
7433
|
+
},
|
|
7434
|
+
evidence_summary: {
|
|
7435
|
+
$ref: "#/components/schemas/EvidenceSummary"
|
|
7436
|
+
},
|
|
7437
|
+
errors: {
|
|
7438
|
+
type: "array",
|
|
7439
|
+
items: {
|
|
7440
|
+
type: "string"
|
|
7441
|
+
},
|
|
7442
|
+
description: 'List of errors encountered during processing, if any (e.g. "WHOIS lookup failed"). An empty array means every signal resolved.'
|
|
7443
|
+
}
|
|
7444
|
+
},
|
|
7445
|
+
description: "Full domain reputation assessment response."
|
|
7446
|
+
},
|
|
7447
|
+
RiskCategory: {
|
|
7448
|
+
type: "object",
|
|
7449
|
+
required: [
|
|
7450
|
+
"verdict",
|
|
7451
|
+
"confidence",
|
|
7452
|
+
"primary_threat",
|
|
7453
|
+
"severity",
|
|
7454
|
+
"threat_types",
|
|
7455
|
+
"sources",
|
|
7456
|
+
"pivot_matches"
|
|
7457
|
+
],
|
|
7458
|
+
properties: {
|
|
7459
|
+
verdict: {
|
|
7460
|
+
type: "string",
|
|
7461
|
+
enum: ["safe", "suspicious"],
|
|
7462
|
+
description: "Final verdict of the risk assessment."
|
|
7463
|
+
},
|
|
7464
|
+
confidence: {
|
|
7465
|
+
type: "number",
|
|
7466
|
+
format: "float",
|
|
7467
|
+
description: "Confidence score for the verdict (0-1)."
|
|
7468
|
+
},
|
|
7469
|
+
primary_threat: {
|
|
7470
|
+
type: ["string", "null"],
|
|
7471
|
+
description: "Main threat type identified (e.g. phishing). null when no threat was identified."
|
|
7472
|
+
},
|
|
7473
|
+
severity: {
|
|
7474
|
+
type: "string",
|
|
7475
|
+
enum: ["none", "low", "medium", "high"],
|
|
7476
|
+
description: "Severity level of the risk."
|
|
7477
|
+
},
|
|
7478
|
+
threat_types: {
|
|
7479
|
+
type: "array",
|
|
7480
|
+
items: {
|
|
7481
|
+
type: "string"
|
|
7482
|
+
},
|
|
7483
|
+
description: "List of threat types associated with the domain."
|
|
7484
|
+
},
|
|
7485
|
+
sources: {
|
|
7486
|
+
type: "array",
|
|
7487
|
+
items: {
|
|
7488
|
+
$ref: "#/components/schemas/ThreatSource"
|
|
7489
|
+
},
|
|
7490
|
+
description: "Threat intelligence sources that flagged the domain. Empty when nothing flagged it."
|
|
7491
|
+
},
|
|
7492
|
+
pivot_matches: {
|
|
7493
|
+
type: "array",
|
|
7494
|
+
items: {
|
|
7495
|
+
$ref: "#/components/schemas/PivotMatch"
|
|
7496
|
+
},
|
|
7497
|
+
description: "Related pivots (nameserver, email, etc.) linked to known threats."
|
|
7498
|
+
}
|
|
7499
|
+
},
|
|
7500
|
+
description: "Overall risk assessment for the domain."
|
|
7501
|
+
},
|
|
7502
|
+
ThreatSource: {
|
|
7503
|
+
type: "object",
|
|
7504
|
+
required: [
|
|
7505
|
+
"source",
|
|
7506
|
+
"indicator",
|
|
7507
|
+
"threat_type",
|
|
7508
|
+
"confidence",
|
|
7509
|
+
"first_seen",
|
|
7510
|
+
"last_seen"
|
|
7511
|
+
],
|
|
7512
|
+
properties: {
|
|
7513
|
+
source: {
|
|
7514
|
+
type: "string",
|
|
7515
|
+
description: "Name of the threat intelligence source (e.g. Spamhaus)."
|
|
7516
|
+
},
|
|
7517
|
+
indicator: {
|
|
7518
|
+
type: "string",
|
|
7519
|
+
description: "Indicator matched by this source."
|
|
7520
|
+
},
|
|
7521
|
+
threat_type: {
|
|
7522
|
+
type: "string",
|
|
7523
|
+
description: "Threat type reported by this source."
|
|
7524
|
+
},
|
|
7525
|
+
confidence: {
|
|
7526
|
+
type: "number",
|
|
7527
|
+
format: "float",
|
|
7528
|
+
description: "Confidence score from this source (0-1)."
|
|
7529
|
+
},
|
|
7530
|
+
first_seen: {
|
|
7531
|
+
type: "string",
|
|
7532
|
+
description: "First time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ)."
|
|
7533
|
+
},
|
|
7534
|
+
last_seen: {
|
|
7535
|
+
type: "string",
|
|
7536
|
+
description: "Last time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ)."
|
|
7537
|
+
}
|
|
7538
|
+
},
|
|
7539
|
+
description: "A threat intelligence source that flagged the domain."
|
|
7540
|
+
},
|
|
7541
|
+
PivotMatch: {
|
|
7542
|
+
type: "object",
|
|
7543
|
+
required: [
|
|
7544
|
+
"pivot",
|
|
7545
|
+
"pivot_type",
|
|
7546
|
+
"total_related_threats",
|
|
7547
|
+
"confidence"
|
|
7548
|
+
],
|
|
7549
|
+
properties: {
|
|
7550
|
+
pivot: {
|
|
7551
|
+
type: "string",
|
|
7552
|
+
description: "Pivot value (e.g. a nameserver or email address)."
|
|
7553
|
+
},
|
|
7554
|
+
pivot_type: {
|
|
7555
|
+
type: "string",
|
|
7556
|
+
description: "Type of pivot."
|
|
7557
|
+
},
|
|
7558
|
+
total_related_threats: {
|
|
7559
|
+
type: "integer",
|
|
7560
|
+
description: "Total number of threats related to this pivot."
|
|
7561
|
+
},
|
|
7562
|
+
confidence: {
|
|
7563
|
+
type: "number",
|
|
7564
|
+
format: "float",
|
|
7565
|
+
description: "Confidence score for the pivot match (0-1)."
|
|
7566
|
+
}
|
|
7567
|
+
},
|
|
7568
|
+
description: "A related pivot linked to known threats."
|
|
7569
|
+
},
|
|
7570
|
+
DgaScore: {
|
|
7571
|
+
type: "object",
|
|
7572
|
+
required: ["score", "is_dga", "model", "features", "interpretation"],
|
|
7573
|
+
properties: {
|
|
7574
|
+
score: {
|
|
7575
|
+
type: "number",
|
|
7576
|
+
format: "float",
|
|
7577
|
+
description: "DGA likelihood score (0-1)."
|
|
7578
|
+
},
|
|
7579
|
+
is_dga: {
|
|
7580
|
+
type: "boolean",
|
|
7581
|
+
description: "Indicates whether the domain is likely DGA-generated."
|
|
7582
|
+
},
|
|
7583
|
+
model: {
|
|
7584
|
+
type: "string",
|
|
7585
|
+
description: "Model used to compute the DGA score."
|
|
7586
|
+
},
|
|
7587
|
+
features: {
|
|
7588
|
+
$ref: "#/components/schemas/DgaFeatures"
|
|
7589
|
+
},
|
|
7590
|
+
interpretation: {
|
|
7591
|
+
type: "string",
|
|
7592
|
+
description: "Human-readable interpretation of the DGA score."
|
|
7593
|
+
}
|
|
7594
|
+
},
|
|
7595
|
+
description: "Domain Generation Algorithm (DGA) detection results."
|
|
7596
|
+
},
|
|
7597
|
+
DgaFeatures: {
|
|
7598
|
+
type: "object",
|
|
7599
|
+
required: [
|
|
7600
|
+
"domain_length",
|
|
7601
|
+
"vowel_consonant_ratio",
|
|
7602
|
+
"ngram_perplexity",
|
|
7603
|
+
"shannon_entropy",
|
|
7604
|
+
"digit_letter_ratio",
|
|
7605
|
+
"consonant_streak_max",
|
|
7606
|
+
"tld_in_known_dga_set"
|
|
7607
|
+
],
|
|
7608
|
+
properties: {
|
|
7609
|
+
domain_length: {
|
|
7610
|
+
type: "integer",
|
|
7611
|
+
description: "Length of the domain name."
|
|
7612
|
+
},
|
|
7613
|
+
vowel_consonant_ratio: {
|
|
7614
|
+
type: "number",
|
|
7615
|
+
format: "float",
|
|
7616
|
+
description: "Ratio of vowels to consonants in the domain."
|
|
7617
|
+
},
|
|
7618
|
+
ngram_perplexity: {
|
|
7619
|
+
type: "number",
|
|
7620
|
+
format: "float",
|
|
7621
|
+
description: "N-gram perplexity score of the domain string."
|
|
7622
|
+
},
|
|
7623
|
+
shannon_entropy: {
|
|
7624
|
+
type: "number",
|
|
7625
|
+
format: "float",
|
|
7626
|
+
description: "Shannon entropy of the domain string."
|
|
7627
|
+
},
|
|
7628
|
+
digit_letter_ratio: {
|
|
7629
|
+
type: "number",
|
|
7630
|
+
format: "float",
|
|
7631
|
+
description: "Ratio of digits to letters in the domain."
|
|
7632
|
+
},
|
|
7633
|
+
consonant_streak_max: {
|
|
7634
|
+
type: "integer",
|
|
7635
|
+
description: "Maximum consecutive consonant streak in the domain."
|
|
7636
|
+
},
|
|
7637
|
+
tld_in_known_dga_set: {
|
|
7638
|
+
type: "boolean",
|
|
7639
|
+
description: "Indicates if the TLD belongs to a known DGA set."
|
|
7640
|
+
}
|
|
7641
|
+
},
|
|
7642
|
+
description: "Underlying lexical / statistical features used in DGA detection."
|
|
7643
|
+
},
|
|
7644
|
+
TrustSignals: {
|
|
7645
|
+
type: "object",
|
|
7646
|
+
required: ["trust_score", "trust_band", "signals", "indicators"],
|
|
7647
|
+
properties: {
|
|
7648
|
+
trust_score: {
|
|
7649
|
+
type: "integer",
|
|
7650
|
+
description: "Overall trust score (0-100)."
|
|
7651
|
+
},
|
|
7652
|
+
trust_band: {
|
|
7653
|
+
type: "string",
|
|
7654
|
+
description: "Trust score band / category (e.g. low, medium, high)."
|
|
7655
|
+
},
|
|
7656
|
+
signals: {
|
|
7657
|
+
$ref: "#/components/schemas/TrustScoreSignals"
|
|
7658
|
+
},
|
|
7659
|
+
indicators: {
|
|
7660
|
+
$ref: "#/components/schemas/TrustIndicators"
|
|
7661
|
+
}
|
|
7662
|
+
},
|
|
7663
|
+
description: "Trust scoring and supporting signals for the domain."
|
|
7664
|
+
},
|
|
7665
|
+
TrustScoreSignals: {
|
|
7666
|
+
type: "object",
|
|
7667
|
+
required: ["positive", "negative", "neutral"],
|
|
7668
|
+
properties: {
|
|
7669
|
+
positive: {
|
|
7670
|
+
type: "array",
|
|
7671
|
+
items: {
|
|
7672
|
+
$ref: "#/components/schemas/TrustSignalItem"
|
|
7673
|
+
},
|
|
7674
|
+
description: "Signals that positively affect the trust score."
|
|
7675
|
+
},
|
|
7676
|
+
negative: {
|
|
7677
|
+
type: "array",
|
|
7678
|
+
items: {
|
|
7679
|
+
$ref: "#/components/schemas/TrustSignalItem"
|
|
7680
|
+
},
|
|
7681
|
+
description: "Signals that negatively affect the trust score."
|
|
7682
|
+
},
|
|
7683
|
+
neutral: {
|
|
7684
|
+
type: "array",
|
|
7685
|
+
items: {
|
|
7686
|
+
$ref: "#/components/schemas/TrustSignalItem"
|
|
7687
|
+
},
|
|
7688
|
+
description: "Signals that are neutral to the trust score."
|
|
7689
|
+
}
|
|
7690
|
+
},
|
|
7691
|
+
description: "Signals contributing to the trust score."
|
|
7692
|
+
},
|
|
7693
|
+
TrustSignalItem: {
|
|
7694
|
+
type: "object",
|
|
7695
|
+
required: [
|
|
7696
|
+
"code",
|
|
7697
|
+
"weight",
|
|
7698
|
+
"polarity",
|
|
7699
|
+
"category",
|
|
7700
|
+
"evidence",
|
|
7701
|
+
"confidence"
|
|
7702
|
+
],
|
|
7703
|
+
properties: {
|
|
7704
|
+
code: {
|
|
7705
|
+
type: "string",
|
|
7706
|
+
description: "Signal code identifier (e.g. valid_ssl, dmarc_missing)."
|
|
7707
|
+
},
|
|
7708
|
+
weight: {
|
|
7709
|
+
type: "integer",
|
|
7710
|
+
description: "Weight assigned to the signal."
|
|
7711
|
+
},
|
|
7712
|
+
polarity: {
|
|
7713
|
+
type: "string",
|
|
7714
|
+
enum: ["positive", "negative", "neutral"],
|
|
7715
|
+
description: "Polarity of the signal."
|
|
7716
|
+
},
|
|
7717
|
+
category: {
|
|
7718
|
+
type: "string",
|
|
7719
|
+
description: "Category the signal belongs to (e.g. ssl_certificate)."
|
|
7720
|
+
},
|
|
7721
|
+
evidence: {
|
|
7722
|
+
type: "string",
|
|
7723
|
+
description: "Evidence supporting the signal."
|
|
7724
|
+
},
|
|
7725
|
+
confidence: {
|
|
7726
|
+
type: "number",
|
|
7727
|
+
format: "float",
|
|
7728
|
+
description: "Confidence score for the signal (0-1)."
|
|
7729
|
+
}
|
|
7730
|
+
},
|
|
7731
|
+
description: "A single trust signal contributing to the trust score."
|
|
7732
|
+
},
|
|
7733
|
+
TrustIndicators: {
|
|
7734
|
+
type: "object",
|
|
7735
|
+
properties: {
|
|
7736
|
+
is_newly_registered: {
|
|
7737
|
+
type: ["boolean", "null"],
|
|
7738
|
+
description: "Indicates whether the domain was recently registered. null when WHOIS data is unavailable."
|
|
7739
|
+
},
|
|
7740
|
+
uses_free_extension: {
|
|
7741
|
+
type: "boolean",
|
|
7742
|
+
description: "Indicates whether the domain uses a free TLD extension."
|
|
7743
|
+
},
|
|
7744
|
+
uses_free_ssl: {
|
|
7745
|
+
type: "boolean",
|
|
7746
|
+
description: "Indicates whether the domain uses a free SSL certificate."
|
|
7747
|
+
},
|
|
7748
|
+
has_privacy_whois: {
|
|
7749
|
+
type: ["boolean", "null"],
|
|
7750
|
+
description: "Indicates whether WHOIS privacy protection is enabled. null when WHOIS data is unavailable."
|
|
7751
|
+
},
|
|
7752
|
+
ssl_age_days: {
|
|
7753
|
+
type: ["integer", "null"],
|
|
7754
|
+
description: "Age of the SSL certificate in days."
|
|
7755
|
+
},
|
|
7756
|
+
has_dmarc: {
|
|
7757
|
+
type: "boolean",
|
|
7758
|
+
description: "Indicates whether a DMARC record exists."
|
|
7759
|
+
},
|
|
7760
|
+
has_spf: {
|
|
7761
|
+
type: "boolean",
|
|
7762
|
+
description: "Indicates whether an SPF record exists."
|
|
7763
|
+
},
|
|
7764
|
+
redirects_externally: {
|
|
7765
|
+
type: "boolean",
|
|
7766
|
+
description: "Indicates whether the domain redirects to an external site."
|
|
7767
|
+
},
|
|
7768
|
+
javascript_obfuscated: {
|
|
7769
|
+
type: "boolean",
|
|
7770
|
+
description: "Indicates whether obfuscated JavaScript was detected."
|
|
7771
|
+
},
|
|
7772
|
+
domain_age_days: {
|
|
7773
|
+
type: ["integer", "null"],
|
|
7774
|
+
description: "Age of the domain in days. null when WHOIS data is unavailable."
|
|
7775
|
+
},
|
|
7776
|
+
registrar: {
|
|
7777
|
+
type: ["string", "null"],
|
|
7778
|
+
description: "Domain registrar name. null when WHOIS data is unavailable."
|
|
7779
|
+
}
|
|
7780
|
+
},
|
|
7781
|
+
description: "Individual trust / risk indicators for the domain."
|
|
7782
|
+
},
|
|
7783
|
+
EmailDeliverability: {
|
|
7784
|
+
type: "object",
|
|
7785
|
+
required: [
|
|
7786
|
+
"score",
|
|
7787
|
+
"grade",
|
|
7788
|
+
"can_receive_email",
|
|
7789
|
+
"authentication",
|
|
7790
|
+
"infrastructure",
|
|
7791
|
+
"reputation",
|
|
7792
|
+
"issues"
|
|
7793
|
+
],
|
|
7794
|
+
properties: {
|
|
7795
|
+
score: {
|
|
7796
|
+
type: "integer",
|
|
7797
|
+
description: "Overall email deliverability score out of 100."
|
|
7798
|
+
},
|
|
7799
|
+
grade: {
|
|
7800
|
+
type: "string",
|
|
7801
|
+
description: "Letter / word grade summarizing the deliverability score."
|
|
7802
|
+
},
|
|
7803
|
+
can_receive_email: {
|
|
7804
|
+
type: "boolean",
|
|
7805
|
+
description: "Indicates whether the domain is configured to receive email."
|
|
7806
|
+
},
|
|
7807
|
+
authentication: {
|
|
7808
|
+
$ref: "#/components/schemas/EmailAuthentication"
|
|
7809
|
+
},
|
|
7810
|
+
infrastructure: {
|
|
7811
|
+
$ref: "#/components/schemas/EmailInfrastructure"
|
|
7812
|
+
},
|
|
7813
|
+
reputation: {
|
|
7814
|
+
$ref: "#/components/schemas/EmailReputation"
|
|
7815
|
+
},
|
|
7816
|
+
issues: {
|
|
7817
|
+
type: "array",
|
|
7818
|
+
items: {
|
|
7819
|
+
$ref: "#/components/schemas/EmailIssue"
|
|
7820
|
+
},
|
|
7821
|
+
description: "List of detected email deliverability issues or misconfigurations."
|
|
7822
|
+
}
|
|
7823
|
+
},
|
|
7824
|
+
description: "Assessment of the domain's ability to send and receive email reliably."
|
|
7825
|
+
},
|
|
7826
|
+
EmailAuthentication: {
|
|
7827
|
+
type: "object",
|
|
7828
|
+
required: ["spf", "dkim", "dmarc"],
|
|
7829
|
+
properties: {
|
|
7830
|
+
spf: {
|
|
7831
|
+
$ref: "#/components/schemas/SpfRecord"
|
|
7832
|
+
},
|
|
7833
|
+
dkim: {
|
|
7834
|
+
$ref: "#/components/schemas/DkimRecord"
|
|
7835
|
+
},
|
|
7836
|
+
dmarc: {
|
|
7837
|
+
$ref: "#/components/schemas/DmarcRecord"
|
|
7838
|
+
}
|
|
7839
|
+
},
|
|
7840
|
+
description: "Email authentication mechanisms configured for the domain."
|
|
7841
|
+
},
|
|
7842
|
+
SpfRecord: {
|
|
7843
|
+
type: "object",
|
|
7844
|
+
required: ["present", "policy", "record"],
|
|
7845
|
+
properties: {
|
|
7846
|
+
present: {
|
|
7847
|
+
type: "boolean",
|
|
7848
|
+
description: "Indicates whether an SPF record was found."
|
|
7849
|
+
},
|
|
7850
|
+
policy: {
|
|
7851
|
+
type: "string",
|
|
7852
|
+
description: "SPF enforcement policy qualifier found in the record (e.g. ~all, -all)."
|
|
7853
|
+
},
|
|
7854
|
+
record: {
|
|
7855
|
+
type: "string",
|
|
7856
|
+
description: "Raw SPF DNS TXT record string."
|
|
7857
|
+
}
|
|
7858
|
+
},
|
|
7859
|
+
description: "Sender Policy Framework configuration."
|
|
7860
|
+
},
|
|
7861
|
+
DkimRecord: {
|
|
7862
|
+
type: "object",
|
|
7863
|
+
required: ["found", "selectors_found", "providers_detected", "note"],
|
|
7864
|
+
properties: {
|
|
7865
|
+
found: {
|
|
7866
|
+
type: "boolean",
|
|
7867
|
+
description: "Indicates whether a DKIM record was found for any probed selector."
|
|
7868
|
+
},
|
|
7869
|
+
selectors_found: {
|
|
7870
|
+
type: "array",
|
|
7871
|
+
items: {
|
|
7872
|
+
type: "string"
|
|
7873
|
+
},
|
|
7874
|
+
description: "List of DKIM selectors for which a record was found."
|
|
7875
|
+
},
|
|
7876
|
+
providers_detected: {
|
|
7877
|
+
type: "array",
|
|
7878
|
+
items: {
|
|
7879
|
+
type: "string"
|
|
7880
|
+
},
|
|
7881
|
+
description: "Email service providers inferred from the matched DKIM selectors."
|
|
7882
|
+
},
|
|
7883
|
+
note: {
|
|
7884
|
+
type: "string",
|
|
7885
|
+
description: "Clarifying note about the limitations of DKIM selector probing."
|
|
7886
|
+
}
|
|
7887
|
+
},
|
|
7888
|
+
description: "DomainKeys Identified Mail configuration."
|
|
7889
|
+
},
|
|
7890
|
+
DmarcRecord: {
|
|
7891
|
+
type: "object",
|
|
7892
|
+
required: ["present", "policy", "reporting_configured"],
|
|
7893
|
+
properties: {
|
|
7894
|
+
present: {
|
|
7895
|
+
type: "boolean",
|
|
7896
|
+
description: "Indicates whether a DMARC record was found."
|
|
7897
|
+
},
|
|
7898
|
+
policy: {
|
|
7899
|
+
type: "string",
|
|
7900
|
+
description: "DMARC enforcement policy applied to failing messages (e.g. none, quarantine, reject)."
|
|
7901
|
+
},
|
|
7902
|
+
reporting_configured: {
|
|
7903
|
+
type: "boolean",
|
|
7904
|
+
description: "Indicates whether DMARC aggregate / forensic reporting addresses are configured."
|
|
7905
|
+
}
|
|
7906
|
+
},
|
|
7907
|
+
description: "Domain-based Message Authentication, Reporting and Conformance configuration."
|
|
7908
|
+
},
|
|
7909
|
+
EmailInfrastructure: {
|
|
7910
|
+
type: "object",
|
|
7911
|
+
required: ["mx_count", "mx_records", "mx_provider", "null_mx"],
|
|
7912
|
+
properties: {
|
|
7913
|
+
mx_count: {
|
|
7914
|
+
type: "integer",
|
|
7915
|
+
description: "Number of MX records found for the domain."
|
|
7916
|
+
},
|
|
7917
|
+
mx_records: {
|
|
7918
|
+
type: "array",
|
|
7919
|
+
items: {
|
|
7920
|
+
type: "string"
|
|
7921
|
+
},
|
|
7922
|
+
description: "List of mail exchange server hostnames for the domain."
|
|
7923
|
+
},
|
|
7924
|
+
mx_provider: {
|
|
7925
|
+
type: "string",
|
|
7926
|
+
description: "Email hosting provider inferred from the MX records."
|
|
7927
|
+
},
|
|
7928
|
+
null_mx: {
|
|
7929
|
+
type: "boolean",
|
|
7930
|
+
description: "Indicates whether the domain explicitly declines email via a null MX record."
|
|
7931
|
+
}
|
|
7932
|
+
},
|
|
7933
|
+
description: "Mail server infrastructure backing the domain."
|
|
7934
|
+
},
|
|
7935
|
+
EmailReputation: {
|
|
7936
|
+
type: "object",
|
|
7937
|
+
required: ["spam_blacklisted", "newly_registered"],
|
|
7938
|
+
properties: {
|
|
7939
|
+
spam_blacklisted: {
|
|
7940
|
+
type: "boolean",
|
|
7941
|
+
description: "Indicates whether the domain appears on known spam blacklists."
|
|
7942
|
+
},
|
|
7943
|
+
newly_registered: {
|
|
7944
|
+
type: "boolean",
|
|
7945
|
+
description: "Indicates whether the domain was registered recently."
|
|
7946
|
+
},
|
|
7947
|
+
domain_age_days: {
|
|
7948
|
+
type: ["integer", "null"],
|
|
7949
|
+
description: "Age of the domain in days since registration."
|
|
7950
|
+
}
|
|
7951
|
+
},
|
|
7952
|
+
description: "Reputation and trust signals related to the domain's email sending history."
|
|
7953
|
+
},
|
|
7954
|
+
EmailIssue: {
|
|
7955
|
+
type: "object",
|
|
7956
|
+
properties: {
|
|
7957
|
+
code: {
|
|
7958
|
+
type: "string",
|
|
7959
|
+
description: "Machine-readable code identifying the specific deliverability issue."
|
|
7960
|
+
},
|
|
7961
|
+
severity: {
|
|
7962
|
+
type: "string",
|
|
7963
|
+
description: "Severity level assigned to the detected issue."
|
|
7964
|
+
},
|
|
7965
|
+
message: {
|
|
7966
|
+
type: "string",
|
|
7967
|
+
description: "Human-readable explanation of the issue."
|
|
7968
|
+
},
|
|
7969
|
+
recommendation: {
|
|
7970
|
+
type: "string",
|
|
7971
|
+
description: "Plain-language description of the exact fix to apply."
|
|
7972
|
+
}
|
|
7973
|
+
},
|
|
7974
|
+
description: "A detected email deliverability issue or misconfiguration."
|
|
7975
|
+
},
|
|
7976
|
+
Intelligence: {
|
|
7977
|
+
type: "object",
|
|
7978
|
+
required: [
|
|
7979
|
+
"ioc_type",
|
|
7980
|
+
"ioc_value",
|
|
7981
|
+
"related_iocs",
|
|
7982
|
+
"feed_tags",
|
|
7983
|
+
"stix_pattern",
|
|
7984
|
+
"recommended_action",
|
|
7985
|
+
"first_seen",
|
|
7986
|
+
"last_seen"
|
|
7987
|
+
],
|
|
7988
|
+
properties: {
|
|
7989
|
+
ioc_type: {
|
|
7990
|
+
type: "string",
|
|
7991
|
+
description: "Type of the indicator of compromise (e.g. domain)."
|
|
7992
|
+
},
|
|
7993
|
+
ioc_value: {
|
|
7994
|
+
type: "string",
|
|
7995
|
+
description: "Value of the indicator of compromise."
|
|
7996
|
+
},
|
|
7997
|
+
related_iocs: {
|
|
7998
|
+
type: "array",
|
|
7999
|
+
items: {
|
|
8000
|
+
$ref: "#/components/schemas/RelatedIoc"
|
|
8001
|
+
},
|
|
8002
|
+
description: "Other IOCs related to this domain."
|
|
8003
|
+
},
|
|
8004
|
+
feed_tags: {
|
|
8005
|
+
type: "array",
|
|
8006
|
+
items: {
|
|
8007
|
+
type: "string"
|
|
8008
|
+
},
|
|
8009
|
+
description: "Tags associated with this IOC from threat feeds."
|
|
8010
|
+
},
|
|
8011
|
+
stix_pattern: {
|
|
8012
|
+
type: "string",
|
|
8013
|
+
description: "STIX 2.1 pattern representation of the IOC, ready to wrap into an Indicator object."
|
|
8014
|
+
},
|
|
8015
|
+
recommended_action: {
|
|
8016
|
+
type: "string",
|
|
8017
|
+
enum: ["allow", "monitor", "block"],
|
|
8018
|
+
description: "Recommended action based on the assessment."
|
|
8019
|
+
},
|
|
8020
|
+
first_seen: {
|
|
8021
|
+
type: ["string", "null"],
|
|
8022
|
+
description: "First time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed."
|
|
8023
|
+
},
|
|
8024
|
+
last_seen: {
|
|
8025
|
+
type: ["string", "null"],
|
|
8026
|
+
description: "Last time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed."
|
|
8027
|
+
}
|
|
8028
|
+
},
|
|
8029
|
+
description: "Threat intelligence details for the indicator of compromise (IOC)."
|
|
8030
|
+
},
|
|
8031
|
+
RelatedIoc: {
|
|
8032
|
+
type: "object",
|
|
8033
|
+
required: ["type", "value", "confidence"],
|
|
8034
|
+
properties: {
|
|
8035
|
+
type: {
|
|
8036
|
+
type: "string",
|
|
8037
|
+
description: "Type of the related IOC (e.g. ipv4, ipv6)."
|
|
8038
|
+
},
|
|
8039
|
+
value: {
|
|
8040
|
+
type: "string",
|
|
8041
|
+
description: "Value of the related IOC."
|
|
8042
|
+
},
|
|
8043
|
+
confidence: {
|
|
8044
|
+
type: "number",
|
|
8045
|
+
format: "float",
|
|
8046
|
+
description: "Confidence score for the related IOC (0-1)."
|
|
8047
|
+
}
|
|
8048
|
+
},
|
|
8049
|
+
description: "A related indicator of compromise."
|
|
8050
|
+
},
|
|
8051
|
+
EvidenceSummary: {
|
|
8052
|
+
type: "object",
|
|
8053
|
+
required: ["why_flagged"],
|
|
8054
|
+
properties: {
|
|
8055
|
+
why_flagged: {
|
|
8056
|
+
type: "array",
|
|
8057
|
+
items: {
|
|
8058
|
+
type: "string"
|
|
8059
|
+
},
|
|
8060
|
+
description: "List of reasons why the domain was flagged. Empty for a clean domain."
|
|
8061
|
+
}
|
|
8062
|
+
},
|
|
8063
|
+
description: "Summary of reasons behind the risk assessment."
|
|
8064
|
+
},
|
|
8065
|
+
ErrorResponse: {
|
|
8066
|
+
type: "object",
|
|
8067
|
+
description: "Standard error envelope returned by the API on failed requests.",
|
|
8068
|
+
required: ["message"],
|
|
8069
|
+
properties: {
|
|
8070
|
+
error: {
|
|
8071
|
+
type: "string",
|
|
8072
|
+
description: "Short error category or exception type."
|
|
8073
|
+
},
|
|
8074
|
+
message: {
|
|
8075
|
+
type: "string",
|
|
8076
|
+
description: "Human-readable error message describing the failure."
|
|
8077
|
+
},
|
|
8078
|
+
path: {
|
|
8079
|
+
type: "string",
|
|
8080
|
+
description: "API endpoint path that produced the error."
|
|
8081
|
+
},
|
|
8082
|
+
status: {
|
|
8083
|
+
type: "integer",
|
|
8084
|
+
description: "HTTP status code returned with the error."
|
|
8085
|
+
},
|
|
8086
|
+
timestamp: {
|
|
8087
|
+
type: "string",
|
|
8088
|
+
format: "date-time",
|
|
8089
|
+
description: "Timestamp when the error occurred (ISO 8601)."
|
|
8090
|
+
}
|
|
8091
|
+
}
|
|
8092
|
+
}
|
|
8093
|
+
},
|
|
8094
|
+
headers: {
|
|
8095
|
+
"X-AF-Credits-Cost": {
|
|
8096
|
+
description: "Specifies the number of credits consumed by the current request.",
|
|
8097
|
+
schema: {
|
|
8098
|
+
type: "integer"
|
|
8099
|
+
}
|
|
8100
|
+
}
|
|
8101
|
+
}
|
|
8102
|
+
},
|
|
8103
|
+
security: [
|
|
8104
|
+
{
|
|
8105
|
+
ApiKeyAuthHeader: []
|
|
8106
|
+
},
|
|
8107
|
+
{
|
|
8108
|
+
ApiKeyAuthQuery: []
|
|
8109
|
+
}
|
|
8110
|
+
]
|
|
8111
|
+
};
|
|
8112
|
+
|
|
6996
8113
|
// specs/domain/domain-search-with-suggestions.json
|
|
6997
8114
|
var domain_search_with_suggestions_default = {
|
|
6998
8115
|
openapi: "3.1.1",
|
|
@@ -7208,47 +8325,278 @@ var domain_search_with_suggestions_default = {
|
|
|
7208
8325
|
schemas: {
|
|
7209
8326
|
DomainAvailabilityResponse: {
|
|
7210
8327
|
type: "object",
|
|
7211
|
-
description: "Domain availability check response containing the domain name and availability status. Returned when sug=false.",
|
|
8328
|
+
description: "Domain availability check response containing the domain name and availability status. Returned when sug=false.",
|
|
8329
|
+
required: ["domain", "domainAvailability"],
|
|
8330
|
+
properties: {
|
|
8331
|
+
domain: {
|
|
8332
|
+
type: "string",
|
|
8333
|
+
description: "Name of the queried domain."
|
|
8334
|
+
},
|
|
8335
|
+
domainAvailability: {
|
|
8336
|
+
type: "boolean",
|
|
8337
|
+
description: "True if available, false if not available."
|
|
8338
|
+
}
|
|
8339
|
+
}
|
|
8340
|
+
},
|
|
8341
|
+
DomainSuggestionResponse: {
|
|
8342
|
+
type: "object",
|
|
8343
|
+
required: ["domain_available_response"],
|
|
8344
|
+
properties: {
|
|
8345
|
+
domain_available_response: {
|
|
8346
|
+
type: "array",
|
|
8347
|
+
description: "List of domain availability objects.",
|
|
8348
|
+
items: {
|
|
8349
|
+
$ref: "#/components/schemas/DomainSuggestionItem"
|
|
8350
|
+
}
|
|
8351
|
+
}
|
|
8352
|
+
},
|
|
8353
|
+
description: "Domain suggestion response containing a list of availability-suggestions."
|
|
8354
|
+
},
|
|
8355
|
+
DomainSuggestionItem: {
|
|
8356
|
+
type: "object",
|
|
8357
|
+
description: "A single domain suggestion with availability status.",
|
|
8358
|
+
required: ["domain", "domainAvailability"],
|
|
8359
|
+
properties: {
|
|
8360
|
+
domain: {
|
|
8361
|
+
type: "string",
|
|
8362
|
+
description: "Name of the suggested domain."
|
|
8363
|
+
},
|
|
8364
|
+
domainAvailability: {
|
|
8365
|
+
type: "boolean",
|
|
8366
|
+
description: "True if available, false if not available."
|
|
8367
|
+
}
|
|
8368
|
+
}
|
|
8369
|
+
},
|
|
8370
|
+
ErrorResponse: {
|
|
8371
|
+
type: "object",
|
|
8372
|
+
description: "Standard error envelope returned by the API on failed requests.",
|
|
8373
|
+
required: ["message"],
|
|
8374
|
+
properties: {
|
|
8375
|
+
error: {
|
|
8376
|
+
type: "string",
|
|
8377
|
+
description: "Short error category or exception type."
|
|
8378
|
+
},
|
|
8379
|
+
message: {
|
|
8380
|
+
type: "string",
|
|
8381
|
+
description: "Human-readable error message describing the failure."
|
|
8382
|
+
},
|
|
8383
|
+
path: {
|
|
8384
|
+
type: "string",
|
|
8385
|
+
description: "API endpoint path that produced the error."
|
|
8386
|
+
},
|
|
8387
|
+
status: {
|
|
8388
|
+
type: "integer",
|
|
8389
|
+
description: "HTTP status code returned with the error."
|
|
8390
|
+
},
|
|
8391
|
+
timestamp: {
|
|
8392
|
+
type: "string",
|
|
8393
|
+
format: "date-time",
|
|
8394
|
+
description: "Timestamp when the error occurred (ISO 8601)."
|
|
8395
|
+
}
|
|
8396
|
+
}
|
|
8397
|
+
}
|
|
8398
|
+
},
|
|
8399
|
+
headers: {
|
|
8400
|
+
"X-AF-Credits-Cost": {
|
|
8401
|
+
description: "Specifies the number of credits consumed by the current request.",
|
|
8402
|
+
schema: {
|
|
8403
|
+
type: "integer"
|
|
8404
|
+
}
|
|
8405
|
+
}
|
|
8406
|
+
}
|
|
8407
|
+
},
|
|
8408
|
+
security: [
|
|
8409
|
+
{
|
|
8410
|
+
ApiKeyAuthHeader: []
|
|
8411
|
+
},
|
|
8412
|
+
{
|
|
8413
|
+
ApiKeyAuthQuery: []
|
|
8414
|
+
}
|
|
8415
|
+
]
|
|
8416
|
+
};
|
|
8417
|
+
|
|
8418
|
+
// specs/domain/domain-search.json
|
|
8419
|
+
var domain_search_default = {
|
|
8420
|
+
openapi: "3.1.1",
|
|
8421
|
+
info: {
|
|
8422
|
+
title: "Domain Availability API - Check Domain Names in Real Time and Get Suggestions",
|
|
8423
|
+
version: "1.0.0",
|
|
8424
|
+
description: "Check whether a domain is available for registration across all top-level domains (TLDs) and second-level domains (SLDs). Uses DNS-based or WHOIS-based lookups to determine domain availability. Returns a simple response with the domain name and a boolean availability indicator.",
|
|
8425
|
+
contact: {
|
|
8426
|
+
name: "APIFreaks Support",
|
|
8427
|
+
url: "https://apifreaks.com/contact",
|
|
8428
|
+
email: "support@apifreaks.com"
|
|
8429
|
+
}
|
|
8430
|
+
},
|
|
8431
|
+
servers: [
|
|
8432
|
+
{
|
|
8433
|
+
url: "https://api.apifreaks.com/v1.0",
|
|
8434
|
+
description: "Domain Search API Server"
|
|
8435
|
+
}
|
|
8436
|
+
],
|
|
8437
|
+
paths: {
|
|
8438
|
+
"/domain/availability": {
|
|
8439
|
+
get: {
|
|
8440
|
+
tags: ["Domain APIs"],
|
|
8441
|
+
summary: "Check whether a domain is available for registration or not.",
|
|
8442
|
+
description: "The Domain Search API is designed to simplify the process of finding available domain names across all top-level domains (TLDs) and second-level domains (SLDs).",
|
|
8443
|
+
parameters: [
|
|
8444
|
+
{
|
|
8445
|
+
name: "format",
|
|
8446
|
+
in: "query",
|
|
8447
|
+
required: false,
|
|
8448
|
+
schema: {
|
|
8449
|
+
type: "string",
|
|
8450
|
+
enum: ["json", "xml"],
|
|
8451
|
+
default: "json"
|
|
8452
|
+
},
|
|
8453
|
+
description: "Format of the response."
|
|
8454
|
+
},
|
|
8455
|
+
{
|
|
8456
|
+
name: "domain",
|
|
8457
|
+
in: "query",
|
|
8458
|
+
required: true,
|
|
8459
|
+
schema: {
|
|
8460
|
+
type: "string"
|
|
8461
|
+
},
|
|
8462
|
+
description: "Domain name whose availability is to be checked."
|
|
8463
|
+
},
|
|
8464
|
+
{
|
|
8465
|
+
name: "source",
|
|
8466
|
+
in: "query",
|
|
8467
|
+
required: false,
|
|
8468
|
+
schema: {
|
|
8469
|
+
type: "string",
|
|
8470
|
+
enum: ["dns", "whois"],
|
|
8471
|
+
default: "dns"
|
|
8472
|
+
},
|
|
8473
|
+
description: 'Specify the data source for domain availability checks. Use "dns" for DNS-based lookups or "whois" for WHOIS-based lookups. By default, "dns" is used.'
|
|
8474
|
+
}
|
|
8475
|
+
],
|
|
8476
|
+
responses: {
|
|
8477
|
+
"200": {
|
|
8478
|
+
description: "Success",
|
|
8479
|
+
content: {
|
|
8480
|
+
"application/json": {
|
|
8481
|
+
schema: {
|
|
8482
|
+
$ref: "#/components/schemas/DomainAvailabilityResponse"
|
|
8483
|
+
},
|
|
8484
|
+
examples: {
|
|
8485
|
+
success: {
|
|
8486
|
+
summary: "Domain available",
|
|
8487
|
+
value: {
|
|
8488
|
+
domain: "google.com",
|
|
8489
|
+
domainAvailability: false
|
|
8490
|
+
}
|
|
8491
|
+
}
|
|
8492
|
+
}
|
|
8493
|
+
}
|
|
8494
|
+
},
|
|
8495
|
+
headers: {
|
|
8496
|
+
"X-AF-Credits-Cost": {
|
|
8497
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
8498
|
+
}
|
|
8499
|
+
}
|
|
8500
|
+
},
|
|
8501
|
+
"400": {
|
|
8502
|
+
description: "Bad Request \u2013 Missing domain, or domain has an unrecognized/unsupported TLD",
|
|
8503
|
+
content: {
|
|
8504
|
+
"application/json": {
|
|
8505
|
+
schema: {
|
|
8506
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
8507
|
+
},
|
|
8508
|
+
examples: {
|
|
8509
|
+
missingDomain: {
|
|
8510
|
+
summary: "Missing required domain parameter",
|
|
8511
|
+
value: {
|
|
8512
|
+
error: "Invalid Param Exception",
|
|
8513
|
+
message: "please pass correct parameters",
|
|
8514
|
+
path: "/v1.0/domain/availability",
|
|
8515
|
+
status: 400,
|
|
8516
|
+
timestamp: "2026-07-27T12:18:21.115Z"
|
|
8517
|
+
}
|
|
8518
|
+
},
|
|
8519
|
+
unsupportedTld: {
|
|
8520
|
+
summary: "Domain has an unrecognized or unsupported TLD",
|
|
8521
|
+
value: {
|
|
8522
|
+
timestamp: "2026-07-27T12:18:47.346748812Z",
|
|
8523
|
+
status: 400,
|
|
8524
|
+
error: "Invalid Param Exception",
|
|
8525
|
+
message: "Please pass domain param correct value [For Technical Support: support@whoisfreaks.com]",
|
|
8526
|
+
path: "/v1.0/domain/availability"
|
|
8527
|
+
}
|
|
8528
|
+
}
|
|
8529
|
+
}
|
|
8530
|
+
}
|
|
8531
|
+
},
|
|
8532
|
+
headers: {
|
|
8533
|
+
"X-AF-Credits-Cost": {
|
|
8534
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
8535
|
+
}
|
|
8536
|
+
}
|
|
8537
|
+
},
|
|
8538
|
+
"408": {
|
|
8539
|
+
description: "Request Timeout \u2013 Unable to fetch WHOIS data",
|
|
8540
|
+
content: {
|
|
8541
|
+
"application/json": {
|
|
8542
|
+
schema: {
|
|
8543
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
8544
|
+
},
|
|
8545
|
+
examples: {
|
|
8546
|
+
error: {
|
|
8547
|
+
summary: "Error response",
|
|
8548
|
+
value: {
|
|
8549
|
+
timestamp: "2025-08-14T10:37:21.871Z",
|
|
8550
|
+
status: 408,
|
|
8551
|
+
error: "Request Timeout",
|
|
8552
|
+
message: "Unable to fetch whois data. Please try again. [For Technical Support email at: support@apifreaks.com]",
|
|
8553
|
+
path: "/v1.0/domain/availability"
|
|
8554
|
+
}
|
|
8555
|
+
}
|
|
8556
|
+
}
|
|
8557
|
+
}
|
|
8558
|
+
},
|
|
8559
|
+
headers: {
|
|
8560
|
+
"X-AF-Credits-Cost": {
|
|
8561
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
8562
|
+
}
|
|
8563
|
+
}
|
|
8564
|
+
}
|
|
8565
|
+
},
|
|
8566
|
+
operationId: "checkDomainAvailability"
|
|
8567
|
+
}
|
|
8568
|
+
}
|
|
8569
|
+
},
|
|
8570
|
+
components: {
|
|
8571
|
+
securitySchemes: {
|
|
8572
|
+
ApiKeyAuthHeader: {
|
|
8573
|
+
type: "apiKey",
|
|
8574
|
+
in: "header",
|
|
8575
|
+
name: "X-apiKey",
|
|
8576
|
+
description: "Pass your API key via the X-apiKey request header."
|
|
8577
|
+
},
|
|
8578
|
+
ApiKeyAuthQuery: {
|
|
8579
|
+
type: "apiKey",
|
|
8580
|
+
in: "query",
|
|
8581
|
+
name: "apiKey",
|
|
8582
|
+
description: "Pass your API key via the apiKey query parameter."
|
|
8583
|
+
}
|
|
8584
|
+
},
|
|
8585
|
+
schemas: {
|
|
8586
|
+
DomainAvailabilityResponse: {
|
|
8587
|
+
type: "object",
|
|
7212
8588
|
required: ["domain", "domainAvailability"],
|
|
7213
8589
|
properties: {
|
|
7214
8590
|
domain: {
|
|
7215
8591
|
type: "string",
|
|
7216
|
-
description: "Name of the queried domain
|
|
8592
|
+
description: "Name of the queried domain"
|
|
7217
8593
|
},
|
|
7218
8594
|
domainAvailability: {
|
|
7219
8595
|
type: "boolean",
|
|
7220
|
-
description: "True if available, false if not available
|
|
7221
|
-
}
|
|
7222
|
-
}
|
|
7223
|
-
},
|
|
7224
|
-
DomainSuggestionResponse: {
|
|
7225
|
-
type: "object",
|
|
7226
|
-
required: ["domain_available_response"],
|
|
7227
|
-
properties: {
|
|
7228
|
-
domain_available_response: {
|
|
7229
|
-
type: "array",
|
|
7230
|
-
description: "List of domain availability objects.",
|
|
7231
|
-
items: {
|
|
7232
|
-
$ref: "#/components/schemas/DomainSuggestionItem"
|
|
7233
|
-
}
|
|
8596
|
+
description: "True if available, false if not available"
|
|
7234
8597
|
}
|
|
7235
8598
|
},
|
|
7236
|
-
description: "Domain
|
|
7237
|
-
},
|
|
7238
|
-
DomainSuggestionItem: {
|
|
7239
|
-
type: "object",
|
|
7240
|
-
description: "A single domain suggestion with availability status.",
|
|
7241
|
-
required: ["domain", "domainAvailability"],
|
|
7242
|
-
properties: {
|
|
7243
|
-
domain: {
|
|
7244
|
-
type: "string",
|
|
7245
|
-
description: "Name of the suggested domain."
|
|
7246
|
-
},
|
|
7247
|
-
domainAvailability: {
|
|
7248
|
-
type: "boolean",
|
|
7249
|
-
description: "True if available, false if not available."
|
|
7250
|
-
}
|
|
7251
|
-
}
|
|
8599
|
+
description: "Domain availability check response containing the domain name and availability status."
|
|
7252
8600
|
},
|
|
7253
8601
|
ErrorResponse: {
|
|
7254
8602
|
type: "object",
|
|
@@ -7298,13 +8646,13 @@ var domain_search_with_suggestions_default = {
|
|
|
7298
8646
|
]
|
|
7299
8647
|
};
|
|
7300
8648
|
|
|
7301
|
-
// specs/domain/domain-
|
|
7302
|
-
var
|
|
8649
|
+
// specs/domain/domain-typosquatting.json
|
|
8650
|
+
var domain_typosquatting_default = {
|
|
7303
8651
|
openapi: "3.1.1",
|
|
7304
8652
|
info: {
|
|
7305
|
-
title: "Domain
|
|
8653
|
+
title: "Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery",
|
|
7306
8654
|
version: "1.0.0",
|
|
7307
|
-
description: "
|
|
8655
|
+
description: "Search for registered domains that read like typo variants of a brand keyword, or that match a wildcard pattern, across the full TLD set. Each match returns what is available of its registration date, expiry date, last-seen date, and drop status, paginated at 100 domains per page. Built for brand and trademark protection, phishing discovery, scheduled monitoring, and domain reclaim.",
|
|
7308
8656
|
contact: {
|
|
7309
8657
|
name: "APIFreaks Support",
|
|
7310
8658
|
url: "https://apifreaks.com/contact",
|
|
@@ -7314,15 +8662,15 @@ var domain_search_default = {
|
|
|
7314
8662
|
servers: [
|
|
7315
8663
|
{
|
|
7316
8664
|
url: "https://api.apifreaks.com/v1.0",
|
|
7317
|
-
description: "Domain
|
|
8665
|
+
description: "Domain Typosquatting API Server"
|
|
7318
8666
|
}
|
|
7319
8667
|
],
|
|
7320
8668
|
paths: {
|
|
7321
|
-
"/domain/
|
|
8669
|
+
"/domain/typosquatting": {
|
|
7322
8670
|
get: {
|
|
7323
8671
|
tags: ["Domain APIs"],
|
|
7324
|
-
summary: "
|
|
7325
|
-
description: "The Domain
|
|
8672
|
+
summary: "Find registered typo-variant or wildcard-pattern domains for a brand keyword.",
|
|
8673
|
+
description: "The Domain Typosquatting API searches for registered domains that are typo or look-alike variants of a brand keyword, or that match a wildcard pattern. Results include registration lifecycle data and drop status across 1529+ TLDs, paginated at 100 domains per page.",
|
|
7326
8674
|
parameters: [
|
|
7327
8675
|
{
|
|
7328
8676
|
name: "format",
|
|
@@ -7336,24 +8684,35 @@ var domain_search_default = {
|
|
|
7336
8684
|
description: "Format of the response."
|
|
7337
8685
|
},
|
|
7338
8686
|
{
|
|
7339
|
-
name: "
|
|
8687
|
+
name: "keyword",
|
|
7340
8688
|
in: "query",
|
|
7341
|
-
required:
|
|
8689
|
+
required: false,
|
|
7342
8690
|
schema: {
|
|
7343
|
-
type: "string"
|
|
8691
|
+
type: "string",
|
|
8692
|
+
minLength: 3,
|
|
8693
|
+
maxLength: 63
|
|
7344
8694
|
},
|
|
7345
|
-
description: "
|
|
8695
|
+
description: "Brand or label to find typo variants for. 3-63 characters, letters, digits, or hyphens, a single label with no dots. Case-insensitive. Use either keyword or pattern, never both."
|
|
7346
8696
|
},
|
|
7347
8697
|
{
|
|
7348
|
-
name: "
|
|
8698
|
+
name: "pattern",
|
|
7349
8699
|
in: "query",
|
|
7350
8700
|
required: false,
|
|
7351
8701
|
schema: {
|
|
7352
8702
|
type: "string",
|
|
7353
|
-
|
|
7354
|
-
|
|
8703
|
+
minLength: 3,
|
|
8704
|
+
maxLength: 63
|
|
7355
8705
|
},
|
|
7356
|
-
description:
|
|
8706
|
+
description: "Wildcard search string that combines fuzzy matching with * wildcards. 3-63 characters total, * is the only supported wildcard and each one matches zero or more characters, maximum 3 asterisks per request. Use either keyword or pattern, never both."
|
|
8707
|
+
},
|
|
8708
|
+
{
|
|
8709
|
+
name: "pageToken",
|
|
8710
|
+
in: "query",
|
|
8711
|
+
required: false,
|
|
8712
|
+
schema: {
|
|
8713
|
+
type: "string"
|
|
8714
|
+
},
|
|
8715
|
+
description: "Token from nextPageToken in the previous response. Required to retrieve page 2 and onward. The original keyword or pattern must be passed alongside the token on every page request. Results page at 100 domains per page."
|
|
7357
8716
|
}
|
|
7358
8717
|
],
|
|
7359
8718
|
responses: {
|
|
@@ -7362,14 +8721,85 @@ var domain_search_default = {
|
|
|
7362
8721
|
content: {
|
|
7363
8722
|
"application/json": {
|
|
7364
8723
|
schema: {
|
|
7365
|
-
$ref: "#/components/schemas/
|
|
8724
|
+
$ref: "#/components/schemas/DomainTyposquattingResponse"
|
|
7366
8725
|
},
|
|
7367
8726
|
examples: {
|
|
7368
|
-
|
|
7369
|
-
summary: "
|
|
8727
|
+
keywordSuccess: {
|
|
8728
|
+
summary: "Keyword search (paypal)",
|
|
7370
8729
|
value: {
|
|
7371
|
-
|
|
7372
|
-
|
|
8730
|
+
status: true,
|
|
8731
|
+
totalRecords: 1284,
|
|
8732
|
+
currentPage: 1,
|
|
8733
|
+
hasNextPage: true,
|
|
8734
|
+
totalPages: 13,
|
|
8735
|
+
nextPageToken: "<opaque_token>",
|
|
8736
|
+
domains: [
|
|
8737
|
+
{
|
|
8738
|
+
domainName: "p-aypal.com",
|
|
8739
|
+
createDate: "2025-04-17",
|
|
8740
|
+
expiryDate: "2026-04-17",
|
|
8741
|
+
lastSeen: "2026-05-29",
|
|
8742
|
+
isDropped: true
|
|
8743
|
+
},
|
|
8744
|
+
{
|
|
8745
|
+
domainName: "p-aypal.de",
|
|
8746
|
+
lastSeen: "2024-07-11",
|
|
8747
|
+
isDropped: true
|
|
8748
|
+
},
|
|
8749
|
+
{
|
|
8750
|
+
domainName: "p0aypal.com",
|
|
8751
|
+
createDate: "2017-12-29",
|
|
8752
|
+
expiryDate: "2026-12-29",
|
|
8753
|
+
lastSeen: "2026-08-18",
|
|
8754
|
+
isDropped: false
|
|
8755
|
+
},
|
|
8756
|
+
{
|
|
8757
|
+
domainName: "p7ypal.com",
|
|
8758
|
+
isDropped: true
|
|
8759
|
+
},
|
|
8760
|
+
{
|
|
8761
|
+
domainName: "pa-pal.club",
|
|
8762
|
+
createDate: "2019-10-25",
|
|
8763
|
+
expiryDate: "2020-10-25",
|
|
8764
|
+
isDropped: false
|
|
8765
|
+
}
|
|
8766
|
+
]
|
|
8767
|
+
}
|
|
8768
|
+
},
|
|
8769
|
+
patternSuccess: {
|
|
8770
|
+
summary: "Wildcard pattern search (*paypal*)",
|
|
8771
|
+
value: {
|
|
8772
|
+
status: true,
|
|
8773
|
+
totalRecords: 5471,
|
|
8774
|
+
currentPage: 1,
|
|
8775
|
+
hasNextPage: true,
|
|
8776
|
+
totalPages: 55,
|
|
8777
|
+
nextPageToken: "<opaque_token>",
|
|
8778
|
+
domains: [
|
|
8779
|
+
{
|
|
8780
|
+
domainName: "paypal-support.com",
|
|
8781
|
+
createDate: "2024-11-02",
|
|
8782
|
+
expiryDate: "2026-11-02",
|
|
8783
|
+
lastSeen: "2026-08-30",
|
|
8784
|
+
isDropped: false
|
|
8785
|
+
},
|
|
8786
|
+
{
|
|
8787
|
+
domainName: "login-paypal.net",
|
|
8788
|
+
lastSeen: "2025-12-14",
|
|
8789
|
+
isDropped: true
|
|
8790
|
+
}
|
|
8791
|
+
]
|
|
8792
|
+
}
|
|
8793
|
+
},
|
|
8794
|
+
emptyResult: {
|
|
8795
|
+
summary: "No matches found",
|
|
8796
|
+
value: {
|
|
8797
|
+
status: true,
|
|
8798
|
+
totalRecords: 0,
|
|
8799
|
+
currentPage: 1,
|
|
8800
|
+
hasNextPage: false,
|
|
8801
|
+
totalPages: 0,
|
|
8802
|
+
domains: []
|
|
7373
8803
|
}
|
|
7374
8804
|
}
|
|
7375
8805
|
}
|
|
@@ -7382,58 +8812,41 @@ var domain_search_default = {
|
|
|
7382
8812
|
}
|
|
7383
8813
|
},
|
|
7384
8814
|
"400": {
|
|
7385
|
-
description: "Bad Request \u2013
|
|
8815
|
+
description: "Bad Request \u2013 Invalid parameters",
|
|
7386
8816
|
content: {
|
|
7387
8817
|
"application/json": {
|
|
7388
8818
|
schema: {
|
|
7389
8819
|
$ref: "#/components/schemas/ErrorResponse"
|
|
7390
8820
|
},
|
|
7391
8821
|
examples: {
|
|
7392
|
-
|
|
7393
|
-
summary: "
|
|
8822
|
+
shortPattern: {
|
|
8823
|
+
summary: "Pattern has too few non-wildcard characters",
|
|
7394
8824
|
value: {
|
|
7395
|
-
error: "Invalid
|
|
7396
|
-
message: "
|
|
7397
|
-
path: "/v1.0/domain/
|
|
8825
|
+
error: "Invalid Pattern Exception",
|
|
8826
|
+
message: "The pattern must contain at least 5 non-wildcard characters and no more than 3 wildcards.",
|
|
8827
|
+
path: "/v1.0/domain/typosquatting",
|
|
7398
8828
|
status: 400,
|
|
7399
|
-
timestamp: "2026-
|
|
8829
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7400
8830
|
}
|
|
7401
8831
|
},
|
|
7402
|
-
|
|
7403
|
-
summary: "
|
|
8832
|
+
bothParams: {
|
|
8833
|
+
summary: "Both keyword and pattern supplied",
|
|
7404
8834
|
value: {
|
|
7405
|
-
timestamp: "2026-07-27T12:18:47.346748812Z",
|
|
7406
|
-
status: 400,
|
|
7407
8835
|
error: "Invalid Param Exception",
|
|
7408
|
-
message:
|
|
7409
|
-
path: "/v1.0/domain/
|
|
8836
|
+
message: 'Use either the "keyword" or the "pattern" parameter, never both.',
|
|
8837
|
+
path: "/v1.0/domain/typosquatting",
|
|
8838
|
+
status: 400,
|
|
8839
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7410
8840
|
}
|
|
7411
|
-
}
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
},
|
|
7415
|
-
headers: {
|
|
7416
|
-
"X-AF-Credits-Cost": {
|
|
7417
|
-
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7418
|
-
}
|
|
7419
|
-
}
|
|
7420
|
-
},
|
|
7421
|
-
"408": {
|
|
7422
|
-
description: "Request Timeout \u2013 Unable to fetch WHOIS data",
|
|
7423
|
-
content: {
|
|
7424
|
-
"application/json": {
|
|
7425
|
-
schema: {
|
|
7426
|
-
$ref: "#/components/schemas/ErrorResponse"
|
|
7427
|
-
},
|
|
7428
|
-
examples: {
|
|
7429
|
-
error: {
|
|
7430
|
-
summary: "Error response",
|
|
8841
|
+
},
|
|
8842
|
+
missingParam: {
|
|
8843
|
+
summary: "Neither keyword nor pattern supplied",
|
|
7431
8844
|
value: {
|
|
7432
|
-
|
|
7433
|
-
|
|
7434
|
-
|
|
7435
|
-
|
|
7436
|
-
|
|
8845
|
+
error: "Invalid Param Exception",
|
|
8846
|
+
message: 'Please provide either a "keyword" or a "pattern" parameter.',
|
|
8847
|
+
path: "/v1.0/domain/typosquatting",
|
|
8848
|
+
status: 400,
|
|
8849
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7437
8850
|
}
|
|
7438
8851
|
}
|
|
7439
8852
|
}
|
|
@@ -7446,7 +8859,7 @@ var domain_search_default = {
|
|
|
7446
8859
|
}
|
|
7447
8860
|
}
|
|
7448
8861
|
},
|
|
7449
|
-
operationId: "
|
|
8862
|
+
operationId: "getDomainTyposquatting"
|
|
7450
8863
|
}
|
|
7451
8864
|
}
|
|
7452
8865
|
},
|
|
@@ -7466,20 +8879,70 @@ var domain_search_default = {
|
|
|
7466
8879
|
}
|
|
7467
8880
|
},
|
|
7468
8881
|
schemas: {
|
|
7469
|
-
|
|
8882
|
+
DomainTyposquattingResponse: {
|
|
7470
8883
|
type: "object",
|
|
7471
|
-
required: ["
|
|
8884
|
+
required: ["status", "totalRecords", "currentPage", "hasNextPage", "totalPages", "domains"],
|
|
7472
8885
|
properties: {
|
|
7473
|
-
|
|
8886
|
+
status: {
|
|
8887
|
+
type: "boolean",
|
|
8888
|
+
description: "Indicates if the request was successful."
|
|
8889
|
+
},
|
|
8890
|
+
totalRecords: {
|
|
8891
|
+
type: "integer",
|
|
8892
|
+
description: "Total number of domains found."
|
|
8893
|
+
},
|
|
8894
|
+
currentPage: {
|
|
8895
|
+
type: "integer",
|
|
8896
|
+
description: "Page number of the current response. Starts at 1."
|
|
8897
|
+
},
|
|
8898
|
+
hasNextPage: {
|
|
8899
|
+
type: "boolean",
|
|
8900
|
+
description: "true if at least one additional page is available."
|
|
8901
|
+
},
|
|
8902
|
+
totalPages: {
|
|
8903
|
+
type: "integer",
|
|
8904
|
+
description: "Total number of pages available."
|
|
8905
|
+
},
|
|
8906
|
+
nextPageToken: {
|
|
7474
8907
|
type: "string",
|
|
7475
|
-
description: "
|
|
8908
|
+
description: "Opaque token to pass as pageToken on the next request. Present only when hasNextPage is true."
|
|
7476
8909
|
},
|
|
7477
|
-
|
|
8910
|
+
domains: {
|
|
8911
|
+
type: "array",
|
|
8912
|
+
items: {
|
|
8913
|
+
$ref: "#/components/schemas/DomainItem"
|
|
8914
|
+
},
|
|
8915
|
+
description: "List of typo-variant or pattern-matched domains on the current page."
|
|
8916
|
+
}
|
|
8917
|
+
},
|
|
8918
|
+
description: "Paginated response containing typo-variant or pattern-matched domains."
|
|
8919
|
+
},
|
|
8920
|
+
DomainItem: {
|
|
8921
|
+
type: "object",
|
|
8922
|
+
required: ["domainName", "isDropped"],
|
|
8923
|
+
properties: {
|
|
8924
|
+
domainName: {
|
|
8925
|
+
type: "string",
|
|
8926
|
+
description: "Domain name."
|
|
8927
|
+
},
|
|
8928
|
+
createDate: {
|
|
8929
|
+
type: "string",
|
|
8930
|
+
description: "Domain creation date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries."
|
|
8931
|
+
},
|
|
8932
|
+
expiryDate: {
|
|
8933
|
+
type: "string",
|
|
8934
|
+
description: "Domain expiration date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries."
|
|
8935
|
+
},
|
|
8936
|
+
lastSeen: {
|
|
8937
|
+
type: "string",
|
|
8938
|
+
description: "Last time the domain was observed (YYYY-MM-DD). One of the two fields reliably meaningful across a full result set."
|
|
8939
|
+
},
|
|
8940
|
+
isDropped: {
|
|
7478
8941
|
type: "boolean",
|
|
7479
|
-
description: "
|
|
8942
|
+
description: "Indicates whether the domain has dropped out of the registry and become available to register again."
|
|
7480
8943
|
}
|
|
7481
8944
|
},
|
|
7482
|
-
description: "
|
|
8945
|
+
description: "A single typo-variant or pattern-matched domain with registration lifecycle data."
|
|
7483
8946
|
},
|
|
7484
8947
|
ErrorResponse: {
|
|
7485
8948
|
type: "object",
|
|
@@ -7903,7 +9366,7 @@ var bulk_email_validation_default = {
|
|
|
7903
9366
|
info: {
|
|
7904
9367
|
title: "Bulk Email Validation API - Validate and Verify Emails in Bulk",
|
|
7905
9368
|
version: "1.0.0",
|
|
7906
|
-
description: "Validate up to 10 email addresses in a single POST request. Each email is processed independently. Returns an array of validation results with deliverability assessment per email, plus per-item error objects for failed validations. Maximum 10 email addresses per request.",
|
|
9369
|
+
description: "Validate up to 10 email addresses in a single POST request. Each email is processed independently. Returns an array of validation results with deliverability assessment per email (valid/accept_all/invalid/unknown/risky/app_server_blocked), plus per-item error objects for failed validations. Maximum 10 email addresses per request.",
|
|
7907
9370
|
contact: {
|
|
7908
9371
|
name: "APIFreaks Support",
|
|
7909
9372
|
url: "https://apifreaks.com/contact",
|
|
@@ -7955,7 +9418,7 @@ var bulk_email_validation_default = {
|
|
|
7955
9418
|
},
|
|
7956
9419
|
examples: {
|
|
7957
9420
|
bulkEmailsValidated: {
|
|
7958
|
-
summary: "Mix of
|
|
9421
|
+
summary: "Mix of valid, syntactically invalid, accept_all, null-MX invalid, and unknown (no-MX probe) results",
|
|
7959
9422
|
value: {
|
|
7960
9423
|
emailResponse: [
|
|
7961
9424
|
{
|
|
@@ -7994,6 +9457,74 @@ var bulk_email_validation_default = {
|
|
|
7994
9457
|
name: "not-an-email",
|
|
7995
9458
|
validDomain: false
|
|
7996
9459
|
}
|
|
9460
|
+
},
|
|
9461
|
+
{
|
|
9462
|
+
success: true,
|
|
9463
|
+
email: "random12345@yahoo.com",
|
|
9464
|
+
validEmail: "accept_all",
|
|
9465
|
+
validSyntax: true,
|
|
9466
|
+
reason: "domain accepts all addresses.",
|
|
9467
|
+
domain: {
|
|
9468
|
+
name: "yahoo.com",
|
|
9469
|
+
disposable: false,
|
|
9470
|
+
spam: false,
|
|
9471
|
+
free: true,
|
|
9472
|
+
validDomain: true,
|
|
9473
|
+
catchAll: true
|
|
9474
|
+
},
|
|
9475
|
+
account: {
|
|
9476
|
+
role: false,
|
|
9477
|
+
fullMailBox: false
|
|
9478
|
+
},
|
|
9479
|
+
dns: {
|
|
9480
|
+
mxRecord: [
|
|
9481
|
+
"mta5.am0.yahoodns.net.",
|
|
9482
|
+
"mta6.am0.yahoodns.net.",
|
|
9483
|
+
"mta7.am0.yahoodns.net."
|
|
9484
|
+
]
|
|
9485
|
+
}
|
|
9486
|
+
},
|
|
9487
|
+
{
|
|
9488
|
+
success: true,
|
|
9489
|
+
email: "test@example.com",
|
|
9490
|
+
validEmail: "invalid",
|
|
9491
|
+
validSyntax: true,
|
|
9492
|
+
reason: "domain does not accept mail.",
|
|
9493
|
+
domain: {
|
|
9494
|
+
name: "example.com",
|
|
9495
|
+
disposable: true,
|
|
9496
|
+
spam: false,
|
|
9497
|
+
free: false,
|
|
9498
|
+
validDomain: true,
|
|
9499
|
+
catchAll: false
|
|
9500
|
+
},
|
|
9501
|
+
account: {
|
|
9502
|
+
role: false
|
|
9503
|
+
},
|
|
9504
|
+
dns: {
|
|
9505
|
+
mxRecord: ["."]
|
|
9506
|
+
}
|
|
9507
|
+
},
|
|
9508
|
+
{
|
|
9509
|
+
success: true,
|
|
9510
|
+
email: "test@neverssl.com",
|
|
9511
|
+
validEmail: "unknown",
|
|
9512
|
+
validSyntax: true,
|
|
9513
|
+
reason: "We are unable to determine if email is valid or invalid.",
|
|
9514
|
+
domain: {
|
|
9515
|
+
name: "neverssl.com",
|
|
9516
|
+
disposable: false,
|
|
9517
|
+
spam: false,
|
|
9518
|
+
free: false,
|
|
9519
|
+
validDomain: true,
|
|
9520
|
+
catchAll: false
|
|
9521
|
+
},
|
|
9522
|
+
account: {
|
|
9523
|
+
role: false
|
|
9524
|
+
},
|
|
9525
|
+
dns: {
|
|
9526
|
+
aRecord: ["34.223.124.45"]
|
|
9527
|
+
}
|
|
7997
9528
|
}
|
|
7998
9529
|
]
|
|
7999
9530
|
}
|
|
@@ -8198,19 +9729,20 @@ var bulk_email_validation_default = {
|
|
|
8198
9729
|
},
|
|
8199
9730
|
reason: {
|
|
8200
9731
|
type: "string",
|
|
8201
|
-
description: "Detailed explanation returned when validEmail is not valid."
|
|
9732
|
+
description: "Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid."
|
|
8202
9733
|
},
|
|
8203
9734
|
validEmail: {
|
|
8204
9735
|
type: "string",
|
|
8205
9736
|
enum: [
|
|
8206
9737
|
"valid",
|
|
9738
|
+
"accept_all",
|
|
8207
9739
|
"invalid",
|
|
8208
9740
|
"INVALID_EMAIL",
|
|
8209
9741
|
"unknown",
|
|
8210
9742
|
"risky",
|
|
8211
9743
|
"app_server_blocked"
|
|
8212
9744
|
],
|
|
8213
|
-
description: "Comprehensive deliverability assessment.
|
|
9745
|
+
description: "Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed \u2014 see domain.catchAll, reason 'domain accepts all addresses.'. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid \u2014 this is a known API bug, handle it defensively as equivalent to invalid."
|
|
8214
9746
|
},
|
|
8215
9747
|
validSyntax: {
|
|
8216
9748
|
type: "boolean",
|
|
@@ -8262,7 +9794,7 @@ var bulk_email_validation_default = {
|
|
|
8262
9794
|
},
|
|
8263
9795
|
catchAll: {
|
|
8264
9796
|
type: "boolean",
|
|
8265
|
-
description: "Detection flag for domains configured to accept mail for any recipient address."
|
|
9797
|
+
description: "Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all."
|
|
8266
9798
|
}
|
|
8267
9799
|
},
|
|
8268
9800
|
description: "Domain validation details for the email address."
|
|
@@ -8284,24 +9816,24 @@ var bulk_email_validation_default = {
|
|
|
8284
9816
|
},
|
|
8285
9817
|
DnsObject: {
|
|
8286
9818
|
type: "object",
|
|
8287
|
-
required: [
|
|
9819
|
+
required: [],
|
|
8288
9820
|
properties: {
|
|
8289
9821
|
mxRecord: {
|
|
8290
9822
|
type: "array",
|
|
8291
9823
|
items: {
|
|
8292
9824
|
type: "string"
|
|
8293
9825
|
},
|
|
8294
|
-
description:
|
|
9826
|
+
description: `Every MX hostname at the domain's lowest preference (not just one). ["."] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind \u2014 check aRecord in that case.`
|
|
8295
9827
|
},
|
|
8296
9828
|
aRecord: {
|
|
8297
9829
|
type: "array",
|
|
8298
9830
|
items: {
|
|
8299
9831
|
type: "string"
|
|
8300
9832
|
},
|
|
8301
|
-
description: "Collection of A (Address) records for the domain.
|
|
9833
|
+
description: "Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host."
|
|
8302
9834
|
}
|
|
8303
9835
|
},
|
|
8304
|
-
description: "DNS records for the email domain."
|
|
9836
|
+
description: "DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record."
|
|
8305
9837
|
},
|
|
8306
9838
|
AddressObject: {
|
|
8307
9839
|
type: "object",
|
|
@@ -8544,7 +10076,7 @@ var email_checker_default = {
|
|
|
8544
10076
|
info: {
|
|
8545
10077
|
title: "Email Checker API - Real-Time Validation, Deliverability & Risk Signals",
|
|
8546
10078
|
version: "1.0.0",
|
|
8547
|
-
description: "Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/invalid/unknown/risky/app_server_blocked status.",
|
|
10079
|
+
description: "Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/accept_all/invalid/unknown/risky/app_server_blocked status.",
|
|
8548
10080
|
contact: {
|
|
8549
10081
|
name: "APIFreaks Support",
|
|
8550
10082
|
url: "https://apifreaks.com/contact",
|
|
@@ -8637,8 +10169,8 @@ var email_checker_default = {
|
|
|
8637
10169
|
}
|
|
8638
10170
|
}
|
|
8639
10171
|
},
|
|
8640
|
-
|
|
8641
|
-
summary: "Valid syntax, domain
|
|
10172
|
+
nonexistentDomain: {
|
|
10173
|
+
summary: "Valid syntax, domain does not exist (NXDOMAIN)",
|
|
8642
10174
|
value: {
|
|
8643
10175
|
success: true,
|
|
8644
10176
|
email: "test@nonexistentdomainxyz123abc.com",
|
|
@@ -8658,6 +10190,83 @@ var email_checker_default = {
|
|
|
8658
10190
|
}
|
|
8659
10191
|
}
|
|
8660
10192
|
},
|
|
10193
|
+
acceptAll: {
|
|
10194
|
+
summary: "Catch-all domain accepted the recipient \u2014 mailbox unconfirmed",
|
|
10195
|
+
value: {
|
|
10196
|
+
success: true,
|
|
10197
|
+
email: "random12345@yahoo.com",
|
|
10198
|
+
validEmail: "accept_all",
|
|
10199
|
+
validSyntax: true,
|
|
10200
|
+
reason: "domain accepts all addresses.",
|
|
10201
|
+
domain: {
|
|
10202
|
+
name: "yahoo.com",
|
|
10203
|
+
disposable: false,
|
|
10204
|
+
spam: false,
|
|
10205
|
+
free: true,
|
|
10206
|
+
validDomain: true,
|
|
10207
|
+
catchAll: true
|
|
10208
|
+
},
|
|
10209
|
+
account: {
|
|
10210
|
+
role: false,
|
|
10211
|
+
fullMailBox: false
|
|
10212
|
+
},
|
|
10213
|
+
dns: {
|
|
10214
|
+
mxRecord: [
|
|
10215
|
+
"mta5.am0.yahoodns.net.",
|
|
10216
|
+
"mta6.am0.yahoodns.net.",
|
|
10217
|
+
"mta7.am0.yahoodns.net."
|
|
10218
|
+
]
|
|
10219
|
+
}
|
|
10220
|
+
}
|
|
10221
|
+
},
|
|
10222
|
+
nullMxDomain: {
|
|
10223
|
+
summary: 'Domain publishes a null MX (single ".") \u2014 accepts no mail at all',
|
|
10224
|
+
value: {
|
|
10225
|
+
success: true,
|
|
10226
|
+
email: "test@example.com",
|
|
10227
|
+
validEmail: "invalid",
|
|
10228
|
+
validSyntax: true,
|
|
10229
|
+
reason: "domain does not accept mail.",
|
|
10230
|
+
domain: {
|
|
10231
|
+
name: "example.com",
|
|
10232
|
+
disposable: true,
|
|
10233
|
+
spam: false,
|
|
10234
|
+
free: false,
|
|
10235
|
+
validDomain: true,
|
|
10236
|
+
catchAll: false
|
|
10237
|
+
},
|
|
10238
|
+
account: {
|
|
10239
|
+
role: false
|
|
10240
|
+
},
|
|
10241
|
+
dns: {
|
|
10242
|
+
mxRecord: ["."]
|
|
10243
|
+
}
|
|
10244
|
+
}
|
|
10245
|
+
},
|
|
10246
|
+
noMxAddressOnly: {
|
|
10247
|
+
summary: "Domain has no MX record but a working A record \u2014 gets a real SMTP probe",
|
|
10248
|
+
value: {
|
|
10249
|
+
success: true,
|
|
10250
|
+
email: "test@neverssl.com",
|
|
10251
|
+
validEmail: "unknown",
|
|
10252
|
+
validSyntax: true,
|
|
10253
|
+
reason: "We are unable to determine if email is valid or invalid.",
|
|
10254
|
+
domain: {
|
|
10255
|
+
name: "neverssl.com",
|
|
10256
|
+
disposable: false,
|
|
10257
|
+
spam: false,
|
|
10258
|
+
free: false,
|
|
10259
|
+
validDomain: true,
|
|
10260
|
+
catchAll: false
|
|
10261
|
+
},
|
|
10262
|
+
account: {
|
|
10263
|
+
role: false
|
|
10264
|
+
},
|
|
10265
|
+
dns: {
|
|
10266
|
+
aRecord: ["34.223.124.45"]
|
|
10267
|
+
}
|
|
10268
|
+
}
|
|
10269
|
+
},
|
|
8661
10270
|
withIp: {
|
|
8662
10271
|
summary: "With ip \u2014 adds geolocation/security enrichment under address",
|
|
8663
10272
|
value: {
|
|
@@ -8928,12 +10537,12 @@ var email_checker_default = {
|
|
|
8928
10537
|
},
|
|
8929
10538
|
reason: {
|
|
8930
10539
|
type: "string",
|
|
8931
|
-
description: "Detailed explanation returned when validEmail is not valid."
|
|
10540
|
+
description: "Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid."
|
|
8932
10541
|
},
|
|
8933
10542
|
validEmail: {
|
|
8934
10543
|
type: "string",
|
|
8935
|
-
enum: ["valid", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
|
|
8936
|
-
description: "Comprehensive deliverability assessment.
|
|
10544
|
+
enum: ["valid", "accept_all", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
|
|
10545
|
+
description: "Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed \u2014 see domain.catchAll, reason 'domain accepts all addresses.'. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid \u2014 this is a known API bug, handle it defensively as equivalent to invalid."
|
|
8937
10546
|
},
|
|
8938
10547
|
validSyntax: {
|
|
8939
10548
|
type: "boolean",
|
|
@@ -8985,7 +10594,7 @@ var email_checker_default = {
|
|
|
8985
10594
|
},
|
|
8986
10595
|
catchAll: {
|
|
8987
10596
|
type: "boolean",
|
|
8988
|
-
description: "Detection flag for domains configured to accept mail for any recipient address."
|
|
10597
|
+
description: "Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all."
|
|
8989
10598
|
}
|
|
8990
10599
|
},
|
|
8991
10600
|
description: "Domain validation details for the email address."
|
|
@@ -9007,24 +10616,24 @@ var email_checker_default = {
|
|
|
9007
10616
|
},
|
|
9008
10617
|
DnsObject: {
|
|
9009
10618
|
type: "object",
|
|
9010
|
-
required: [
|
|
10619
|
+
required: [],
|
|
9011
10620
|
properties: {
|
|
9012
10621
|
mxRecord: {
|
|
9013
10622
|
type: "array",
|
|
9014
10623
|
items: {
|
|
9015
10624
|
type: "string"
|
|
9016
10625
|
},
|
|
9017
|
-
description:
|
|
10626
|
+
description: `Every MX hostname at the domain's lowest preference (not just one). ["."] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind \u2014 check aRecord in that case.`
|
|
9018
10627
|
},
|
|
9019
10628
|
aRecord: {
|
|
9020
10629
|
type: "array",
|
|
9021
10630
|
items: {
|
|
9022
10631
|
type: "string"
|
|
9023
10632
|
},
|
|
9024
|
-
description: "Collection of A (Address) records for the domain.
|
|
10633
|
+
description: "Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host."
|
|
9025
10634
|
}
|
|
9026
10635
|
},
|
|
9027
|
-
description: "DNS records for the email domain."
|
|
10636
|
+
description: "DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record."
|
|
9028
10637
|
},
|
|
9029
10638
|
AddressObject: {
|
|
9030
10639
|
type: "object",
|
|
@@ -47816,8 +49425,10 @@ var SPECS = {
|
|
|
47816
49425
|
"dns-lookup": dns_lookup_default,
|
|
47817
49426
|
"reverse-dns-lookup": reverse_dns_lookup_default,
|
|
47818
49427
|
"bulk-domain-checker": bulk_domain_checker_default,
|
|
49428
|
+
"domain-reputation": domain_reputation_default,
|
|
47819
49429
|
"domain-search-with-suggestions": domain_search_with_suggestions_default,
|
|
47820
49430
|
"domain-search": domain_search_default,
|
|
49431
|
+
"domain-typosquatting": domain_typosquatting_default,
|
|
47821
49432
|
"subdomain-lookup": subdomain_lookup_default,
|
|
47822
49433
|
"bulk-email-validation": bulk_email_validation_default,
|
|
47823
49434
|
"email-checker": email_checker_default,
|
|
@@ -47900,7 +49511,7 @@ var SPECS = {
|
|
|
47900
49511
|
"zip-codes-by-region": zip_codes_by_region_default,
|
|
47901
49512
|
"zip-codes-radius-search": zip_codes_radius_search_default
|
|
47902
49513
|
};
|
|
47903
|
-
var SPEC_SLUGS = ["usage-credits", "commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices", "currency-converter", "currency-fluctuation", "currency-historical-data-limit", "currency-rate", "currency-supported", "currency-symbols", "currency-time-series", "geolocalized-currency-conversion", "historical-currency-converter", "historical-currency-rate", "bulk-dns-lookup", "dns-history-lookup", "dns-lookup", "reverse-dns-lookup", "bulk-domain-checker", "domain-search-with-suggestions", "domain-search", "subdomain-lookup", "bulk-email-validation", "email-checker", "bulk-vat-rates-country", "financial-apis-supported-countries", "iban-validation", "swift-code-finder", "swift-code-lookup", "vat-number-validation", "vat-rates-by-ip", "vat-rates-country", "forward-geocoding", "reverse-geocoding", "administrative-units-details", "administrative-units-levels", "administrative-units", "cities", "countries-details", "countries", "flags-supported", "flags", "regions", "subregions", "bulk-ip-lookup", "bulk-ip-threat-intelligence", "ip-locator", "ip-threat-intelligence", "delete-pdf-page", "linearize-pdf", "merge-pdf", "pdf-compress", "pdf-decrypt", "pdf-encrypt", "pdf-extract-pages", "pdf-file-status", "pdf-file", "pdf-files", "pdf-generator-bulk", "pdf-generator", "pdf-resource-download", "pdf-resource-upload-binary", "pdf-resource-upload", "pdf-restrict", "pdf-task-status", "pdf-to-image", "pdf-unrestrict", "rotate-pdf-pages", "split-pdf", "bulk-phone-number-validation", "phone-validation", "web-scraper", "bulk-screenshot", "website-screenshot", "ssl-certificate-chain-lookup", "ssl-certificate-lookup", "timezone-converter", "timezone-lookup", "bulk-user-agent-parser", "user-agent-parser", "air-quality", "astronomy-data", "bulk-live-weather", "flood-forecast", "historical-weather", "live-weather", "marine-weather", "time-series-weather", "weather-forecast", "asn-lookup", "bulk-whois-lookup", "domain-whois-history-lookup", "reverse-whois", "whois-domain-lookup", "whois-ip-lookup", "bulk-zip-code-lookup", "zip-code-api", "zip-code-distance-match", "zip-code-distance", "zip-codes-by-city", "zip-codes-by-region", "zip-codes-radius-search"];
|
|
49514
|
+
var SPEC_SLUGS = ["usage-credits", "commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices", "currency-converter", "currency-fluctuation", "currency-historical-data-limit", "currency-rate", "currency-supported", "currency-symbols", "currency-time-series", "geolocalized-currency-conversion", "historical-currency-converter", "historical-currency-rate", "bulk-dns-lookup", "dns-history-lookup", "dns-lookup", "reverse-dns-lookup", "bulk-domain-checker", "domain-reputation", "domain-search-with-suggestions", "domain-search", "domain-typosquatting", "subdomain-lookup", "bulk-email-validation", "email-checker", "bulk-vat-rates-country", "financial-apis-supported-countries", "iban-validation", "swift-code-finder", "swift-code-lookup", "vat-number-validation", "vat-rates-by-ip", "vat-rates-country", "forward-geocoding", "reverse-geocoding", "administrative-units-details", "administrative-units-levels", "administrative-units", "cities", "countries-details", "countries", "flags-supported", "flags", "regions", "subregions", "bulk-ip-lookup", "bulk-ip-threat-intelligence", "ip-locator", "ip-threat-intelligence", "delete-pdf-page", "linearize-pdf", "merge-pdf", "pdf-compress", "pdf-decrypt", "pdf-encrypt", "pdf-extract-pages", "pdf-file-status", "pdf-file", "pdf-files", "pdf-generator-bulk", "pdf-generator", "pdf-resource-download", "pdf-resource-upload-binary", "pdf-resource-upload", "pdf-restrict", "pdf-task-status", "pdf-to-image", "pdf-unrestrict", "rotate-pdf-pages", "split-pdf", "bulk-phone-number-validation", "phone-validation", "web-scraper", "bulk-screenshot", "website-screenshot", "ssl-certificate-chain-lookup", "ssl-certificate-lookup", "timezone-converter", "timezone-lookup", "bulk-user-agent-parser", "user-agent-parser", "air-quality", "astronomy-data", "bulk-live-weather", "flood-forecast", "historical-weather", "live-weather", "marine-weather", "time-series-weather", "weather-forecast", "asn-lookup", "bulk-whois-lookup", "domain-whois-history-lookup", "reverse-whois", "whois-domain-lookup", "whois-ip-lookup", "bulk-zip-code-lookup", "zip-code-api", "zip-code-distance-match", "zip-code-distance", "zip-codes-by-city", "zip-codes-by-region", "zip-codes-radius-search"];
|
|
47904
49515
|
var SPECS_YAML = {
|
|
47905
49516
|
"usage-credits": "openapi: 3.1.1\ninfo:\n title: Credits Usage API\n version: 1.0.0\n description: Retrieve the remaining and consumed API credit balances for the authenticated organization. Returns subscription-plan credits, subscription surcharge (overage) credits, and one-off credit purchases as separate balances, each with allowed and used counts. Only an organization admin API key can call this endpoint; all other keys receive a 403. There are no optional data modules for this endpoint \u2014 the response always includes the full credit breakdown.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Credits Usage API Server\npaths:\n /credits/usage/info:\n get:\n tags:\n - General APIs\n summary: Get remaining and consumed API credit balances for the organization\n description: Returns subscription, subscription-surcharge, and one-off credit balances for the authenticated organization's account.\n operationId: getCreditsUsage\n parameters:\n - name: format\n in: query\n required: false\n description: 'Format of the response. Possible values: json, xml.'\n schema:\n type: string\n enum:\n - json\n - xml\n default: json\n responses:\n '200':\n description: Successful response with credit balances\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/CreditsUsageResponse'\n examples:\n success:\n summary: Typical response\n value:\n apiKey: demo\n userStatus: active\n subActive: true\n subStatus: active\n subAllowedCredits: 10000\n subUsedCredits: 2500\n subSurchargeStatus: none\n subSurchargeAllowedCredits: 0\n subSurchargeUsedCredits: 0\n subSurchargeAllowed: false\n oneOffCreditsActive: true\n oneOffAllowedCredits: 5000\n oneOffUsedCredits: 1000\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '403':\n description: Forbidden \u2014 Caller is not an organization admin\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n notOrgAdmin:\n summary: Not an organization admin\n value:\n timestamp: '2026-07-27T10:23:16.548Z'\n path: /v1.0/credits/usage/info\n status: 403\n error: API Access Exception\n message: You need to be organization admin to access this endpoint.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n CreditsUsageResponse:\n type: object\n description: Credit balances for the organization's subscription, subscription surcharge, and one-off purchases.\n required:\n - apiKey\n - userStatus\n - oneOffCreditsActive\n - oneOffAllowedCredits\n - oneOffUsedCredits\n properties:\n apiKey:\n type: string\n description: The API key the credit balances belong to.\n userStatus:\n type: string\n enum:\n - active\n - inactive\n - deleted\n description: Status of the user account.\n subActive:\n type:\n - boolean\n - 'null'\n description: Whether a subscription plan is currently active. Null if the account has no subscription.\n subStatus:\n type:\n - string\n - 'null'\n enum:\n - active\n - overdue\n - cancelled\n - deactivated\n - null\n description: Status of the subscription credits. Null if the account has no subscription.\n subAllowedCredits:\n type:\n - integer\n - 'null'\n description: Total credits allowed under the subscription plan. Null if the account has no subscription.\n subUsedCredits:\n type:\n - integer\n - 'null'\n description: Credits consumed under the subscription plan. Null if the account has no subscription.\n subSurchargeStatus:\n type:\n - string\n - 'null'\n enum:\n - none\n - payment_added\n - payment_cleared\n - null\n description: Status of the subscription surcharge (overage) credits. Null if the account has no subscription.\n subSurchargeAllowedCredits:\n type:\n - integer\n - 'null'\n description: Total surcharge credits allowed. Null if the account has no subscription.\n subSurchargeUsedCredits:\n type:\n - integer\n - 'null'\n description: Surcharge credits consumed. Null if the account has no subscription.\n subSurchargeAllowed:\n type:\n - boolean\n - 'null'\n description: Whether surcharge (overage) usage is allowed on the subscription. Null if the account has no subscription.\n oneOffCreditsActive:\n type: boolean\n description: Whether the account has active one-off (pay-as-you-go) credits.\n oneOffAllowedCredits:\n type: integer\n description: Total one-off credits purchased.\n oneOffUsedCredits:\n type: integer\n description: One-off credits consumed.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type.\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path that produced the error.\n status:\n type: integer\n description: HTTP status code returned with the error.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
47906
49517
|
"commodity-fluctuation": "openapi: 3.1.1\ninfo:\n title: 'Commodity Fluctuation API '\n version: 1.0.0\n description: Calculate price change and percentage movement for any commodity over a custom date range. Returns the opening price, closing price, absolute change, and percentage change for each symbol. Accepts one or more comma-separated commodity symbols with a start and end date in YYYY-MM-DD format. Returns a 400 error for invalid dates or a date range where start is after end, and a 404 error for unsupported symbols or a date range with no available data.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Commodity Fluctuation API Server\npaths:\n /commodity/fluctuation:\n get:\n tags:\n - Commodity APIs\n summary: Get commodity price fluctuations\n description: Returns price fluctuation metrics (start, end, change, percent change) for the requested commodity symbols over a date range.\n operationId: getCommodityFluctuation\n parameters:\n - name: format\n in: query\n required: false\n description: Response format. Currently only `json` is supported.\n schema:\n type: string\n default: json\n enum:\n - json\n - name: symbols\n in: query\n required: true\n description: Comma-separated list of commodity symbols.\n schema:\n type: string\n - name: startDate\n in: query\n required: true\n description: Start date in `YYYY-MM-DD` format.\n schema:\n type: string\n - name: endDate\n in: query\n required: true\n description: End date in `YYYY-MM-DD` format.\n schema:\n type: string\n responses:\n '200':\n description: Successful operation\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/CommodityFluctuationResponse'\n examples:\n success:\n summary: Successful response\n value:\n success: true\n startDate: '2024-01-01'\n endDate: '2024-01-31'\n rates:\n WTIOIL-SPOT:\n startRate: 72.02\n endRate: 75.81\n change: 3.79\n changePercent: 5.26\n XAU:\n startRate: 2063.63\n endRate: 2039.83\n change: -23.8\n changePercent: -1.15\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '400':\n description: Bad Request \u2014 Missing parameters or invalid dates\n content:\n application/json:\n examples:\n missingSymbols:\n summary: Missing required symbols parameter\n value:\n error: Invalid Param Exception\n message: please pass correct parameters\n path: /v1.0/commodity/fluctuation\n status: 400\n timestamp: '2026-07-27T11:37:24.273Z'\n invalidDateFormat:\n summary: Date is not in YYYY-MM-DD format\n value:\n timestamp: '2026-07-27T11:37:22.687Z'\n path: /rates/fluctuation\n code: 400\n error: VALIDATION_ERROR\n message: Invalid Date Format (YYYY-MM-DD).\n dateNotExist:\n summary: Date does not exist on the calendar (e.g. Feb 30)\n value:\n timestamp: '2026-07-27T11:37:33.565Z'\n path: /rates/fluctuation\n code: 400\n error: VALIDATION_ERROR\n message: 'Invalid Date: The provided start date or end date does not exist.'\n startAfterEnd:\n summary: startDate is after endDate\n value:\n timestamp: '2026-07-27T11:37:23.206Z'\n path: /rates/fluctuation\n code: 400\n error: VALIDATION_ERROR\n message: Start date cannot be after end date\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '404':\n description: Not found - Symbol or data not available\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n symbolNotFound:\n summary: Symbol Not Found\n value:\n timestamp: '2026-07-27T11:37:23.759Z'\n path: /rates/fluctuation\n code: 404\n error: SYMBOL_NOT_FOUND\n message: The symbol is not supported, please visit the documentation for a list of supported symbols\n noData:\n summary: No data available for the given date range\n value:\n timestamp: '2026-07-27T11:37:34.167Z'\n path: /rates/fluctuation\n code: 404\n error: DATA_NOT_FOUND\n message: No data found for the given date range\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n CommodityFluctuationResponse:\n type: object\n required:\n - success\n - startDate\n - endDate\n - rates\n properties:\n success:\n type: boolean\n description: '`true` for successful requests.'\n startDate:\n type: string\n description: Start date of the interval (YYYY-MM-DD).\n endDate:\n type: string\n description: End date of the interval (YYYY-MM-DD).\n rates:\n $ref: '#/components/schemas/CommodityFluctuationRates'\n description: Commodity fluctuation response containing price change data per symbol over a date range.\n CommodityFluctuationRates:\n type: object\n description: Map of requested commodity symbols to their fluctuation metrics. Each key is a commodity symbol (e.g. XAU).\n additionalProperties:\n title: CommodityFluctuationItem\n type: object\n description: Fluctuation metrics for a single commodity over a date range.\n required:\n - startRate\n - endRate\n - change\n - changePercent\n properties:\n startRate:\n type: number\n format: float\n description: Price of the commodity on the start date.\n endRate:\n type: number\n format: float\n description: Price of the commodity on the end date.\n change:\n type: number\n format: float\n description: Absolute price difference between end and start dates. May be negative.\n changePercent:\n type: number\n format: float\n description: Percentage price change from start to end date. May be negative.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests. Gateway-level validation errors populate status; commodity-service errors (date/symbol/data validation) populate code instead \u2014 check whichever is present.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type (e.g., Invalid Param Exception, VALIDATION_ERROR, SYMBOL_NOT_FOUND, DATA_NOT_FOUND).\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path (gateway errors) or internal service path (commodity-service errors) that produced the error.\n status:\n type: integer\n description: HTTP status code. Present on gateway-level errors.\n code:\n type: integer\n description: HTTP status code. Present on commodity-service errors instead of status.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
@@ -49843,6 +51454,905 @@ components:
|
|
|
49843
51454
|
security:
|
|
49844
51455
|
- ApiKeyAuthHeader: []
|
|
49845
51456
|
- ApiKeyAuthQuery: []
|
|
51457
|
+
`,
|
|
51458
|
+
"domain-reputation": `openapi: 3.1.1
|
|
51459
|
+
info:
|
|
51460
|
+
title: Domain Reputation API - Real-Time Risk Verdict, Trust Score, DGA Detection, and Threat Intelligence for Any Domain
|
|
51461
|
+
version: 1.0.0
|
|
51462
|
+
description: Assess any domain and get a synthesized risk verdict, a weighted trust score, DGA detection, threat intelligence matches, and a full email deliverability check in one call. Every score carries the evidence behind it, and partial data is called out in errors rather than silently dropped. Built for fraud screening, phishing triage, email vetting, brand protection, and threat intel enrichment.
|
|
51463
|
+
contact:
|
|
51464
|
+
name: APIFreaks Support
|
|
51465
|
+
url: https://apifreaks.com/contact
|
|
51466
|
+
email: support@apifreaks.com
|
|
51467
|
+
servers:
|
|
51468
|
+
- url: https://api.apifreaks.com/v1.0
|
|
51469
|
+
description: Domain Reputation API Server
|
|
51470
|
+
paths:
|
|
51471
|
+
/domain/reputation:
|
|
51472
|
+
get:
|
|
51473
|
+
tags:
|
|
51474
|
+
- Domain APIs
|
|
51475
|
+
summary: Get a real-time risk verdict, trust score, and threat intelligence for any domain.
|
|
51476
|
+
description: The Domain Reputation API assesses a domain and returns a risk verdict, trust score, DGA detection results, threat intelligence matches, email deliverability analysis, and evidence summary. Partial data is flagged in the errors array rather than silently dropped.
|
|
51477
|
+
parameters:
|
|
51478
|
+
- name: format
|
|
51479
|
+
in: query
|
|
51480
|
+
required: false
|
|
51481
|
+
schema:
|
|
51482
|
+
type: string
|
|
51483
|
+
enum:
|
|
51484
|
+
- json
|
|
51485
|
+
- xml
|
|
51486
|
+
default: json
|
|
51487
|
+
description: Format of the response.
|
|
51488
|
+
- name: domainName
|
|
51489
|
+
in: query
|
|
51490
|
+
required: true
|
|
51491
|
+
schema:
|
|
51492
|
+
type: string
|
|
51493
|
+
description: The domain name to assess (e.g. example.com). Must contain at least one dot and be at most 253 characters. Automatically lowercased.
|
|
51494
|
+
responses:
|
|
51495
|
+
'200':
|
|
51496
|
+
description: Success
|
|
51497
|
+
content:
|
|
51498
|
+
application/json:
|
|
51499
|
+
schema:
|
|
51500
|
+
$ref: '#/components/schemas/DomainReputationResponse'
|
|
51501
|
+
examples:
|
|
51502
|
+
success:
|
|
51503
|
+
summary: Safe domain (apple.com)
|
|
51504
|
+
value:
|
|
51505
|
+
input:
|
|
51506
|
+
domain: apple.com
|
|
51507
|
+
assessed_at: '2026-09-08T08:36:23.820181075Z'
|
|
51508
|
+
version: 1.0.0
|
|
51509
|
+
processing_time_ms: 1739
|
|
51510
|
+
risk_category:
|
|
51511
|
+
verdict: safe
|
|
51512
|
+
confidence: 0.8
|
|
51513
|
+
primary_threat: null
|
|
51514
|
+
severity: none
|
|
51515
|
+
threat_types: []
|
|
51516
|
+
sources: []
|
|
51517
|
+
pivot_matches: []
|
|
51518
|
+
dga_score:
|
|
51519
|
+
score: 0
|
|
51520
|
+
is_dga: false
|
|
51521
|
+
model: deterministic_features_v1
|
|
51522
|
+
features:
|
|
51523
|
+
domain_length: 5
|
|
51524
|
+
vowel_consonant_ratio: 0.6666666666666666
|
|
51525
|
+
ngram_perplexity: -8.83
|
|
51526
|
+
shannon_entropy: 1.9219280948873623
|
|
51527
|
+
digit_letter_ratio: 0
|
|
51528
|
+
consonant_streak_max: 3
|
|
51529
|
+
tld_in_known_dga_set: false
|
|
51530
|
+
interpretation: human_readable
|
|
51531
|
+
trust_signals:
|
|
51532
|
+
trust_score: 72
|
|
51533
|
+
trust_band: high
|
|
51534
|
+
signals:
|
|
51535
|
+
positive:
|
|
51536
|
+
- code: spf_configured
|
|
51537
|
+
weight: 5
|
|
51538
|
+
polarity: positive
|
|
51539
|
+
category: email_security
|
|
51540
|
+
evidence: SPF record found
|
|
51541
|
+
confidence: 1
|
|
51542
|
+
- code: dmarc_present
|
|
51543
|
+
weight: 5
|
|
51544
|
+
polarity: positive
|
|
51545
|
+
category: email_security
|
|
51546
|
+
evidence: DMARC record present
|
|
51547
|
+
confidence: 1
|
|
51548
|
+
- code: established_domain
|
|
51549
|
+
weight: 10
|
|
51550
|
+
polarity: positive
|
|
51551
|
+
category: domain_age
|
|
51552
|
+
evidence: Domain age > 2 years
|
|
51553
|
+
confidence: 1
|
|
51554
|
+
- code: mature_domain
|
|
51555
|
+
weight: 5
|
|
51556
|
+
polarity: positive
|
|
51557
|
+
category: domain_age
|
|
51558
|
+
evidence: Domain age > 5 years
|
|
51559
|
+
confidence: 1
|
|
51560
|
+
- code: paid_ssl
|
|
51561
|
+
weight: 5
|
|
51562
|
+
polarity: positive
|
|
51563
|
+
category: ssl_certificate
|
|
51564
|
+
evidence: Uses paid SSL certificate
|
|
51565
|
+
confidence: 0.9
|
|
51566
|
+
- code: valid_ssl
|
|
51567
|
+
weight: 3
|
|
51568
|
+
polarity: positive
|
|
51569
|
+
category: ssl_certificate
|
|
51570
|
+
evidence: Valid SSL certificate
|
|
51571
|
+
confidence: 1
|
|
51572
|
+
negative:
|
|
51573
|
+
- code: privacy_whois
|
|
51574
|
+
weight: 1
|
|
51575
|
+
polarity: negative
|
|
51576
|
+
category: whois_privacy
|
|
51577
|
+
evidence: WHOIS information is privacy-protected
|
|
51578
|
+
confidence: 0.9
|
|
51579
|
+
- code: external_redirect
|
|
51580
|
+
weight: 10
|
|
51581
|
+
polarity: negative
|
|
51582
|
+
category: content_analysis
|
|
51583
|
+
evidence: Site redirects visitors to an external domain
|
|
51584
|
+
confidence: 0.8
|
|
51585
|
+
neutral: []
|
|
51586
|
+
indicators:
|
|
51587
|
+
is_newly_registered: false
|
|
51588
|
+
uses_free_extension: false
|
|
51589
|
+
uses_free_ssl: false
|
|
51590
|
+
has_privacy_whois: true
|
|
51591
|
+
ssl_age_days: 26
|
|
51592
|
+
has_dmarc: true
|
|
51593
|
+
has_spf: true
|
|
51594
|
+
redirects_externally: true
|
|
51595
|
+
javascript_obfuscated: false
|
|
51596
|
+
domain_age_days: 14446
|
|
51597
|
+
registrar: NOM-IQ Ltd dba Com Laude
|
|
51598
|
+
email_deliverability:
|
|
51599
|
+
score: 95
|
|
51600
|
+
grade: excellent
|
|
51601
|
+
can_receive_email: true
|
|
51602
|
+
authentication:
|
|
51603
|
+
spf:
|
|
51604
|
+
present: true
|
|
51605
|
+
policy: ~all
|
|
51606
|
+
record: v=spf1 include:_spf.apple.com include:_spf-txn.apple.com ~all
|
|
51607
|
+
dkim:
|
|
51608
|
+
found: true
|
|
51609
|
+
selectors_found:
|
|
51610
|
+
- selector1
|
|
51611
|
+
- selector2
|
|
51612
|
+
providers_detected: []
|
|
51613
|
+
note: Only common selectors are probed; a domain may use a custom selector
|
|
51614
|
+
dmarc:
|
|
51615
|
+
present: true
|
|
51616
|
+
policy: quarantine
|
|
51617
|
+
reporting_configured: true
|
|
51618
|
+
infrastructure:
|
|
51619
|
+
mx_count: 6
|
|
51620
|
+
mx_records:
|
|
51621
|
+
- mx-in-ma.apple.com.
|
|
51622
|
+
- mx-in.g.apple.com.
|
|
51623
|
+
- mx-in-rn.apple.com.
|
|
51624
|
+
- mx-in-sg.apple.com.
|
|
51625
|
+
- mx-in-hfd.apple.com.
|
|
51626
|
+
- mx-in-vib.apple.com.
|
|
51627
|
+
mx_provider: self_hosted
|
|
51628
|
+
null_mx: false
|
|
51629
|
+
reputation:
|
|
51630
|
+
spam_blacklisted: false
|
|
51631
|
+
newly_registered: false
|
|
51632
|
+
domain_age_days: 14446
|
|
51633
|
+
issues:
|
|
51634
|
+
- code: spf_softfail
|
|
51635
|
+
severity: low
|
|
51636
|
+
message: The SPF policy '~all' only soft-fails unauthorized senders
|
|
51637
|
+
recommendation: Move to '-all' once all legitimate sending sources are listed
|
|
51638
|
+
intelligence:
|
|
51639
|
+
ioc_type: domain
|
|
51640
|
+
ioc_value: apple.com
|
|
51641
|
+
related_iocs:
|
|
51642
|
+
- type: ipv4
|
|
51643
|
+
value: 17.253.144.10
|
|
51644
|
+
confidence: 0.9
|
|
51645
|
+
- type: ipv6
|
|
51646
|
+
value: 2620:149:af0:0:0:0:0:10
|
|
51647
|
+
confidence: 0.9
|
|
51648
|
+
feed_tags:
|
|
51649
|
+
- verdict:safe
|
|
51650
|
+
- severity:none
|
|
51651
|
+
- ns:d.ns.apple.com.
|
|
51652
|
+
- ns:b.ns.apple.com.
|
|
51653
|
+
- ns:c.ns.apple.com.
|
|
51654
|
+
- ns:a.ns.apple.com.
|
|
51655
|
+
- mx:mx-in-ma.apple.com.
|
|
51656
|
+
- mx:mx-in.g.apple.com.
|
|
51657
|
+
- mx:mx-in-rn.apple.com.
|
|
51658
|
+
- mx:mx-in-sg.apple.com.
|
|
51659
|
+
- mx:mx-in-hfd.apple.com.
|
|
51660
|
+
- mx:mx-in-vib.apple.com.
|
|
51661
|
+
stix_pattern: '[domain-name:value = ''apple.com'' OR ipv4-addr:value = ''17.253.144.10'' OR ipv6-addr:value = ''2620:149:af0:0:0:0:0:10'']'
|
|
51662
|
+
recommended_action: allow
|
|
51663
|
+
first_seen: null
|
|
51664
|
+
last_seen: null
|
|
51665
|
+
evidence_summary:
|
|
51666
|
+
why_flagged: []
|
|
51667
|
+
errors: []
|
|
51668
|
+
partialData:
|
|
51669
|
+
summary: Partial data (WHOIS lookup failed)
|
|
51670
|
+
value:
|
|
51671
|
+
input:
|
|
51672
|
+
domain: apifreaks.com
|
|
51673
|
+
risk_category:
|
|
51674
|
+
verdict: safe
|
|
51675
|
+
confidence: 0.7
|
|
51676
|
+
severity: none
|
|
51677
|
+
trust_signals:
|
|
51678
|
+
trust_score: 70
|
|
51679
|
+
trust_band: high
|
|
51680
|
+
indicators:
|
|
51681
|
+
is_newly_registered: null
|
|
51682
|
+
has_privacy_whois: null
|
|
51683
|
+
domain_age_days: null
|
|
51684
|
+
registrar: null
|
|
51685
|
+
errors:
|
|
51686
|
+
- WHOIS lookup failed
|
|
51687
|
+
headers:
|
|
51688
|
+
X-AF-Credits-Cost:
|
|
51689
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
51690
|
+
'400':
|
|
51691
|
+
description: Bad Request \u2013 Invalid or missing domainName parameter
|
|
51692
|
+
content:
|
|
51693
|
+
application/json:
|
|
51694
|
+
schema:
|
|
51695
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
51696
|
+
examples:
|
|
51697
|
+
invalidDomain:
|
|
51698
|
+
summary: Invalid domain parameter
|
|
51699
|
+
value:
|
|
51700
|
+
error: Invalid Domain Exception
|
|
51701
|
+
message: Please provide a valid domain name in the "domainName" parameter.
|
|
51702
|
+
path: /v1.0/domain/reputation
|
|
51703
|
+
status: 400
|
|
51704
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
51705
|
+
missingDomain:
|
|
51706
|
+
summary: Missing domainName parameter
|
|
51707
|
+
value:
|
|
51708
|
+
error: Invalid Param Exception
|
|
51709
|
+
message: Please provide a valid domain name in the "domainName" parameter.
|
|
51710
|
+
path: /v1.0/domain/reputation
|
|
51711
|
+
status: 400
|
|
51712
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
51713
|
+
headers:
|
|
51714
|
+
X-AF-Credits-Cost:
|
|
51715
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
51716
|
+
'503':
|
|
51717
|
+
description: Service Unavailable \u2013 The assessment service is temporarily unavailable
|
|
51718
|
+
content:
|
|
51719
|
+
application/json:
|
|
51720
|
+
schema:
|
|
51721
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
51722
|
+
examples:
|
|
51723
|
+
serviceUnavailable:
|
|
51724
|
+
summary: Service Unavailable
|
|
51725
|
+
value:
|
|
51726
|
+
error: Service Unavailable
|
|
51727
|
+
message: 'Service is unavailable. Please try after some time. [For Technical Support email at: support@apifreaks.com]'
|
|
51728
|
+
path: /v1.0/domain/reputation
|
|
51729
|
+
status: 503
|
|
51730
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
51731
|
+
headers:
|
|
51732
|
+
X-AF-Credits-Cost:
|
|
51733
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
51734
|
+
operationId: getDomainReputation
|
|
51735
|
+
components:
|
|
51736
|
+
securitySchemes:
|
|
51737
|
+
ApiKeyAuthHeader:
|
|
51738
|
+
type: apiKey
|
|
51739
|
+
in: header
|
|
51740
|
+
name: X-apiKey
|
|
51741
|
+
description: Pass your API key via the X-apiKey request header.
|
|
51742
|
+
ApiKeyAuthQuery:
|
|
51743
|
+
type: apiKey
|
|
51744
|
+
in: query
|
|
51745
|
+
name: apiKey
|
|
51746
|
+
description: Pass your API key via the apiKey query parameter.
|
|
51747
|
+
schemas:
|
|
51748
|
+
DomainReputationResponse:
|
|
51749
|
+
type: object
|
|
51750
|
+
required:
|
|
51751
|
+
- input
|
|
51752
|
+
- assessed_at
|
|
51753
|
+
- version
|
|
51754
|
+
- processing_time_ms
|
|
51755
|
+
- risk_category
|
|
51756
|
+
- dga_score
|
|
51757
|
+
- trust_signals
|
|
51758
|
+
- email_deliverability
|
|
51759
|
+
- intelligence
|
|
51760
|
+
- evidence_summary
|
|
51761
|
+
- errors
|
|
51762
|
+
properties:
|
|
51763
|
+
input:
|
|
51764
|
+
type: object
|
|
51765
|
+
required:
|
|
51766
|
+
- domain
|
|
51767
|
+
properties:
|
|
51768
|
+
domain:
|
|
51769
|
+
type: string
|
|
51770
|
+
description: Domain name being analyzed.
|
|
51771
|
+
description: Input object containing the analyzed domain.
|
|
51772
|
+
assessed_at:
|
|
51773
|
+
type: string
|
|
51774
|
+
description: Timestamp when the assessment was performed (YYYY-MM-DDTHH:mm:ssZ).
|
|
51775
|
+
version:
|
|
51776
|
+
type: string
|
|
51777
|
+
description: API / response schema version.
|
|
51778
|
+
processing_time_ms:
|
|
51779
|
+
type: integer
|
|
51780
|
+
description: Time taken to process the request, in milliseconds.
|
|
51781
|
+
risk_category:
|
|
51782
|
+
$ref: '#/components/schemas/RiskCategory'
|
|
51783
|
+
dga_score:
|
|
51784
|
+
$ref: '#/components/schemas/DgaScore'
|
|
51785
|
+
trust_signals:
|
|
51786
|
+
$ref: '#/components/schemas/TrustSignals'
|
|
51787
|
+
email_deliverability:
|
|
51788
|
+
$ref: '#/components/schemas/EmailDeliverability'
|
|
51789
|
+
intelligence:
|
|
51790
|
+
$ref: '#/components/schemas/Intelligence'
|
|
51791
|
+
evidence_summary:
|
|
51792
|
+
$ref: '#/components/schemas/EvidenceSummary'
|
|
51793
|
+
errors:
|
|
51794
|
+
type: array
|
|
51795
|
+
items:
|
|
51796
|
+
type: string
|
|
51797
|
+
description: List of errors encountered during processing, if any (e.g. "WHOIS lookup failed"). An empty array means every signal resolved.
|
|
51798
|
+
description: Full domain reputation assessment response.
|
|
51799
|
+
RiskCategory:
|
|
51800
|
+
type: object
|
|
51801
|
+
required:
|
|
51802
|
+
- verdict
|
|
51803
|
+
- confidence
|
|
51804
|
+
- primary_threat
|
|
51805
|
+
- severity
|
|
51806
|
+
- threat_types
|
|
51807
|
+
- sources
|
|
51808
|
+
- pivot_matches
|
|
51809
|
+
properties:
|
|
51810
|
+
verdict:
|
|
51811
|
+
type: string
|
|
51812
|
+
enum:
|
|
51813
|
+
- safe
|
|
51814
|
+
- suspicious
|
|
51815
|
+
description: Final verdict of the risk assessment.
|
|
51816
|
+
confidence:
|
|
51817
|
+
type: number
|
|
51818
|
+
format: float
|
|
51819
|
+
description: Confidence score for the verdict (0-1).
|
|
51820
|
+
primary_threat:
|
|
51821
|
+
type:
|
|
51822
|
+
- string
|
|
51823
|
+
- 'null'
|
|
51824
|
+
description: Main threat type identified (e.g. phishing). null when no threat was identified.
|
|
51825
|
+
severity:
|
|
51826
|
+
type: string
|
|
51827
|
+
enum:
|
|
51828
|
+
- none
|
|
51829
|
+
- low
|
|
51830
|
+
- medium
|
|
51831
|
+
- high
|
|
51832
|
+
description: Severity level of the risk.
|
|
51833
|
+
threat_types:
|
|
51834
|
+
type: array
|
|
51835
|
+
items:
|
|
51836
|
+
type: string
|
|
51837
|
+
description: List of threat types associated with the domain.
|
|
51838
|
+
sources:
|
|
51839
|
+
type: array
|
|
51840
|
+
items:
|
|
51841
|
+
$ref: '#/components/schemas/ThreatSource'
|
|
51842
|
+
description: Threat intelligence sources that flagged the domain. Empty when nothing flagged it.
|
|
51843
|
+
pivot_matches:
|
|
51844
|
+
type: array
|
|
51845
|
+
items:
|
|
51846
|
+
$ref: '#/components/schemas/PivotMatch'
|
|
51847
|
+
description: Related pivots (nameserver, email, etc.) linked to known threats.
|
|
51848
|
+
description: Overall risk assessment for the domain.
|
|
51849
|
+
ThreatSource:
|
|
51850
|
+
type: object
|
|
51851
|
+
required:
|
|
51852
|
+
- source
|
|
51853
|
+
- indicator
|
|
51854
|
+
- threat_type
|
|
51855
|
+
- confidence
|
|
51856
|
+
- first_seen
|
|
51857
|
+
- last_seen
|
|
51858
|
+
properties:
|
|
51859
|
+
source:
|
|
51860
|
+
type: string
|
|
51861
|
+
description: Name of the threat intelligence source (e.g. Spamhaus).
|
|
51862
|
+
indicator:
|
|
51863
|
+
type: string
|
|
51864
|
+
description: Indicator matched by this source.
|
|
51865
|
+
threat_type:
|
|
51866
|
+
type: string
|
|
51867
|
+
description: Threat type reported by this source.
|
|
51868
|
+
confidence:
|
|
51869
|
+
type: number
|
|
51870
|
+
format: float
|
|
51871
|
+
description: Confidence score from this source (0-1).
|
|
51872
|
+
first_seen:
|
|
51873
|
+
type: string
|
|
51874
|
+
description: First time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ).
|
|
51875
|
+
last_seen:
|
|
51876
|
+
type: string
|
|
51877
|
+
description: Last time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ).
|
|
51878
|
+
description: A threat intelligence source that flagged the domain.
|
|
51879
|
+
PivotMatch:
|
|
51880
|
+
type: object
|
|
51881
|
+
required:
|
|
51882
|
+
- pivot
|
|
51883
|
+
- pivot_type
|
|
51884
|
+
- total_related_threats
|
|
51885
|
+
- confidence
|
|
51886
|
+
properties:
|
|
51887
|
+
pivot:
|
|
51888
|
+
type: string
|
|
51889
|
+
description: Pivot value (e.g. a nameserver or email address).
|
|
51890
|
+
pivot_type:
|
|
51891
|
+
type: string
|
|
51892
|
+
description: Type of pivot.
|
|
51893
|
+
total_related_threats:
|
|
51894
|
+
type: integer
|
|
51895
|
+
description: Total number of threats related to this pivot.
|
|
51896
|
+
confidence:
|
|
51897
|
+
type: number
|
|
51898
|
+
format: float
|
|
51899
|
+
description: Confidence score for the pivot match (0-1).
|
|
51900
|
+
description: A related pivot linked to known threats.
|
|
51901
|
+
DgaScore:
|
|
51902
|
+
type: object
|
|
51903
|
+
required:
|
|
51904
|
+
- score
|
|
51905
|
+
- is_dga
|
|
51906
|
+
- model
|
|
51907
|
+
- features
|
|
51908
|
+
- interpretation
|
|
51909
|
+
properties:
|
|
51910
|
+
score:
|
|
51911
|
+
type: number
|
|
51912
|
+
format: float
|
|
51913
|
+
description: DGA likelihood score (0-1).
|
|
51914
|
+
is_dga:
|
|
51915
|
+
type: boolean
|
|
51916
|
+
description: Indicates whether the domain is likely DGA-generated.
|
|
51917
|
+
model:
|
|
51918
|
+
type: string
|
|
51919
|
+
description: Model used to compute the DGA score.
|
|
51920
|
+
features:
|
|
51921
|
+
$ref: '#/components/schemas/DgaFeatures'
|
|
51922
|
+
interpretation:
|
|
51923
|
+
type: string
|
|
51924
|
+
description: Human-readable interpretation of the DGA score.
|
|
51925
|
+
description: Domain Generation Algorithm (DGA) detection results.
|
|
51926
|
+
DgaFeatures:
|
|
51927
|
+
type: object
|
|
51928
|
+
required:
|
|
51929
|
+
- domain_length
|
|
51930
|
+
- vowel_consonant_ratio
|
|
51931
|
+
- ngram_perplexity
|
|
51932
|
+
- shannon_entropy
|
|
51933
|
+
- digit_letter_ratio
|
|
51934
|
+
- consonant_streak_max
|
|
51935
|
+
- tld_in_known_dga_set
|
|
51936
|
+
properties:
|
|
51937
|
+
domain_length:
|
|
51938
|
+
type: integer
|
|
51939
|
+
description: Length of the domain name.
|
|
51940
|
+
vowel_consonant_ratio:
|
|
51941
|
+
type: number
|
|
51942
|
+
format: float
|
|
51943
|
+
description: Ratio of vowels to consonants in the domain.
|
|
51944
|
+
ngram_perplexity:
|
|
51945
|
+
type: number
|
|
51946
|
+
format: float
|
|
51947
|
+
description: N-gram perplexity score of the domain string.
|
|
51948
|
+
shannon_entropy:
|
|
51949
|
+
type: number
|
|
51950
|
+
format: float
|
|
51951
|
+
description: Shannon entropy of the domain string.
|
|
51952
|
+
digit_letter_ratio:
|
|
51953
|
+
type: number
|
|
51954
|
+
format: float
|
|
51955
|
+
description: Ratio of digits to letters in the domain.
|
|
51956
|
+
consonant_streak_max:
|
|
51957
|
+
type: integer
|
|
51958
|
+
description: Maximum consecutive consonant streak in the domain.
|
|
51959
|
+
tld_in_known_dga_set:
|
|
51960
|
+
type: boolean
|
|
51961
|
+
description: Indicates if the TLD belongs to a known DGA set.
|
|
51962
|
+
description: Underlying lexical / statistical features used in DGA detection.
|
|
51963
|
+
TrustSignals:
|
|
51964
|
+
type: object
|
|
51965
|
+
required:
|
|
51966
|
+
- trust_score
|
|
51967
|
+
- trust_band
|
|
51968
|
+
- signals
|
|
51969
|
+
- indicators
|
|
51970
|
+
properties:
|
|
51971
|
+
trust_score:
|
|
51972
|
+
type: integer
|
|
51973
|
+
description: Overall trust score (0-100).
|
|
51974
|
+
trust_band:
|
|
51975
|
+
type: string
|
|
51976
|
+
description: Trust score band / category (e.g. low, medium, high).
|
|
51977
|
+
signals:
|
|
51978
|
+
$ref: '#/components/schemas/TrustScoreSignals'
|
|
51979
|
+
indicators:
|
|
51980
|
+
$ref: '#/components/schemas/TrustIndicators'
|
|
51981
|
+
description: Trust scoring and supporting signals for the domain.
|
|
51982
|
+
TrustScoreSignals:
|
|
51983
|
+
type: object
|
|
51984
|
+
required:
|
|
51985
|
+
- positive
|
|
51986
|
+
- negative
|
|
51987
|
+
- neutral
|
|
51988
|
+
properties:
|
|
51989
|
+
positive:
|
|
51990
|
+
type: array
|
|
51991
|
+
items:
|
|
51992
|
+
$ref: '#/components/schemas/TrustSignalItem'
|
|
51993
|
+
description: Signals that positively affect the trust score.
|
|
51994
|
+
negative:
|
|
51995
|
+
type: array
|
|
51996
|
+
items:
|
|
51997
|
+
$ref: '#/components/schemas/TrustSignalItem'
|
|
51998
|
+
description: Signals that negatively affect the trust score.
|
|
51999
|
+
neutral:
|
|
52000
|
+
type: array
|
|
52001
|
+
items:
|
|
52002
|
+
$ref: '#/components/schemas/TrustSignalItem'
|
|
52003
|
+
description: Signals that are neutral to the trust score.
|
|
52004
|
+
description: Signals contributing to the trust score.
|
|
52005
|
+
TrustSignalItem:
|
|
52006
|
+
type: object
|
|
52007
|
+
required:
|
|
52008
|
+
- code
|
|
52009
|
+
- weight
|
|
52010
|
+
- polarity
|
|
52011
|
+
- category
|
|
52012
|
+
- evidence
|
|
52013
|
+
- confidence
|
|
52014
|
+
properties:
|
|
52015
|
+
code:
|
|
52016
|
+
type: string
|
|
52017
|
+
description: Signal code identifier (e.g. valid_ssl, dmarc_missing).
|
|
52018
|
+
weight:
|
|
52019
|
+
type: integer
|
|
52020
|
+
description: Weight assigned to the signal.
|
|
52021
|
+
polarity:
|
|
52022
|
+
type: string
|
|
52023
|
+
enum:
|
|
52024
|
+
- positive
|
|
52025
|
+
- negative
|
|
52026
|
+
- neutral
|
|
52027
|
+
description: Polarity of the signal.
|
|
52028
|
+
category:
|
|
52029
|
+
type: string
|
|
52030
|
+
description: Category the signal belongs to (e.g. ssl_certificate).
|
|
52031
|
+
evidence:
|
|
52032
|
+
type: string
|
|
52033
|
+
description: Evidence supporting the signal.
|
|
52034
|
+
confidence:
|
|
52035
|
+
type: number
|
|
52036
|
+
format: float
|
|
52037
|
+
description: Confidence score for the signal (0-1).
|
|
52038
|
+
description: A single trust signal contributing to the trust score.
|
|
52039
|
+
TrustIndicators:
|
|
52040
|
+
type: object
|
|
52041
|
+
properties:
|
|
52042
|
+
is_newly_registered:
|
|
52043
|
+
type:
|
|
52044
|
+
- boolean
|
|
52045
|
+
- 'null'
|
|
52046
|
+
description: Indicates whether the domain was recently registered. null when WHOIS data is unavailable.
|
|
52047
|
+
uses_free_extension:
|
|
52048
|
+
type: boolean
|
|
52049
|
+
description: Indicates whether the domain uses a free TLD extension.
|
|
52050
|
+
uses_free_ssl:
|
|
52051
|
+
type: boolean
|
|
52052
|
+
description: Indicates whether the domain uses a free SSL certificate.
|
|
52053
|
+
has_privacy_whois:
|
|
52054
|
+
type:
|
|
52055
|
+
- boolean
|
|
52056
|
+
- 'null'
|
|
52057
|
+
description: Indicates whether WHOIS privacy protection is enabled. null when WHOIS data is unavailable.
|
|
52058
|
+
ssl_age_days:
|
|
52059
|
+
type:
|
|
52060
|
+
- integer
|
|
52061
|
+
- 'null'
|
|
52062
|
+
description: Age of the SSL certificate in days.
|
|
52063
|
+
has_dmarc:
|
|
52064
|
+
type: boolean
|
|
52065
|
+
description: Indicates whether a DMARC record exists.
|
|
52066
|
+
has_spf:
|
|
52067
|
+
type: boolean
|
|
52068
|
+
description: Indicates whether an SPF record exists.
|
|
52069
|
+
redirects_externally:
|
|
52070
|
+
type: boolean
|
|
52071
|
+
description: Indicates whether the domain redirects to an external site.
|
|
52072
|
+
javascript_obfuscated:
|
|
52073
|
+
type: boolean
|
|
52074
|
+
description: Indicates whether obfuscated JavaScript was detected.
|
|
52075
|
+
domain_age_days:
|
|
52076
|
+
type:
|
|
52077
|
+
- integer
|
|
52078
|
+
- 'null'
|
|
52079
|
+
description: Age of the domain in days. null when WHOIS data is unavailable.
|
|
52080
|
+
registrar:
|
|
52081
|
+
type:
|
|
52082
|
+
- string
|
|
52083
|
+
- 'null'
|
|
52084
|
+
description: Domain registrar name. null when WHOIS data is unavailable.
|
|
52085
|
+
description: Individual trust / risk indicators for the domain.
|
|
52086
|
+
EmailDeliverability:
|
|
52087
|
+
type: object
|
|
52088
|
+
required:
|
|
52089
|
+
- score
|
|
52090
|
+
- grade
|
|
52091
|
+
- can_receive_email
|
|
52092
|
+
- authentication
|
|
52093
|
+
- infrastructure
|
|
52094
|
+
- reputation
|
|
52095
|
+
- issues
|
|
52096
|
+
properties:
|
|
52097
|
+
score:
|
|
52098
|
+
type: integer
|
|
52099
|
+
description: Overall email deliverability score out of 100.
|
|
52100
|
+
grade:
|
|
52101
|
+
type: string
|
|
52102
|
+
description: Letter / word grade summarizing the deliverability score.
|
|
52103
|
+
can_receive_email:
|
|
52104
|
+
type: boolean
|
|
52105
|
+
description: Indicates whether the domain is configured to receive email.
|
|
52106
|
+
authentication:
|
|
52107
|
+
$ref: '#/components/schemas/EmailAuthentication'
|
|
52108
|
+
infrastructure:
|
|
52109
|
+
$ref: '#/components/schemas/EmailInfrastructure'
|
|
52110
|
+
reputation:
|
|
52111
|
+
$ref: '#/components/schemas/EmailReputation'
|
|
52112
|
+
issues:
|
|
52113
|
+
type: array
|
|
52114
|
+
items:
|
|
52115
|
+
$ref: '#/components/schemas/EmailIssue'
|
|
52116
|
+
description: List of detected email deliverability issues or misconfigurations.
|
|
52117
|
+
description: Assessment of the domain's ability to send and receive email reliably.
|
|
52118
|
+
EmailAuthentication:
|
|
52119
|
+
type: object
|
|
52120
|
+
required:
|
|
52121
|
+
- spf
|
|
52122
|
+
- dkim
|
|
52123
|
+
- dmarc
|
|
52124
|
+
properties:
|
|
52125
|
+
spf:
|
|
52126
|
+
$ref: '#/components/schemas/SpfRecord'
|
|
52127
|
+
dkim:
|
|
52128
|
+
$ref: '#/components/schemas/DkimRecord'
|
|
52129
|
+
dmarc:
|
|
52130
|
+
$ref: '#/components/schemas/DmarcRecord'
|
|
52131
|
+
description: Email authentication mechanisms configured for the domain.
|
|
52132
|
+
SpfRecord:
|
|
52133
|
+
type: object
|
|
52134
|
+
required:
|
|
52135
|
+
- present
|
|
52136
|
+
- policy
|
|
52137
|
+
- record
|
|
52138
|
+
properties:
|
|
52139
|
+
present:
|
|
52140
|
+
type: boolean
|
|
52141
|
+
description: Indicates whether an SPF record was found.
|
|
52142
|
+
policy:
|
|
52143
|
+
type: string
|
|
52144
|
+
description: SPF enforcement policy qualifier found in the record (e.g. ~all, -all).
|
|
52145
|
+
record:
|
|
52146
|
+
type: string
|
|
52147
|
+
description: Raw SPF DNS TXT record string.
|
|
52148
|
+
description: Sender Policy Framework configuration.
|
|
52149
|
+
DkimRecord:
|
|
52150
|
+
type: object
|
|
52151
|
+
required:
|
|
52152
|
+
- found
|
|
52153
|
+
- selectors_found
|
|
52154
|
+
- providers_detected
|
|
52155
|
+
- note
|
|
52156
|
+
properties:
|
|
52157
|
+
found:
|
|
52158
|
+
type: boolean
|
|
52159
|
+
description: Indicates whether a DKIM record was found for any probed selector.
|
|
52160
|
+
selectors_found:
|
|
52161
|
+
type: array
|
|
52162
|
+
items:
|
|
52163
|
+
type: string
|
|
52164
|
+
description: List of DKIM selectors for which a record was found.
|
|
52165
|
+
providers_detected:
|
|
52166
|
+
type: array
|
|
52167
|
+
items:
|
|
52168
|
+
type: string
|
|
52169
|
+
description: Email service providers inferred from the matched DKIM selectors.
|
|
52170
|
+
note:
|
|
52171
|
+
type: string
|
|
52172
|
+
description: Clarifying note about the limitations of DKIM selector probing.
|
|
52173
|
+
description: DomainKeys Identified Mail configuration.
|
|
52174
|
+
DmarcRecord:
|
|
52175
|
+
type: object
|
|
52176
|
+
required:
|
|
52177
|
+
- present
|
|
52178
|
+
- policy
|
|
52179
|
+
- reporting_configured
|
|
52180
|
+
properties:
|
|
52181
|
+
present:
|
|
52182
|
+
type: boolean
|
|
52183
|
+
description: Indicates whether a DMARC record was found.
|
|
52184
|
+
policy:
|
|
52185
|
+
type: string
|
|
52186
|
+
description: DMARC enforcement policy applied to failing messages (e.g. none, quarantine, reject).
|
|
52187
|
+
reporting_configured:
|
|
52188
|
+
type: boolean
|
|
52189
|
+
description: Indicates whether DMARC aggregate / forensic reporting addresses are configured.
|
|
52190
|
+
description: Domain-based Message Authentication, Reporting and Conformance configuration.
|
|
52191
|
+
EmailInfrastructure:
|
|
52192
|
+
type: object
|
|
52193
|
+
required:
|
|
52194
|
+
- mx_count
|
|
52195
|
+
- mx_records
|
|
52196
|
+
- mx_provider
|
|
52197
|
+
- null_mx
|
|
52198
|
+
properties:
|
|
52199
|
+
mx_count:
|
|
52200
|
+
type: integer
|
|
52201
|
+
description: Number of MX records found for the domain.
|
|
52202
|
+
mx_records:
|
|
52203
|
+
type: array
|
|
52204
|
+
items:
|
|
52205
|
+
type: string
|
|
52206
|
+
description: List of mail exchange server hostnames for the domain.
|
|
52207
|
+
mx_provider:
|
|
52208
|
+
type: string
|
|
52209
|
+
description: Email hosting provider inferred from the MX records.
|
|
52210
|
+
null_mx:
|
|
52211
|
+
type: boolean
|
|
52212
|
+
description: Indicates whether the domain explicitly declines email via a null MX record.
|
|
52213
|
+
description: Mail server infrastructure backing the domain.
|
|
52214
|
+
EmailReputation:
|
|
52215
|
+
type: object
|
|
52216
|
+
required:
|
|
52217
|
+
- spam_blacklisted
|
|
52218
|
+
- newly_registered
|
|
52219
|
+
properties:
|
|
52220
|
+
spam_blacklisted:
|
|
52221
|
+
type: boolean
|
|
52222
|
+
description: Indicates whether the domain appears on known spam blacklists.
|
|
52223
|
+
newly_registered:
|
|
52224
|
+
type: boolean
|
|
52225
|
+
description: Indicates whether the domain was registered recently.
|
|
52226
|
+
domain_age_days:
|
|
52227
|
+
type:
|
|
52228
|
+
- integer
|
|
52229
|
+
- 'null'
|
|
52230
|
+
description: Age of the domain in days since registration.
|
|
52231
|
+
description: Reputation and trust signals related to the domain's email sending history.
|
|
52232
|
+
EmailIssue:
|
|
52233
|
+
type: object
|
|
52234
|
+
properties:
|
|
52235
|
+
code:
|
|
52236
|
+
type: string
|
|
52237
|
+
description: Machine-readable code identifying the specific deliverability issue.
|
|
52238
|
+
severity:
|
|
52239
|
+
type: string
|
|
52240
|
+
description: Severity level assigned to the detected issue.
|
|
52241
|
+
message:
|
|
52242
|
+
type: string
|
|
52243
|
+
description: Human-readable explanation of the issue.
|
|
52244
|
+
recommendation:
|
|
52245
|
+
type: string
|
|
52246
|
+
description: Plain-language description of the exact fix to apply.
|
|
52247
|
+
description: A detected email deliverability issue or misconfiguration.
|
|
52248
|
+
Intelligence:
|
|
52249
|
+
type: object
|
|
52250
|
+
required:
|
|
52251
|
+
- ioc_type
|
|
52252
|
+
- ioc_value
|
|
52253
|
+
- related_iocs
|
|
52254
|
+
- feed_tags
|
|
52255
|
+
- stix_pattern
|
|
52256
|
+
- recommended_action
|
|
52257
|
+
- first_seen
|
|
52258
|
+
- last_seen
|
|
52259
|
+
properties:
|
|
52260
|
+
ioc_type:
|
|
52261
|
+
type: string
|
|
52262
|
+
description: Type of the indicator of compromise (e.g. domain).
|
|
52263
|
+
ioc_value:
|
|
52264
|
+
type: string
|
|
52265
|
+
description: Value of the indicator of compromise.
|
|
52266
|
+
related_iocs:
|
|
52267
|
+
type: array
|
|
52268
|
+
items:
|
|
52269
|
+
$ref: '#/components/schemas/RelatedIoc'
|
|
52270
|
+
description: Other IOCs related to this domain.
|
|
52271
|
+
feed_tags:
|
|
52272
|
+
type: array
|
|
52273
|
+
items:
|
|
52274
|
+
type: string
|
|
52275
|
+
description: Tags associated with this IOC from threat feeds.
|
|
52276
|
+
stix_pattern:
|
|
52277
|
+
type: string
|
|
52278
|
+
description: STIX 2.1 pattern representation of the IOC, ready to wrap into an Indicator object.
|
|
52279
|
+
recommended_action:
|
|
52280
|
+
type: string
|
|
52281
|
+
enum:
|
|
52282
|
+
- allow
|
|
52283
|
+
- monitor
|
|
52284
|
+
- block
|
|
52285
|
+
description: Recommended action based on the assessment.
|
|
52286
|
+
first_seen:
|
|
52287
|
+
type:
|
|
52288
|
+
- string
|
|
52289
|
+
- 'null'
|
|
52290
|
+
description: First time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed.
|
|
52291
|
+
last_seen:
|
|
52292
|
+
type:
|
|
52293
|
+
- string
|
|
52294
|
+
- 'null'
|
|
52295
|
+
description: Last time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed.
|
|
52296
|
+
description: Threat intelligence details for the indicator of compromise (IOC).
|
|
52297
|
+
RelatedIoc:
|
|
52298
|
+
type: object
|
|
52299
|
+
required:
|
|
52300
|
+
- type
|
|
52301
|
+
- value
|
|
52302
|
+
- confidence
|
|
52303
|
+
properties:
|
|
52304
|
+
type:
|
|
52305
|
+
type: string
|
|
52306
|
+
description: Type of the related IOC (e.g. ipv4, ipv6).
|
|
52307
|
+
value:
|
|
52308
|
+
type: string
|
|
52309
|
+
description: Value of the related IOC.
|
|
52310
|
+
confidence:
|
|
52311
|
+
type: number
|
|
52312
|
+
format: float
|
|
52313
|
+
description: Confidence score for the related IOC (0-1).
|
|
52314
|
+
description: A related indicator of compromise.
|
|
52315
|
+
EvidenceSummary:
|
|
52316
|
+
type: object
|
|
52317
|
+
required:
|
|
52318
|
+
- why_flagged
|
|
52319
|
+
properties:
|
|
52320
|
+
why_flagged:
|
|
52321
|
+
type: array
|
|
52322
|
+
items:
|
|
52323
|
+
type: string
|
|
52324
|
+
description: List of reasons why the domain was flagged. Empty for a clean domain.
|
|
52325
|
+
description: Summary of reasons behind the risk assessment.
|
|
52326
|
+
ErrorResponse:
|
|
52327
|
+
type: object
|
|
52328
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
52329
|
+
required:
|
|
52330
|
+
- message
|
|
52331
|
+
properties:
|
|
52332
|
+
error:
|
|
52333
|
+
type: string
|
|
52334
|
+
description: Short error category or exception type.
|
|
52335
|
+
message:
|
|
52336
|
+
type: string
|
|
52337
|
+
description: Human-readable error message describing the failure.
|
|
52338
|
+
path:
|
|
52339
|
+
type: string
|
|
52340
|
+
description: API endpoint path that produced the error.
|
|
52341
|
+
status:
|
|
52342
|
+
type: integer
|
|
52343
|
+
description: HTTP status code returned with the error.
|
|
52344
|
+
timestamp:
|
|
52345
|
+
type: string
|
|
52346
|
+
format: date-time
|
|
52347
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
52348
|
+
headers:
|
|
52349
|
+
X-AF-Credits-Cost:
|
|
52350
|
+
description: Specifies the number of credits consumed by the current request.
|
|
52351
|
+
schema:
|
|
52352
|
+
type: integer
|
|
52353
|
+
security:
|
|
52354
|
+
- ApiKeyAuthHeader: []
|
|
52355
|
+
- ApiKeyAuthQuery: []
|
|
49846
52356
|
`,
|
|
49847
52357
|
"domain-search-with-suggestions": `openapi: 3.1.1
|
|
49848
52358
|
info:
|
|
@@ -50218,10 +52728,861 @@ components:
|
|
|
50218
52728
|
security:
|
|
50219
52729
|
- ApiKeyAuthHeader: []
|
|
50220
52730
|
- ApiKeyAuthQuery: []
|
|
52731
|
+
`,
|
|
52732
|
+
"domain-typosquatting": `openapi: 3.1.1
|
|
52733
|
+
info:
|
|
52734
|
+
title: Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery
|
|
52735
|
+
version: 1.0.0
|
|
52736
|
+
description: Search for registered domains that read like typo variants of a brand keyword, or that match a wildcard pattern, across the full TLD set. Each match returns what is available of its registration date, expiry date, last-seen date, and drop status, paginated at 100 domains per page. Built for brand and trademark protection, phishing discovery, scheduled monitoring, and domain reclaim.
|
|
52737
|
+
contact:
|
|
52738
|
+
name: APIFreaks Support
|
|
52739
|
+
url: https://apifreaks.com/contact
|
|
52740
|
+
email: support@apifreaks.com
|
|
52741
|
+
servers:
|
|
52742
|
+
- url: https://api.apifreaks.com/v1.0
|
|
52743
|
+
description: Domain Typosquatting API Server
|
|
52744
|
+
paths:
|
|
52745
|
+
/domain/typosquatting:
|
|
52746
|
+
get:
|
|
52747
|
+
tags:
|
|
52748
|
+
- Domain APIs
|
|
52749
|
+
summary: Find registered typo-variant or wildcard-pattern domains for a brand keyword.
|
|
52750
|
+
description: The Domain Typosquatting API searches for registered domains that are typo or look-alike variants of a brand keyword, or that match a wildcard pattern. Results include registration lifecycle data and drop status across 1529+ TLDs, paginated at 100 domains per page.
|
|
52751
|
+
parameters:
|
|
52752
|
+
- name: format
|
|
52753
|
+
in: query
|
|
52754
|
+
required: false
|
|
52755
|
+
schema:
|
|
52756
|
+
type: string
|
|
52757
|
+
enum:
|
|
52758
|
+
- json
|
|
52759
|
+
- xml
|
|
52760
|
+
default: json
|
|
52761
|
+
description: Format of the response.
|
|
52762
|
+
- name: keyword
|
|
52763
|
+
in: query
|
|
52764
|
+
required: false
|
|
52765
|
+
schema:
|
|
52766
|
+
type: string
|
|
52767
|
+
minLength: 3
|
|
52768
|
+
maxLength: 63
|
|
52769
|
+
description: Brand or label to find typo variants for. 3-63 characters, letters, digits, or hyphens, a single label with no dots. Case-insensitive. Use either keyword or pattern, never both.
|
|
52770
|
+
- name: pattern
|
|
52771
|
+
in: query
|
|
52772
|
+
required: false
|
|
52773
|
+
schema:
|
|
52774
|
+
type: string
|
|
52775
|
+
minLength: 3
|
|
52776
|
+
maxLength: 63
|
|
52777
|
+
description: Wildcard search string that combines fuzzy matching with * wildcards. 3-63 characters total, * is the only supported wildcard and each one matches zero or more characters, maximum 3 asterisks per request. Use either keyword or pattern, never both.
|
|
52778
|
+
- name: pageToken
|
|
52779
|
+
in: query
|
|
52780
|
+
required: false
|
|
52781
|
+
schema:
|
|
52782
|
+
type: string
|
|
52783
|
+
description: Token from nextPageToken in the previous response. Required to retrieve page 2 and onward. The original keyword or pattern must be passed alongside the token on every page request. Results page at 100 domains per page.
|
|
52784
|
+
responses:
|
|
52785
|
+
'200':
|
|
52786
|
+
description: Success
|
|
52787
|
+
content:
|
|
52788
|
+
application/json:
|
|
52789
|
+
schema:
|
|
52790
|
+
$ref: '#/components/schemas/DomainTyposquattingResponse'
|
|
52791
|
+
examples:
|
|
52792
|
+
keywordSuccess:
|
|
52793
|
+
summary: Keyword search (paypal)
|
|
52794
|
+
value:
|
|
52795
|
+
status: true
|
|
52796
|
+
totalRecords: 1284
|
|
52797
|
+
currentPage: 1
|
|
52798
|
+
hasNextPage: true
|
|
52799
|
+
totalPages: 13
|
|
52800
|
+
nextPageToken: <opaque_token>
|
|
52801
|
+
domains:
|
|
52802
|
+
- domainName: p-aypal.com
|
|
52803
|
+
createDate: '2025-04-17'
|
|
52804
|
+
expiryDate: '2026-04-17'
|
|
52805
|
+
lastSeen: '2026-05-29'
|
|
52806
|
+
isDropped: true
|
|
52807
|
+
- domainName: p-aypal.de
|
|
52808
|
+
lastSeen: '2024-07-11'
|
|
52809
|
+
isDropped: true
|
|
52810
|
+
- domainName: p0aypal.com
|
|
52811
|
+
createDate: '2017-12-29'
|
|
52812
|
+
expiryDate: '2026-12-29'
|
|
52813
|
+
lastSeen: '2026-08-18'
|
|
52814
|
+
isDropped: false
|
|
52815
|
+
- domainName: p7ypal.com
|
|
52816
|
+
isDropped: true
|
|
52817
|
+
- domainName: pa-pal.club
|
|
52818
|
+
createDate: '2019-10-25'
|
|
52819
|
+
expiryDate: '2020-10-25'
|
|
52820
|
+
isDropped: false
|
|
52821
|
+
patternSuccess:
|
|
52822
|
+
summary: Wildcard pattern search (*paypal*)
|
|
52823
|
+
value:
|
|
52824
|
+
status: true
|
|
52825
|
+
totalRecords: 5471
|
|
52826
|
+
currentPage: 1
|
|
52827
|
+
hasNextPage: true
|
|
52828
|
+
totalPages: 55
|
|
52829
|
+
nextPageToken: <opaque_token>
|
|
52830
|
+
domains:
|
|
52831
|
+
- domainName: paypal-support.com
|
|
52832
|
+
createDate: '2024-11-02'
|
|
52833
|
+
expiryDate: '2026-11-02'
|
|
52834
|
+
lastSeen: '2026-08-30'
|
|
52835
|
+
isDropped: false
|
|
52836
|
+
- domainName: login-paypal.net
|
|
52837
|
+
lastSeen: '2025-12-14'
|
|
52838
|
+
isDropped: true
|
|
52839
|
+
emptyResult:
|
|
52840
|
+
summary: No matches found
|
|
52841
|
+
value:
|
|
52842
|
+
status: true
|
|
52843
|
+
totalRecords: 0
|
|
52844
|
+
currentPage: 1
|
|
52845
|
+
hasNextPage: false
|
|
52846
|
+
totalPages: 0
|
|
52847
|
+
domains: []
|
|
52848
|
+
headers:
|
|
52849
|
+
X-AF-Credits-Cost:
|
|
52850
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
52851
|
+
'400':
|
|
52852
|
+
description: Bad Request \u2013 Invalid parameters
|
|
52853
|
+
content:
|
|
52854
|
+
application/json:
|
|
52855
|
+
schema:
|
|
52856
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
52857
|
+
examples:
|
|
52858
|
+
shortPattern:
|
|
52859
|
+
summary: Pattern has too few non-wildcard characters
|
|
52860
|
+
value:
|
|
52861
|
+
error: Invalid Pattern Exception
|
|
52862
|
+
message: The pattern must contain at least 5 non-wildcard characters and no more than 3 wildcards.
|
|
52863
|
+
path: /v1.0/domain/typosquatting
|
|
52864
|
+
status: 400
|
|
52865
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
52866
|
+
bothParams:
|
|
52867
|
+
summary: Both keyword and pattern supplied
|
|
52868
|
+
value:
|
|
52869
|
+
error: Invalid Param Exception
|
|
52870
|
+
message: Use either the "keyword" or the "pattern" parameter, never both.
|
|
52871
|
+
path: /v1.0/domain/typosquatting
|
|
52872
|
+
status: 400
|
|
52873
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
52874
|
+
missingParam:
|
|
52875
|
+
summary: Neither keyword nor pattern supplied
|
|
52876
|
+
value:
|
|
52877
|
+
error: Invalid Param Exception
|
|
52878
|
+
message: Please provide either a "keyword" or a "pattern" parameter.
|
|
52879
|
+
path: /v1.0/domain/typosquatting
|
|
52880
|
+
status: 400
|
|
52881
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
52882
|
+
headers:
|
|
52883
|
+
X-AF-Credits-Cost:
|
|
52884
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
52885
|
+
operationId: getDomainTyposquatting
|
|
52886
|
+
components:
|
|
52887
|
+
securitySchemes:
|
|
52888
|
+
ApiKeyAuthHeader:
|
|
52889
|
+
type: apiKey
|
|
52890
|
+
in: header
|
|
52891
|
+
name: X-apiKey
|
|
52892
|
+
description: Pass your API key via the X-apiKey request header.
|
|
52893
|
+
ApiKeyAuthQuery:
|
|
52894
|
+
type: apiKey
|
|
52895
|
+
in: query
|
|
52896
|
+
name: apiKey
|
|
52897
|
+
description: Pass your API key via the apiKey query parameter.
|
|
52898
|
+
schemas:
|
|
52899
|
+
DomainTyposquattingResponse:
|
|
52900
|
+
type: object
|
|
52901
|
+
required:
|
|
52902
|
+
- status
|
|
52903
|
+
- totalRecords
|
|
52904
|
+
- currentPage
|
|
52905
|
+
- hasNextPage
|
|
52906
|
+
- totalPages
|
|
52907
|
+
- domains
|
|
52908
|
+
properties:
|
|
52909
|
+
status:
|
|
52910
|
+
type: boolean
|
|
52911
|
+
description: Indicates if the request was successful.
|
|
52912
|
+
totalRecords:
|
|
52913
|
+
type: integer
|
|
52914
|
+
description: Total number of domains found.
|
|
52915
|
+
currentPage:
|
|
52916
|
+
type: integer
|
|
52917
|
+
description: Page number of the current response. Starts at 1.
|
|
52918
|
+
hasNextPage:
|
|
52919
|
+
type: boolean
|
|
52920
|
+
description: true if at least one additional page is available.
|
|
52921
|
+
totalPages:
|
|
52922
|
+
type: integer
|
|
52923
|
+
description: Total number of pages available.
|
|
52924
|
+
nextPageToken:
|
|
52925
|
+
type: string
|
|
52926
|
+
description: Opaque token to pass as pageToken on the next request. Present only when hasNextPage is true.
|
|
52927
|
+
domains:
|
|
52928
|
+
type: array
|
|
52929
|
+
items:
|
|
52930
|
+
$ref: '#/components/schemas/DomainItem'
|
|
52931
|
+
description: List of typo-variant or pattern-matched domains on the current page.
|
|
52932
|
+
description: Paginated response containing typo-variant or pattern-matched domains.
|
|
52933
|
+
DomainItem:
|
|
52934
|
+
type: object
|
|
52935
|
+
required:
|
|
52936
|
+
- domainName
|
|
52937
|
+
- isDropped
|
|
52938
|
+
properties:
|
|
52939
|
+
domainName:
|
|
52940
|
+
type: string
|
|
52941
|
+
description: Domain name.
|
|
52942
|
+
createDate:
|
|
52943
|
+
type: string
|
|
52944
|
+
description: Domain creation date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.
|
|
52945
|
+
expiryDate:
|
|
52946
|
+
type: string
|
|
52947
|
+
description: Domain expiration date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.
|
|
52948
|
+
lastSeen:
|
|
52949
|
+
type: string
|
|
52950
|
+
description: Last time the domain was observed (YYYY-MM-DD). One of the two fields reliably meaningful across a full result set.
|
|
52951
|
+
isDropped:
|
|
52952
|
+
type: boolean
|
|
52953
|
+
description: Indicates whether the domain has dropped out of the registry and become available to register again.
|
|
52954
|
+
description: A single typo-variant or pattern-matched domain with registration lifecycle data.
|
|
52955
|
+
ErrorResponse:
|
|
52956
|
+
type: object
|
|
52957
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
52958
|
+
required:
|
|
52959
|
+
- message
|
|
52960
|
+
properties:
|
|
52961
|
+
error:
|
|
52962
|
+
type: string
|
|
52963
|
+
description: Short error category or exception type.
|
|
52964
|
+
message:
|
|
52965
|
+
type: string
|
|
52966
|
+
description: Human-readable error message describing the failure.
|
|
52967
|
+
path:
|
|
52968
|
+
type: string
|
|
52969
|
+
description: API endpoint path that produced the error.
|
|
52970
|
+
status:
|
|
52971
|
+
type: integer
|
|
52972
|
+
description: HTTP status code returned with the error.
|
|
52973
|
+
timestamp:
|
|
52974
|
+
type: string
|
|
52975
|
+
format: date-time
|
|
52976
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
52977
|
+
headers:
|
|
52978
|
+
X-AF-Credits-Cost:
|
|
52979
|
+
description: Specifies the number of credits consumed by the current request.
|
|
52980
|
+
schema:
|
|
52981
|
+
type: integer
|
|
52982
|
+
security:
|
|
52983
|
+
- ApiKeyAuthHeader: []
|
|
52984
|
+
- ApiKeyAuthQuery: []
|
|
50221
52985
|
`,
|
|
50222
52986
|
"subdomain-lookup": "openapi: 3.1.1\ninfo:\n title: Subdomain Finder API - Discover Active, Inactive & Historical Subdomains\n version: 1.0.0\n description: Retrieve subdomains related to a given domain name. Returns paginated results with subdomain details including first seen and last seen dates. Supports filtering by date range, status (active/inactive), and pagination with configurable page numbers.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Subdomain Lookup API Server\npaths:\n /subdomains/lookup:\n get:\n tags:\n - Domain APIs\n summary: Get subdomains related to the given domain name.\n description: The Subdomain Lookup API is designed to retrieve subdomains related to the given domain name. It helps you explore subdomains that are available for registration or usage.\n parameters:\n - name: format\n in: query\n required: false\n schema:\n type: string\n enum:\n - json\n - xml\n default: json\n description: Format of the response.\n - name: domain\n in: query\n required: true\n schema:\n type: string\n description: Domain name for availability and suggestions.\n - name: after\n in: query\n required: false\n schema:\n type: string\n format: date\n description: Filter subdomains seen after this date (format YYYY-MM-DD).\n - name: before\n in: query\n required: false\n schema:\n type: string\n format: date\n description: Filter subdomains seen before this date( format YYYY-MM-DD).\n - name: status\n in: query\n required: false\n schema:\n type: string\n enum:\n - active\n - inactive\n default: active\n description: Filter subdomains by status (active or inactive).\n - name: page\n in: query\n required: false\n schema:\n type: integer\n default: 1\n description: Page number for paginated results.\n responses:\n '200':\n description: Success\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/SubDomainResponse'\n examples:\n success:\n summary: Successful response\n value:\n domain: google.com\n status: true\n query_time: '2026-07-27T12:22:26.954268895'\n current_page: 1\n total_pages: 1543\n total_records: 154233\n subdomains:\n - subdomain: 49qq1sm.sites.google.com\n first_seen: '2024-03-03'\n last_seen: '2026-06-18'\n - subdomain: tvgkp5.feedproxy.ghs.google.com\n last_seen: '2026-07-04'\n - subdomain: www.reusablesec.sites.google.com\n first_seen: '2020-02-18'\n last_seen: '2026-06-20'\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '400':\n description: Bad Request \u2013 one or more parameters are invalid\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n missingDomain:\n summary: Missing required domain parameter\n value:\n error: Invalid Param Exception\n message: please pass correct parameters\n path: /v1.0/subdomains/lookup\n status: 400\n timestamp: '2026-07-27T12:22:27.587Z'\n invalidDomain:\n summary: domain is not a syntactically valid domain name\n value:\n timestamp: '2026-07-27T12:22:40.119716922Z'\n status: 400\n error: Invalid Param Exception\n message: 'Please pass domain param correct value[For Technical Support: support@whoisfreaks.com]'\n path: /v1.0/subdomains\n AfterDateError:\n summary: after is not earlier than before\n value:\n timestamp: '2026-07-27T12:22:28.233751455Z'\n status: 400\n error: Invalid Param Exception\n message: after date must be earlier than before date.\n path: /v1.0/subdomains\n AfterDateGreaterThanCurrent:\n summary: after is in the future\n value:\n timestamp: '2026-07-27T12:22:39.061042798Z'\n status: 400\n error: Invalid Param Exception\n message: after date cannot be greater than the current date.\n path: /v1.0/subdomains\n BeforeDateGreaterThanCurrent:\n summary: before is in the future\n value:\n timestamp: '2026-07-27T12:22:39.609545647Z'\n status: 400\n error: Invalid Param Exception\n message: before date cannot be greater than the current date.\n path: /v1.0/subdomains\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '408':\n description: Request Timeout \u2013 Unable to fetch WHOIS data\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n error:\n summary: Error response\n value:\n timestamp: '2025-08-14T10:37:21.871Z'\n status: 408\n error: Request Timeout\n message: 'Unable to fetch whois data. Please try again. [For Technical Support email at: support@apifreaks.com]'\n path: /v1.0/subdomains/lookup\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n operationId: lookupSubdomains\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n SubDomainResponse:\n type: object\n required:\n - domain\n - status\n - query_time\n - current_page\n - total_pages\n - total_records\n - subdomains\n properties:\n domain:\n type: string\n description: The domain name for which subdomains are retrieved.\n status:\n type: boolean\n description: Indicates whether the request was successfully processed or not.\n query_time:\n type: string\n description: Timestamp showing when the API request was executed.\n current_page:\n type: integer\n description: The current page number of the paginated response.\n total_pages:\n type: integer\n description: Total number of pages available for the given query. Each page has 100 subdomain entries.\n total_records:\n type: integer\n description: Total number of subdomains found for the domain.\n subdomains:\n type: array\n description: Returns an array of subdomain objects. Each object contains detailed information about an individual subdomain.\n items:\n $ref: '#/components/schemas/SubdomainItem'\n description: Subdomain lookup response containing paginated subdomain results.\n SubdomainItem:\n type: object\n description: A single subdomain record with discovery dates.\n required:\n - subdomain\n - last_seen\n properties:\n subdomain:\n type: string\n description: The discovered subdomain associated with the given domain.\n first_seen:\n type: string\n format: date\n description: The date when the subdomain was first discovered. Can be absent for some records.\n last_seen:\n type: string\n format: date\n description: The most recent date when the subdomain was observed.\n inactive_from:\n type: string\n format: date\n description: The date from which the subdomain is considered inactive. Appears only if inactive.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type.\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path that produced the error.\n status:\n type: integer\n description: HTTP status code returned with the error.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
50223
|
-
"bulk-email-validation": "openapi: 3.1.1\ninfo:\n title: Bulk Email Validation API - Validate and Verify Emails in Bulk\n version: 1.0.0\n description: Validate up to 10 email addresses in a single POST request. Each email is processed independently. Returns an array of validation results with deliverability assessment per email, plus per-item error objects for failed validations. Maximum 10 email addresses per request.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Bulk Email Validation API Server\npaths:\n /email-validation/bulk:\n post:\n tags:\n - Email Validation APIs\n summary: Validate multiple email addresses\n description: Validates a bulk of email addresses and returns result for each. Maximum `10` email addresses per request.\n parameters:\n - name: format\n in: query\n required: false\n schema:\n type: string\n enum:\n - json\n - xml\n default: json\n description: Format of the response\n requestBody:\n required: true\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/BulkEmailRequest'\n responses:\n '200':\n description: Successful response. Each item corresponds to one requested email, in the same order as the request; invalid emails are reflected via validEmail/validSyntax on that item, not as a separate error object \u2014 every item has success=true regardless of validation outcome.\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/BulkEmailValidationResponse'\n examples:\n bulkEmailsValidated:\n summary: Mix of a valid and a syntactically invalid email\n value:\n emailResponse:\n - success: true\n email: abc.def@gmail.com\n validEmail: valid\n validSyntax: true\n domain:\n name: gmail.com\n disposable: false\n spam: false\n free: true\n validDomain: true\n catchAll: false\n account:\n role: false\n fullMailBox: false\n dns:\n mxRecord:\n - gmail-smtp-in.l.google.com.\n - alt1.gmail-smtp-in.l.google.com.\n - alt2.gmail-smtp-in.l.google.com.\n - alt3.gmail-smtp-in.l.google.com.\n - alt4.gmail-smtp-in.l.google.com.\n - success: true\n email: not-an-email\n validEmail: INVALID_EMAIL\n validSyntax: false\n domain:\n name: not-an-email\n validDomain: false\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n '400':\n description: Bad Request \u2013 Invalid request body\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n invalidBody:\n summary: emailData field missing or malformed\n value:\n timestamp: '2026-07-27T12:53:14.628Z'\n path: /v1.0/email-validation/bulk\n status: 400\n error: Invalid request body Exception\n message: Please provide data in required format in request body\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '404':\n description: Not Found \u2013 The requested resource could not be found\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Resource Not Found:\n value:\n timestamp: '2026-09-02T11:57:55.592Z'\n path: /v1.0/email-validation/bulkx\n status: 404\n error: Resource Not Found\n message: The requested resource could not be found. Please verify the URL and try again.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '408':\n description: Request Timeout\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Request Timeout:\n value:\n timestamp: '2026-06-06T13:00:00.000Z'\n path: /v1.0/email-validation/bulk\n status: 408\n error: Request Timeout\n message: Timed out while connecting to the remote URL.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '413':\n description: Payload Too Large \u2013 emailData exceeds the maximum of 10 entries per request\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Payload Too Large:\n value:\n timestamp: '2026-09-02T11:57:34.223Z'\n path: /v2/email-validation/bulk\n status: 413\n error: Payload too large Exception\n message: Maximum request body size limit exceeded\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '429':\n description: Rate Limit Exceeded\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Rate Limit Exceeded:\n value:\n timestamp: '2026-06-06T13:00:00.000Z'\n path: /v1.0/email-validation/bulk\n status: 429\n error: Too Many Requests\n message: API rate limit exceeded.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n operationId: bulkCheckEmail\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n BulkEmailValidationResponse:\n type: object\n description: Wrapper containing the per-email results array.\n required:\n - emailResponse\n properties:\n emailResponse:\n type: array\n description: Array of per-email results, one entry per requested email, in the same order as the request. Invalid emails are reflected via validEmail/validSyntax, not a separate error shape.\n items:\n $ref: '#/components/schemas/SingleEmailValidationResponse'\n SingleEmailValidationResponse:\n type: object\n required:\n - success\n - email\n - validEmail\n - validSyntax\n - domain\n properties:\n success:\n type: boolean\n description: 'Indicates the processing status of the validation request. true: completed successfully.'\n email:\n type: string\n format: email\n description: The email address submitted for validation.\n name:\n type: string\n description: Optional identifier or label provided in the request for record tracking.\n reason:\n type: string\n description: Detailed explanation returned when validEmail is not valid.\n validEmail:\n type: string\n enum:\n - valid\n - invalid\n - INVALID_EMAIL\n - unknown\n - risky\n - app_server_blocked\n description: 'Comprehensive deliverability assessment. Casing is inconsistent in the live API: syntactically invalid addresses return INVALID_EMAIL, while semantically invalid (undeliverable) addresses return lowercase invalid. risky is a documented possibility not observed during testing. app_server_blocked is returned when the recipient mail server blocked the live verification attempt (reason explains that retrying later may succeed).'\n validSyntax:\n type: boolean\n description: Validates email address format compliance with RFC 5322 standards.\n domain:\n $ref: '#/components/schemas/DomainObject'\n account:\n $ref: '#/components/schemas/AccountObject'\n dns:\n $ref: '#/components/schemas/DnsObject'\n address:\n $ref: '#/components/schemas/AddressObject'\n ip:\n type: string\n format: ip\n description: IP address provided for geolocation and security enrichment.\n description: Email validation response containing deliverability assessment and metadata.\n DomainObject:\n type: object\n required:\n - name\n - validDomain\n properties:\n name:\n type: string\n description: Extracted domain component from the email address.\n validDomain:\n type: boolean\n description: Domain validation status confirming DNS resolution capability.\n disposable:\n type: boolean\n description: Classification flag identifying domains from temporary email service providers.\n spam:\n type: boolean\n description: Reputation indicator flagging domains on spam databases.\n free:\n type: boolean\n description: Classification indicating free or consumer-grade email service providers.\n catchAll:\n type: boolean\n description: Detection flag for domains configured to accept mail for any recipient address.\n description: Domain validation details for the email address.\n AccountObject:\n type: object\n required:\n - role\n properties:\n role:\n type: boolean\n description: Detection flag identifying role-based email addresses (e.g., admin@, support@).\n fullMailBox:\n type: boolean\n description: Storage capacity status indicator for the recipient mailbox.\n description: Account-level validation details.\n DnsObject:\n type: object\n required:\n - mxRecord\n properties:\n mxRecord:\n type: array\n items:\n type: string\n description: Collection of MX (Mail Exchange) hostname records from DNS queries.\n aRecord:\n type: array\n items:\n type: string\n description: Collection of A (Address) records for the domain. Not observed in testing \u2014 may be rarely or never populated.\n description: DNS records for the email domain.\n AddressObject:\n type: object\n properties:\n validIpAddress:\n type: boolean\n description: IP recognized/reachable by the geolocation provider.\n location:\n $ref: '#/components/schemas/EmailLocation'\n security:\n $ref: '#/components/schemas/EmailSecurity'\n description: Geolocation and security enrichment data for the IP address.\n required: []\n EmailLocation:\n type: object\n description: Geolocation data derived from the IP address.\n properties:\n city:\n type: string\n description: Municipal or city name.\n district:\n type: string\n description: District or neighborhood.\n zipcode:\n type: string\n description: Postal or ZIP code.\n state_prov:\n type: string\n description: State or province.\n country_name:\n type: string\n description: Common country name.\n country_name_official:\n type: string\n description: Official country name.\n country_code2:\n type: string\n description: Two-character ISO country code.\n country_code3:\n type: string\n description: Three-character ISO country code.\n continent_name:\n type: string\n description: Continental region name.\n continent_code:\n type: string\n description: Continental region identifier.\n accuracy_radius:\n type: string\n description: Geolocation precision radius.\n confidence:\n type: string\n description: Confidence score for geolocation accuracy.\n is_eu:\n type: boolean\n description: European Union membership status.\n required: []\n EmailSecurity:\n type: object\n description: Threat and anonymity profile for the IP address.\n required:\n - threat_score\n - is_tor\n - is_proxy\n - proxy_type\n - proxy_provider\n - is_anonymous\n - is_known_attacker\n - is_spam\n - is_bot\n - is_cloud_provider\n - cloud_provider\n properties:\n threat_score:\n type: integer\n description: Quantitative risk assessment score. Higher values indicate elevated security risk.\n is_tor:\n type: boolean\n description: Detection flag for IP addresses routed through the Tor anonymity network.\n is_proxy:\n type: boolean\n description: Detection flag identifying IP addresses operating as proxy servers.\n proxy_type:\n type: string\n description: Classification of detected proxy infrastructure type (e.g. VPN, HTTP, SOCKS).\n proxy_provider:\n type: string\n description: Identified service provider operating the proxy infrastructure.\n is_anonymous:\n type: boolean\n description: Anonymization detection flag for IP addresses using identity obfuscation techniques.\n is_known_attacker:\n type: boolean\n description: Threat intelligence flag for IP addresses documented as confirmed malicious sources.\n is_spam:\n type: boolean\n description: Reputation flag for IP addresses associated with spam transmission.\n is_bot:\n type: boolean\n description: Automated traffic detection flag for IP addresses from bot networks.\n is_cloud_provider:\n type: boolean\n description: Infrastructure classification flag for IP addresses from cloud computing providers.\n cloud_provider:\n type: string\n description: Identified cloud infrastructure or hosting service provider name.\n BulkEmailRequest:\n type: object\n description: Request body for bulk email validation.\n required:\n - emailData\n properties:\n emailData:\n type: array\n description: Array of email objects to validate. Maximum 10 per request.\n maxItems: 10\n items:\n $ref: '#/components/schemas/BulkEmailRequestItem'\n BulkEmailRequestItem:\n type: object\n description: A single email entry in a bulk validation request.\n required:\n - email\n properties:\n email:\n type: string\n format: email\n description: Email address to validate.\n name:\n type: string\n description: Optional name or label.\n ip:\n type: string\n format: ip\n description: Optional IP address for enrichment.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type.\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path that produced the error.\n status:\n type: integer\n description: HTTP status code returned with the error.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\n X-Concurrent-Threads:\n description: Specifies the maximum number of concurrent requests allowed.\n schema:\n type: integer\n X-Concurrent-Threads-Active:\n description: Indicates the number of active concurrent requests being processed.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
50224
|
-
"email-checker": "openapi: 3.1.1\ninfo:\n title: Email Checker API - Real-Time Validation, Deliverability & Risk Signals\n version: 1.0.0\n description: Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/invalid/unknown/risky/app_server_blocked status.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Email Checker API Server\npaths:\n /email-validation/single:\n post:\n tags:\n - Email Validation APIs\n summary: Validate a single email\n description: Validates a single email address and returns result.\n parameters:\n - name: format\n in: query\n required: false\n schema:\n type: string\n enum:\n - json\n - xml\n description: Format of the response\n requestBody:\n required: true\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/EmailCheckRequest'\n responses:\n '200':\n description: Successful response with Email Validation\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/SingleEmailValidationResponse'\n examples:\n validEmail:\n summary: Valid, deliverable email\n value:\n success: true\n email: abc.def@gmail.com\n validEmail: valid\n validSyntax: true\n domain:\n name: gmail.com\n disposable: false\n spam: false\n free: true\n validDomain: true\n catchAll: false\n account:\n role: false\n fullMailBox: false\n dns:\n mxRecord:\n - gmail-smtp-in.l.google.com.\n - alt1.gmail-smtp-in.l.google.com.\n - alt2.gmail-smtp-in.l.google.com.\n - alt3.gmail-smtp-in.l.google.com.\n - alt4.gmail-smtp-in.l.google.com.\n invalidSyntax:\n summary: Syntactically invalid email \u2014 domain/account/dns are minimal or absent\n value:\n success: true\n email: not-an-email\n validEmail: INVALID_EMAIL\n validSyntax: false\n domain:\n name: not-an-email\n validDomain: false\n noMxRecord:\n summary: Valid syntax, domain has no MX record\n value:\n success: true\n email: test@nonexistentdomainxyz123abc.com\n validEmail: invalid\n validSyntax: true\n reason: mx record does not exist.\n domain:\n name: nonexistentdomainxyz123abc.com\n disposable: false\n spam: false\n free: false\n validDomain: false\n catchAll: false\n account:\n role: false\n withIp:\n summary: With ip \u2014 adds geolocation/security enrichment under address\n value:\n success: true\n email: abc.def@gmail.com\n validEmail: valid\n validSyntax: true\n domain:\n name: gmail.com\n disposable: false\n spam: false\n free: true\n validDomain: true\n catchAll: false\n account:\n role: false\n fullMailBox: false\n dns:\n mxRecord:\n - gmail-smtp-in.l.google.com.\n - alt1.gmail-smtp-in.l.google.com.\n - alt2.gmail-smtp-in.l.google.com.\n - alt3.gmail-smtp-in.l.google.com.\n - alt4.gmail-smtp-in.l.google.com.\n ip: 8.8.8.8\n address:\n validIpAddress: true\n location:\n city: Mountain View\n district: Santa Clara\n confidence: low\n zipcode: 94043-1351\n state_prov: California\n country_name: United States\n continent_name: North America\n continent_code: NA\n country_code2: US\n country_code3: USA\n country_name_official: United States of America\n accuracy_radius: '27.42'\n is_eu: false\n security:\n threat_score: 5\n is_tor: false\n is_proxy: false\n proxy_type: ''\n proxy_provider: ''\n is_anonymous: false\n is_known_attacker: false\n is_spam: false\n is_bot: false\n is_cloud_provider: true\n cloud_provider: Google LLC\n appServerBlocked:\n summary: Valid syntax, but the recipient mail server blocked the verification attempt\n value:\n success: true\n email: randomuser98765zzz@gmx.com\n validEmail: app_server_blocked\n validSyntax: true\n reason: We are unable to determine the validity of email at the moment. Please try later.\n domain:\n name: gmx.com\n disposable: false\n spam: false\n free: true\n validDomain: true\n catchAll: false\n account:\n role: false\n dns:\n mxRecord:\n - mx00.gmx.net.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n '400':\n description: Bad Request \u2013 Invalid request body\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n missingEmail:\n summary: email field missing from request body\n value:\n timestamp: '2026-09-02T11:56:23.462Z'\n path: /v2/email-validation/single\n status: 400\n error: Missing or Invalid Parameters\n message: Please pass valid value for 'email' in body.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n '404':\n description: Not Found \u2013 The requested resource could not be found\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Resource Not Found:\n value:\n timestamp: '2026-09-02T11:56:23.937Z'\n path: /v1.0/email-validation/singlex\n status: 404\n error: Resource Not Found\n message: The requested resource could not be found. Please verify the URL and try again.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n '408':\n description: Request Timeout\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Request Timeout:\n value:\n timestamp: '2026-06-06T13:00:00.000Z'\n path: /v1.0/email-validation/single\n status: 408\n error: Request Timeout\n message: Timed out while connecting to the remote URL.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n '429':\n description: Rate Limit Exceeded\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Rate Limit Exceeded:\n value:\n timestamp: '2026-06-06T13:00:00.000Z'\n path: /v1.0/email-validation/single\n status: 429\n error: Too Many Requests\n message: API rate limit exceeded.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n operationId: checkEmail\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n SingleEmailValidationResponse:\n type: object\n required:\n - success\n - email\n - validEmail\n - validSyntax\n - domain\n properties:\n success:\n type: boolean\n description: 'Indicates the processing status of the validation request. true: completed successfully.'\n email:\n type: string\n format: email\n description: The email address submitted for validation.\n name:\n type: string\n description: Optional identifier or label provided in the request for record tracking.\n reason:\n type: string\n description: Detailed explanation returned when validEmail is not valid.\n validEmail:\n type: string\n enum:\n - valid\n - invalid\n - INVALID_EMAIL\n - unknown\n - risky\n - app_server_blocked\n description: 'Comprehensive deliverability assessment. Casing is inconsistent in the live API: syntactically invalid addresses return INVALID_EMAIL, while semantically invalid (undeliverable) addresses return lowercase invalid. risky is a documented possibility not observed during testing. app_server_blocked is returned when the recipient mail server blocked the live verification attempt (reason explains that retrying later may succeed).'\n validSyntax:\n type: boolean\n description: Validates email address format compliance with RFC 5322 standards.\n domain:\n $ref: '#/components/schemas/DomainObject'\n account:\n $ref: '#/components/schemas/AccountObject'\n dns:\n $ref: '#/components/schemas/DnsObject'\n address:\n $ref: '#/components/schemas/AddressObject'\n ip:\n type: string\n format: ip\n description: IP address provided for geolocation and security enrichment.\n description: Email validation response containing deliverability assessment and metadata.\n DomainObject:\n type: object\n required:\n - name\n - validDomain\n properties:\n name:\n type: string\n description: Extracted domain component from the email address.\n validDomain:\n type: boolean\n description: Domain validation status confirming DNS resolution capability.\n disposable:\n type: boolean\n description: Classification flag identifying domains from temporary email service providers.\n spam:\n type: boolean\n description: Reputation indicator flagging domains on spam databases.\n free:\n type: boolean\n description: Classification indicating free or consumer-grade email service providers.\n catchAll:\n type: boolean\n description: Detection flag for domains configured to accept mail for any recipient address.\n description: Domain validation details for the email address.\n AccountObject:\n type: object\n required:\n - role\n properties:\n role:\n type: boolean\n description: Detection flag identifying role-based email addresses (e.g., admin@, support@).\n fullMailBox:\n type: boolean\n description: Storage capacity status indicator for the recipient mailbox.\n description: Account-level validation details.\n DnsObject:\n type: object\n required:\n - mxRecord\n properties:\n mxRecord:\n type: array\n items:\n type: string\n description: Collection of MX (Mail Exchange) hostname records from DNS queries.\n aRecord:\n type: array\n items:\n type: string\n description: Collection of A (Address) records for the domain. Not observed in testing \u2014 may be rarely or never populated.\n description: DNS records for the email domain.\n AddressObject:\n type: object\n properties:\n validIpAddress:\n type: boolean\n description: IP recognized/reachable by the geolocation provider.\n location:\n $ref: '#/components/schemas/EmailLocation'\n security:\n $ref: '#/components/schemas/EmailSecurity'\n description: Geolocation and security enrichment data for the IP address.\n required: []\n EmailLocation:\n type: object\n description: Geolocation data derived from the IP address.\n properties:\n city:\n type: string\n description: Municipal or city name.\n district:\n type: string\n description: District or neighborhood.\n zipcode:\n type: string\n description: Postal or ZIP code.\n state_prov:\n type: string\n description: State or province.\n country_name:\n type: string\n description: Common country name.\n country_name_official:\n type: string\n description: Official country name.\n country_code2:\n type: string\n description: Two-character ISO country code.\n country_code3:\n type: string\n description: Three-character ISO country code.\n continent_name:\n type: string\n description: Continental region name.\n continent_code:\n type: string\n description: Continental region identifier.\n accuracy_radius:\n type: string\n description: Geolocation precision radius.\n confidence:\n type: string\n description: Confidence score for geolocation accuracy.\n is_eu:\n type: boolean\n description: European Union membership status.\n required: []\n EmailSecurity:\n type: object\n description: Threat and anonymity profile for the IP address.\n required:\n - threat_score\n - is_tor\n - is_proxy\n - proxy_type\n - proxy_provider\n - is_anonymous\n - is_known_attacker\n - is_spam\n - is_bot\n - is_cloud_provider\n - cloud_provider\n properties:\n threat_score:\n type: integer\n description: Quantitative risk assessment score. Higher values indicate elevated security risk.\n is_tor:\n type: boolean\n description: Detection flag for IP addresses routed through the Tor anonymity network.\n is_proxy:\n type: boolean\n description: Detection flag identifying IP addresses operating as proxy servers.\n proxy_type:\n type: string\n description: Classification of detected proxy infrastructure type (e.g. VPN, HTTP, SOCKS).\n proxy_provider:\n type: string\n description: Identified service provider operating the proxy infrastructure.\n is_anonymous:\n type: boolean\n description: Anonymization detection flag for IP addresses using identity obfuscation techniques.\n is_known_attacker:\n type: boolean\n description: Threat intelligence flag for IP addresses documented as confirmed malicious sources.\n is_spam:\n type: boolean\n description: Reputation flag for IP addresses associated with spam transmission.\n is_bot:\n type: boolean\n description: Automated traffic detection flag for IP addresses from bot networks.\n is_cloud_provider:\n type: boolean\n description: Infrastructure classification flag for IP addresses from cloud computing providers.\n cloud_provider:\n type: string\n description: Identified cloud infrastructure or hosting service provider name.\n EmailCheckRequest:\n type: object\n description: Request body for email validation.\n required:\n - email\n properties:\n email:\n type: string\n format: email\n description: Email address to validate.\n name:\n type: string\n description: Optional name or label for record tracking.\n ip:\n type: string\n format: ip\n description: Optional IP address for geolocation and security enrichment.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type.\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path that produced the error.\n status:\n type: integer\n description: HTTP status code returned with the error.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\n X-Concurrent-Threads:\n description: Specifies the maximum number of concurrent requests allowed.\n schema:\n type: integer\n X-Concurrent-Threads-Active:\n description: Indicates the number of active concurrent requests being processed.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
52987
|
+
"bulk-email-validation": "openapi: 3.1.1\ninfo:\n title: Bulk Email Validation API - Validate and Verify Emails in Bulk\n version: 1.0.0\n description: Validate up to 10 email addresses in a single POST request. Each email is processed independently. Returns an array of validation results with deliverability assessment per email (valid/accept_all/invalid/unknown/risky/app_server_blocked), plus per-item error objects for failed validations. Maximum 10 email addresses per request.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Bulk Email Validation API Server\npaths:\n /email-validation/bulk:\n post:\n tags:\n - Email Validation APIs\n summary: Validate multiple email addresses\n description: Validates a bulk of email addresses and returns result for each. Maximum `10` email addresses per request.\n parameters:\n - name: format\n in: query\n required: false\n schema:\n type: string\n enum:\n - json\n - xml\n default: json\n description: Format of the response\n requestBody:\n required: true\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/BulkEmailRequest'\n responses:\n '200':\n description: Successful response. Each item corresponds to one requested email, in the same order as the request; invalid emails are reflected via validEmail/validSyntax on that item, not as a separate error object \u2014 every item has success=true regardless of validation outcome.\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/BulkEmailValidationResponse'\n examples:\n bulkEmailsValidated:\n summary: Mix of valid, syntactically invalid, accept_all, null-MX invalid, and unknown (no-MX probe) results\n value:\n emailResponse:\n - success: true\n email: abc.def@gmail.com\n validEmail: valid\n validSyntax: true\n domain:\n name: gmail.com\n disposable: false\n spam: false\n free: true\n validDomain: true\n catchAll: false\n account:\n role: false\n fullMailBox: false\n dns:\n mxRecord:\n - gmail-smtp-in.l.google.com.\n - alt1.gmail-smtp-in.l.google.com.\n - alt2.gmail-smtp-in.l.google.com.\n - alt3.gmail-smtp-in.l.google.com.\n - alt4.gmail-smtp-in.l.google.com.\n - success: true\n email: not-an-email\n validEmail: INVALID_EMAIL\n validSyntax: false\n domain:\n name: not-an-email\n validDomain: false\n - success: true\n email: random12345@yahoo.com\n validEmail: accept_all\n validSyntax: true\n reason: domain accepts all addresses.\n domain:\n name: yahoo.com\n disposable: false\n spam: false\n free: true\n validDomain: true\n catchAll: true\n account:\n role: false\n fullMailBox: false\n dns:\n mxRecord:\n - mta5.am0.yahoodns.net.\n - mta6.am0.yahoodns.net.\n - mta7.am0.yahoodns.net.\n - success: true\n email: test@example.com\n validEmail: invalid\n validSyntax: true\n reason: domain does not accept mail.\n domain:\n name: example.com\n disposable: true\n spam: false\n free: false\n validDomain: true\n catchAll: false\n account:\n role: false\n dns:\n mxRecord:\n - .\n - success: true\n email: test@neverssl.com\n validEmail: unknown\n validSyntax: true\n reason: We are unable to determine if email is valid or invalid.\n domain:\n name: neverssl.com\n disposable: false\n spam: false\n free: false\n validDomain: true\n catchAll: false\n account:\n role: false\n dns:\n aRecord:\n - 34.223.124.45\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n X-Concurrent-Threads:\n $ref: '#/components/headers/X-Concurrent-Threads'\n X-Concurrent-Threads-Active:\n $ref: '#/components/headers/X-Concurrent-Threads-Active'\n '400':\n description: Bad Request \u2013 Invalid request body\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n invalidBody:\n summary: emailData field missing or malformed\n value:\n timestamp: '2026-07-27T12:53:14.628Z'\n path: /v1.0/email-validation/bulk\n status: 400\n error: Invalid request body Exception\n message: Please provide data in required format in request body\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '404':\n description: Not Found \u2013 The requested resource could not be found\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Resource Not Found:\n value:\n timestamp: '2026-09-02T11:57:55.592Z'\n path: /v1.0/email-validation/bulkx\n status: 404\n error: Resource Not Found\n message: The requested resource could not be found. Please verify the URL and try again.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '408':\n description: Request Timeout\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Request Timeout:\n value:\n timestamp: '2026-06-06T13:00:00.000Z'\n path: /v1.0/email-validation/bulk\n status: 408\n error: Request Timeout\n message: Timed out while connecting to the remote URL.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '413':\n description: Payload Too Large \u2013 emailData exceeds the maximum of 10 entries per request\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Payload Too Large:\n value:\n timestamp: '2026-09-02T11:57:34.223Z'\n path: /v2/email-validation/bulk\n status: 413\n error: Payload too large Exception\n message: Maximum request body size limit exceeded\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '429':\n description: Rate Limit Exceeded\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n Rate Limit Exceeded:\n value:\n timestamp: '2026-06-06T13:00:00.000Z'\n path: /v1.0/email-validation/bulk\n status: 429\n error: Too Many Requests\n message: API rate limit exceeded.\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n operationId: bulkCheckEmail\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n BulkEmailValidationResponse:\n type: object\n description: Wrapper containing the per-email results array.\n required:\n - emailResponse\n properties:\n emailResponse:\n type: array\n description: Array of per-email results, one entry per requested email, in the same order as the request. Invalid emails are reflected via validEmail/validSyntax, not a separate error shape.\n items:\n $ref: '#/components/schemas/SingleEmailValidationResponse'\n SingleEmailValidationResponse:\n type: object\n required:\n - success\n - email\n - validEmail\n - validSyntax\n - domain\n properties:\n success:\n type: boolean\n description: 'Indicates the processing status of the validation request. true: completed successfully.'\n email:\n type: string\n format: email\n description: The email address submitted for validation.\n name:\n type: string\n description: Optional identifier or label provided in the request for record tracking.\n reason:\n type: string\n description: Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid.\n validEmail:\n type: string\n enum:\n - valid\n - accept_all\n - invalid\n - INVALID_EMAIL\n - unknown\n - risky\n - app_server_blocked\n description: 'Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed \u2014 see domain.catchAll, reason ''domain accepts all addresses.''. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid \u2014 this is a known API bug, handle it defensively as equivalent to invalid.'\n validSyntax:\n type: boolean\n description: Validates email address format compliance with RFC 5322 standards.\n domain:\n $ref: '#/components/schemas/DomainObject'\n account:\n $ref: '#/components/schemas/AccountObject'\n dns:\n $ref: '#/components/schemas/DnsObject'\n address:\n $ref: '#/components/schemas/AddressObject'\n ip:\n type: string\n format: ip\n description: IP address provided for geolocation and security enrichment.\n description: Email validation response containing deliverability assessment and metadata.\n DomainObject:\n type: object\n required:\n - name\n - validDomain\n properties:\n name:\n type: string\n description: Extracted domain component from the email address.\n validDomain:\n type: boolean\n description: Domain validation status confirming DNS resolution capability.\n disposable:\n type: boolean\n description: Classification flag identifying domains from temporary email service providers.\n spam:\n type: boolean\n description: Reputation indicator flagging domains on spam databases.\n free:\n type: boolean\n description: Classification indicating free or consumer-grade email service providers.\n catchAll:\n type: boolean\n description: Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all.\n description: Domain validation details for the email address.\n AccountObject:\n type: object\n required:\n - role\n properties:\n role:\n type: boolean\n description: Detection flag identifying role-based email addresses (e.g., admin@, support@).\n fullMailBox:\n type: boolean\n description: Storage capacity status indicator for the recipient mailbox.\n description: Account-level validation details.\n DnsObject:\n type: object\n required: []\n properties:\n mxRecord:\n type: array\n items:\n type: string\n description: Every MX hostname at the domain's lowest preference (not just one). [\".\"] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind \u2014 check aRecord in that case.\n aRecord:\n type: array\n items:\n type: string\n description: Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host.\n description: DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.\n AddressObject:\n type: object\n properties:\n validIpAddress:\n type: boolean\n description: IP recognized/reachable by the geolocation provider.\n location:\n $ref: '#/components/schemas/EmailLocation'\n security:\n $ref: '#/components/schemas/EmailSecurity'\n description: Geolocation and security enrichment data for the IP address.\n required: []\n EmailLocation:\n type: object\n description: Geolocation data derived from the IP address.\n properties:\n city:\n type: string\n description: Municipal or city name.\n district:\n type: string\n description: District or neighborhood.\n zipcode:\n type: string\n description: Postal or ZIP code.\n state_prov:\n type: string\n description: State or province.\n country_name:\n type: string\n description: Common country name.\n country_name_official:\n type: string\n description: Official country name.\n country_code2:\n type: string\n description: Two-character ISO country code.\n country_code3:\n type: string\n description: Three-character ISO country code.\n continent_name:\n type: string\n description: Continental region name.\n continent_code:\n type: string\n description: Continental region identifier.\n accuracy_radius:\n type: string\n description: Geolocation precision radius.\n confidence:\n type: string\n description: Confidence score for geolocation accuracy.\n is_eu:\n type: boolean\n description: European Union membership status.\n required: []\n EmailSecurity:\n type: object\n description: Threat and anonymity profile for the IP address.\n required:\n - threat_score\n - is_tor\n - is_proxy\n - proxy_type\n - proxy_provider\n - is_anonymous\n - is_known_attacker\n - is_spam\n - is_bot\n - is_cloud_provider\n - cloud_provider\n properties:\n threat_score:\n type: integer\n description: Quantitative risk assessment score. Higher values indicate elevated security risk.\n is_tor:\n type: boolean\n description: Detection flag for IP addresses routed through the Tor anonymity network.\n is_proxy:\n type: boolean\n description: Detection flag identifying IP addresses operating as proxy servers.\n proxy_type:\n type: string\n description: Classification of detected proxy infrastructure type (e.g. VPN, HTTP, SOCKS).\n proxy_provider:\n type: string\n description: Identified service provider operating the proxy infrastructure.\n is_anonymous:\n type: boolean\n description: Anonymization detection flag for IP addresses using identity obfuscation techniques.\n is_known_attacker:\n type: boolean\n description: Threat intelligence flag for IP addresses documented as confirmed malicious sources.\n is_spam:\n type: boolean\n description: Reputation flag for IP addresses associated with spam transmission.\n is_bot:\n type: boolean\n description: Automated traffic detection flag for IP addresses from bot networks.\n is_cloud_provider:\n type: boolean\n description: Infrastructure classification flag for IP addresses from cloud computing providers.\n cloud_provider:\n type: string\n description: Identified cloud infrastructure or hosting service provider name.\n BulkEmailRequest:\n type: object\n description: Request body for bulk email validation.\n required:\n - emailData\n properties:\n emailData:\n type: array\n description: Array of email objects to validate. Maximum 10 per request.\n maxItems: 10\n items:\n $ref: '#/components/schemas/BulkEmailRequestItem'\n BulkEmailRequestItem:\n type: object\n description: A single email entry in a bulk validation request.\n required:\n - email\n properties:\n email:\n type: string\n format: email\n description: Email address to validate.\n name:\n type: string\n description: Optional name or label.\n ip:\n type: string\n format: ip\n description: Optional IP address for enrichment.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type.\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path that produced the error.\n status:\n type: integer\n description: HTTP status code returned with the error.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\n X-Concurrent-Threads:\n description: Specifies the maximum number of concurrent requests allowed.\n schema:\n type: integer\n X-Concurrent-Threads-Active:\n description: Indicates the number of active concurrent requests being processed.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
52988
|
+
"email-checker": `openapi: 3.1.1
|
|
52989
|
+
info:
|
|
52990
|
+
title: Email Checker API - Real-Time Validation, Deliverability & Risk Signals
|
|
52991
|
+
version: 1.0.0
|
|
52992
|
+
description: Validate a single email address and receive comprehensive results including syntax validation, domain verification, account detection, DNS records (MX and A records), and optional IP-based geolocation and security enrichment. Returns deliverability assessment with valid/accept_all/invalid/unknown/risky/app_server_blocked status.
|
|
52993
|
+
contact:
|
|
52994
|
+
name: APIFreaks Support
|
|
52995
|
+
url: https://apifreaks.com/contact
|
|
52996
|
+
email: support@apifreaks.com
|
|
52997
|
+
servers:
|
|
52998
|
+
- url: https://api.apifreaks.com/v1.0
|
|
52999
|
+
description: Email Checker API Server
|
|
53000
|
+
paths:
|
|
53001
|
+
/email-validation/single:
|
|
53002
|
+
post:
|
|
53003
|
+
tags:
|
|
53004
|
+
- Email Validation APIs
|
|
53005
|
+
summary: Validate a single email
|
|
53006
|
+
description: Validates a single email address and returns result.
|
|
53007
|
+
parameters:
|
|
53008
|
+
- name: format
|
|
53009
|
+
in: query
|
|
53010
|
+
required: false
|
|
53011
|
+
schema:
|
|
53012
|
+
type: string
|
|
53013
|
+
enum:
|
|
53014
|
+
- json
|
|
53015
|
+
- xml
|
|
53016
|
+
description: Format of the response
|
|
53017
|
+
requestBody:
|
|
53018
|
+
required: true
|
|
53019
|
+
content:
|
|
53020
|
+
application/json:
|
|
53021
|
+
schema:
|
|
53022
|
+
$ref: '#/components/schemas/EmailCheckRequest'
|
|
53023
|
+
responses:
|
|
53024
|
+
'200':
|
|
53025
|
+
description: Successful response with Email Validation
|
|
53026
|
+
content:
|
|
53027
|
+
application/json:
|
|
53028
|
+
schema:
|
|
53029
|
+
$ref: '#/components/schemas/SingleEmailValidationResponse'
|
|
53030
|
+
examples:
|
|
53031
|
+
validEmail:
|
|
53032
|
+
summary: Valid, deliverable email
|
|
53033
|
+
value:
|
|
53034
|
+
success: true
|
|
53035
|
+
email: abc.def@gmail.com
|
|
53036
|
+
validEmail: valid
|
|
53037
|
+
validSyntax: true
|
|
53038
|
+
domain:
|
|
53039
|
+
name: gmail.com
|
|
53040
|
+
disposable: false
|
|
53041
|
+
spam: false
|
|
53042
|
+
free: true
|
|
53043
|
+
validDomain: true
|
|
53044
|
+
catchAll: false
|
|
53045
|
+
account:
|
|
53046
|
+
role: false
|
|
53047
|
+
fullMailBox: false
|
|
53048
|
+
dns:
|
|
53049
|
+
mxRecord:
|
|
53050
|
+
- gmail-smtp-in.l.google.com.
|
|
53051
|
+
- alt1.gmail-smtp-in.l.google.com.
|
|
53052
|
+
- alt2.gmail-smtp-in.l.google.com.
|
|
53053
|
+
- alt3.gmail-smtp-in.l.google.com.
|
|
53054
|
+
- alt4.gmail-smtp-in.l.google.com.
|
|
53055
|
+
invalidSyntax:
|
|
53056
|
+
summary: Syntactically invalid email \u2014 domain/account/dns are minimal or absent
|
|
53057
|
+
value:
|
|
53058
|
+
success: true
|
|
53059
|
+
email: not-an-email
|
|
53060
|
+
validEmail: INVALID_EMAIL
|
|
53061
|
+
validSyntax: false
|
|
53062
|
+
domain:
|
|
53063
|
+
name: not-an-email
|
|
53064
|
+
validDomain: false
|
|
53065
|
+
nonexistentDomain:
|
|
53066
|
+
summary: Valid syntax, domain does not exist (NXDOMAIN)
|
|
53067
|
+
value:
|
|
53068
|
+
success: true
|
|
53069
|
+
email: test@nonexistentdomainxyz123abc.com
|
|
53070
|
+
validEmail: invalid
|
|
53071
|
+
validSyntax: true
|
|
53072
|
+
reason: mx record does not exist.
|
|
53073
|
+
domain:
|
|
53074
|
+
name: nonexistentdomainxyz123abc.com
|
|
53075
|
+
disposable: false
|
|
53076
|
+
spam: false
|
|
53077
|
+
free: false
|
|
53078
|
+
validDomain: false
|
|
53079
|
+
catchAll: false
|
|
53080
|
+
account:
|
|
53081
|
+
role: false
|
|
53082
|
+
acceptAll:
|
|
53083
|
+
summary: Catch-all domain accepted the recipient \u2014 mailbox unconfirmed
|
|
53084
|
+
value:
|
|
53085
|
+
success: true
|
|
53086
|
+
email: random12345@yahoo.com
|
|
53087
|
+
validEmail: accept_all
|
|
53088
|
+
validSyntax: true
|
|
53089
|
+
reason: domain accepts all addresses.
|
|
53090
|
+
domain:
|
|
53091
|
+
name: yahoo.com
|
|
53092
|
+
disposable: false
|
|
53093
|
+
spam: false
|
|
53094
|
+
free: true
|
|
53095
|
+
validDomain: true
|
|
53096
|
+
catchAll: true
|
|
53097
|
+
account:
|
|
53098
|
+
role: false
|
|
53099
|
+
fullMailBox: false
|
|
53100
|
+
dns:
|
|
53101
|
+
mxRecord:
|
|
53102
|
+
- mta5.am0.yahoodns.net.
|
|
53103
|
+
- mta6.am0.yahoodns.net.
|
|
53104
|
+
- mta7.am0.yahoodns.net.
|
|
53105
|
+
nullMxDomain:
|
|
53106
|
+
summary: Domain publishes a null MX (single ".") \u2014 accepts no mail at all
|
|
53107
|
+
value:
|
|
53108
|
+
success: true
|
|
53109
|
+
email: test@example.com
|
|
53110
|
+
validEmail: invalid
|
|
53111
|
+
validSyntax: true
|
|
53112
|
+
reason: domain does not accept mail.
|
|
53113
|
+
domain:
|
|
53114
|
+
name: example.com
|
|
53115
|
+
disposable: true
|
|
53116
|
+
spam: false
|
|
53117
|
+
free: false
|
|
53118
|
+
validDomain: true
|
|
53119
|
+
catchAll: false
|
|
53120
|
+
account:
|
|
53121
|
+
role: false
|
|
53122
|
+
dns:
|
|
53123
|
+
mxRecord:
|
|
53124
|
+
- .
|
|
53125
|
+
noMxAddressOnly:
|
|
53126
|
+
summary: Domain has no MX record but a working A record \u2014 gets a real SMTP probe
|
|
53127
|
+
value:
|
|
53128
|
+
success: true
|
|
53129
|
+
email: test@neverssl.com
|
|
53130
|
+
validEmail: unknown
|
|
53131
|
+
validSyntax: true
|
|
53132
|
+
reason: We are unable to determine if email is valid or invalid.
|
|
53133
|
+
domain:
|
|
53134
|
+
name: neverssl.com
|
|
53135
|
+
disposable: false
|
|
53136
|
+
spam: false
|
|
53137
|
+
free: false
|
|
53138
|
+
validDomain: true
|
|
53139
|
+
catchAll: false
|
|
53140
|
+
account:
|
|
53141
|
+
role: false
|
|
53142
|
+
dns:
|
|
53143
|
+
aRecord:
|
|
53144
|
+
- 34.223.124.45
|
|
53145
|
+
withIp:
|
|
53146
|
+
summary: With ip \u2014 adds geolocation/security enrichment under address
|
|
53147
|
+
value:
|
|
53148
|
+
success: true
|
|
53149
|
+
email: abc.def@gmail.com
|
|
53150
|
+
validEmail: valid
|
|
53151
|
+
validSyntax: true
|
|
53152
|
+
domain:
|
|
53153
|
+
name: gmail.com
|
|
53154
|
+
disposable: false
|
|
53155
|
+
spam: false
|
|
53156
|
+
free: true
|
|
53157
|
+
validDomain: true
|
|
53158
|
+
catchAll: false
|
|
53159
|
+
account:
|
|
53160
|
+
role: false
|
|
53161
|
+
fullMailBox: false
|
|
53162
|
+
dns:
|
|
53163
|
+
mxRecord:
|
|
53164
|
+
- gmail-smtp-in.l.google.com.
|
|
53165
|
+
- alt1.gmail-smtp-in.l.google.com.
|
|
53166
|
+
- alt2.gmail-smtp-in.l.google.com.
|
|
53167
|
+
- alt3.gmail-smtp-in.l.google.com.
|
|
53168
|
+
- alt4.gmail-smtp-in.l.google.com.
|
|
53169
|
+
ip: 8.8.8.8
|
|
53170
|
+
address:
|
|
53171
|
+
validIpAddress: true
|
|
53172
|
+
location:
|
|
53173
|
+
city: Mountain View
|
|
53174
|
+
district: Santa Clara
|
|
53175
|
+
confidence: low
|
|
53176
|
+
zipcode: 94043-1351
|
|
53177
|
+
state_prov: California
|
|
53178
|
+
country_name: United States
|
|
53179
|
+
continent_name: North America
|
|
53180
|
+
continent_code: NA
|
|
53181
|
+
country_code2: US
|
|
53182
|
+
country_code3: USA
|
|
53183
|
+
country_name_official: United States of America
|
|
53184
|
+
accuracy_radius: '27.42'
|
|
53185
|
+
is_eu: false
|
|
53186
|
+
security:
|
|
53187
|
+
threat_score: 5
|
|
53188
|
+
is_tor: false
|
|
53189
|
+
is_proxy: false
|
|
53190
|
+
proxy_type: ''
|
|
53191
|
+
proxy_provider: ''
|
|
53192
|
+
is_anonymous: false
|
|
53193
|
+
is_known_attacker: false
|
|
53194
|
+
is_spam: false
|
|
53195
|
+
is_bot: false
|
|
53196
|
+
is_cloud_provider: true
|
|
53197
|
+
cloud_provider: Google LLC
|
|
53198
|
+
appServerBlocked:
|
|
53199
|
+
summary: Valid syntax, but the recipient mail server blocked the verification attempt
|
|
53200
|
+
value:
|
|
53201
|
+
success: true
|
|
53202
|
+
email: randomuser98765zzz@gmx.com
|
|
53203
|
+
validEmail: app_server_blocked
|
|
53204
|
+
validSyntax: true
|
|
53205
|
+
reason: We are unable to determine the validity of email at the moment. Please try later.
|
|
53206
|
+
domain:
|
|
53207
|
+
name: gmx.com
|
|
53208
|
+
disposable: false
|
|
53209
|
+
spam: false
|
|
53210
|
+
free: true
|
|
53211
|
+
validDomain: true
|
|
53212
|
+
catchAll: false
|
|
53213
|
+
account:
|
|
53214
|
+
role: false
|
|
53215
|
+
dns:
|
|
53216
|
+
mxRecord:
|
|
53217
|
+
- mx00.gmx.net.
|
|
53218
|
+
headers:
|
|
53219
|
+
X-AF-Credits-Cost:
|
|
53220
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53221
|
+
X-Concurrent-Threads:
|
|
53222
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53223
|
+
X-Concurrent-Threads-Active:
|
|
53224
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53225
|
+
'400':
|
|
53226
|
+
description: Bad Request \u2013 Invalid request body
|
|
53227
|
+
content:
|
|
53228
|
+
application/json:
|
|
53229
|
+
schema:
|
|
53230
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53231
|
+
examples:
|
|
53232
|
+
missingEmail:
|
|
53233
|
+
summary: email field missing from request body
|
|
53234
|
+
value:
|
|
53235
|
+
timestamp: '2026-09-02T11:56:23.462Z'
|
|
53236
|
+
path: /v2/email-validation/single
|
|
53237
|
+
status: 400
|
|
53238
|
+
error: Missing or Invalid Parameters
|
|
53239
|
+
message: Please pass valid value for 'email' in body.
|
|
53240
|
+
headers:
|
|
53241
|
+
X-AF-Credits-Cost:
|
|
53242
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53243
|
+
X-Concurrent-Threads:
|
|
53244
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53245
|
+
X-Concurrent-Threads-Active:
|
|
53246
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53247
|
+
'404':
|
|
53248
|
+
description: Not Found \u2013 The requested resource could not be found
|
|
53249
|
+
content:
|
|
53250
|
+
application/json:
|
|
53251
|
+
schema:
|
|
53252
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53253
|
+
examples:
|
|
53254
|
+
Resource Not Found:
|
|
53255
|
+
value:
|
|
53256
|
+
timestamp: '2026-09-02T11:56:23.937Z'
|
|
53257
|
+
path: /v1.0/email-validation/singlex
|
|
53258
|
+
status: 404
|
|
53259
|
+
error: Resource Not Found
|
|
53260
|
+
message: The requested resource could not be found. Please verify the URL and try again.
|
|
53261
|
+
headers:
|
|
53262
|
+
X-AF-Credits-Cost:
|
|
53263
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53264
|
+
X-Concurrent-Threads:
|
|
53265
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53266
|
+
X-Concurrent-Threads-Active:
|
|
53267
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53268
|
+
'408':
|
|
53269
|
+
description: Request Timeout
|
|
53270
|
+
content:
|
|
53271
|
+
application/json:
|
|
53272
|
+
schema:
|
|
53273
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53274
|
+
examples:
|
|
53275
|
+
Request Timeout:
|
|
53276
|
+
value:
|
|
53277
|
+
timestamp: '2026-06-06T13:00:00.000Z'
|
|
53278
|
+
path: /v1.0/email-validation/single
|
|
53279
|
+
status: 408
|
|
53280
|
+
error: Request Timeout
|
|
53281
|
+
message: Timed out while connecting to the remote URL.
|
|
53282
|
+
headers:
|
|
53283
|
+
X-AF-Credits-Cost:
|
|
53284
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53285
|
+
X-Concurrent-Threads:
|
|
53286
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53287
|
+
X-Concurrent-Threads-Active:
|
|
53288
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53289
|
+
'429':
|
|
53290
|
+
description: Rate Limit Exceeded
|
|
53291
|
+
content:
|
|
53292
|
+
application/json:
|
|
53293
|
+
schema:
|
|
53294
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53295
|
+
examples:
|
|
53296
|
+
Rate Limit Exceeded:
|
|
53297
|
+
value:
|
|
53298
|
+
timestamp: '2026-06-06T13:00:00.000Z'
|
|
53299
|
+
path: /v1.0/email-validation/single
|
|
53300
|
+
status: 429
|
|
53301
|
+
error: Too Many Requests
|
|
53302
|
+
message: API rate limit exceeded.
|
|
53303
|
+
headers:
|
|
53304
|
+
X-AF-Credits-Cost:
|
|
53305
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53306
|
+
X-Concurrent-Threads:
|
|
53307
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53308
|
+
X-Concurrent-Threads-Active:
|
|
53309
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53310
|
+
operationId: checkEmail
|
|
53311
|
+
components:
|
|
53312
|
+
securitySchemes:
|
|
53313
|
+
ApiKeyAuthHeader:
|
|
53314
|
+
type: apiKey
|
|
53315
|
+
in: header
|
|
53316
|
+
name: X-apiKey
|
|
53317
|
+
description: Pass your API key via the X-apiKey request header.
|
|
53318
|
+
ApiKeyAuthQuery:
|
|
53319
|
+
type: apiKey
|
|
53320
|
+
in: query
|
|
53321
|
+
name: apiKey
|
|
53322
|
+
description: Pass your API key via the apiKey query parameter.
|
|
53323
|
+
schemas:
|
|
53324
|
+
SingleEmailValidationResponse:
|
|
53325
|
+
type: object
|
|
53326
|
+
required:
|
|
53327
|
+
- success
|
|
53328
|
+
- email
|
|
53329
|
+
- validEmail
|
|
53330
|
+
- validSyntax
|
|
53331
|
+
- domain
|
|
53332
|
+
properties:
|
|
53333
|
+
success:
|
|
53334
|
+
type: boolean
|
|
53335
|
+
description: 'Indicates the processing status of the validation request. true: completed successfully.'
|
|
53336
|
+
email:
|
|
53337
|
+
type: string
|
|
53338
|
+
format: email
|
|
53339
|
+
description: The email address submitted for validation.
|
|
53340
|
+
name:
|
|
53341
|
+
type: string
|
|
53342
|
+
description: Optional identifier or label provided in the request for record tracking.
|
|
53343
|
+
reason:
|
|
53344
|
+
type: string
|
|
53345
|
+
description: Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid.
|
|
53346
|
+
validEmail:
|
|
53347
|
+
type: string
|
|
53348
|
+
enum:
|
|
53349
|
+
- valid
|
|
53350
|
+
- accept_all
|
|
53351
|
+
- invalid
|
|
53352
|
+
- INVALID_EMAIL
|
|
53353
|
+
- unknown
|
|
53354
|
+
- risky
|
|
53355
|
+
- app_server_blocked
|
|
53356
|
+
description: 'Comprehensive deliverability assessment. valid: recipient confirmed deliverable, reason omitted. accept_all: the domain is catch-all and accepted the recipient, so this specific mailbox is unconfirmed \u2014 see domain.catchAll, reason ''domain accepts all addresses.''. invalid: rejected mailbox, syntax failure, or the domain accepts no mail at all (a null MX). unknown: no conclusive answer, most common for domains with no MX record that only get a probe against their address record. risky: mailbox exists but over quota, or the server deferred with a greylist response. app_server_blocked: our verifier IP was blocked by the receiving server. Casing is inconsistent in the live API: syntactically invalid addresses can return the raw enum name INVALID_EMAIL instead of lowercase invalid \u2014 this is a known API bug, handle it defensively as equivalent to invalid.'
|
|
53357
|
+
validSyntax:
|
|
53358
|
+
type: boolean
|
|
53359
|
+
description: Validates email address format compliance with RFC 5322 standards.
|
|
53360
|
+
domain:
|
|
53361
|
+
$ref: '#/components/schemas/DomainObject'
|
|
53362
|
+
account:
|
|
53363
|
+
$ref: '#/components/schemas/AccountObject'
|
|
53364
|
+
dns:
|
|
53365
|
+
$ref: '#/components/schemas/DnsObject'
|
|
53366
|
+
address:
|
|
53367
|
+
$ref: '#/components/schemas/AddressObject'
|
|
53368
|
+
ip:
|
|
53369
|
+
type: string
|
|
53370
|
+
format: ip
|
|
53371
|
+
description: IP address provided for geolocation and security enrichment.
|
|
53372
|
+
description: Email validation response containing deliverability assessment and metadata.
|
|
53373
|
+
DomainObject:
|
|
53374
|
+
type: object
|
|
53375
|
+
required:
|
|
53376
|
+
- name
|
|
53377
|
+
- validDomain
|
|
53378
|
+
properties:
|
|
53379
|
+
name:
|
|
53380
|
+
type: string
|
|
53381
|
+
description: Extracted domain component from the email address.
|
|
53382
|
+
validDomain:
|
|
53383
|
+
type: boolean
|
|
53384
|
+
description: Domain validation status confirming DNS resolution capability.
|
|
53385
|
+
disposable:
|
|
53386
|
+
type: boolean
|
|
53387
|
+
description: Classification flag identifying domains from temporary email service providers.
|
|
53388
|
+
spam:
|
|
53389
|
+
type: boolean
|
|
53390
|
+
description: Reputation indicator flagging domains on spam databases.
|
|
53391
|
+
free:
|
|
53392
|
+
type: boolean
|
|
53393
|
+
description: Classification indicating free or consumer-grade email service providers.
|
|
53394
|
+
catchAll:
|
|
53395
|
+
type: boolean
|
|
53396
|
+
description: Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all.
|
|
53397
|
+
description: Domain validation details for the email address.
|
|
53398
|
+
AccountObject:
|
|
53399
|
+
type: object
|
|
53400
|
+
required:
|
|
53401
|
+
- role
|
|
53402
|
+
properties:
|
|
53403
|
+
role:
|
|
53404
|
+
type: boolean
|
|
53405
|
+
description: Detection flag identifying role-based email addresses (e.g., admin@, support@).
|
|
53406
|
+
fullMailBox:
|
|
53407
|
+
type: boolean
|
|
53408
|
+
description: Storage capacity status indicator for the recipient mailbox.
|
|
53409
|
+
description: Account-level validation details.
|
|
53410
|
+
DnsObject:
|
|
53411
|
+
type: object
|
|
53412
|
+
required: []
|
|
53413
|
+
properties:
|
|
53414
|
+
mxRecord:
|
|
53415
|
+
type: array
|
|
53416
|
+
items:
|
|
53417
|
+
type: string
|
|
53418
|
+
description: Every MX hostname at the domain's lowest preference (not just one). ["."] means the domain publishes a null MX and accepts no mail at all. Absent entirely when the domain has no MX record of any kind \u2014 check aRecord in that case.
|
|
53419
|
+
aRecord:
|
|
53420
|
+
type: array
|
|
53421
|
+
items:
|
|
53422
|
+
type: string
|
|
53423
|
+
description: Collection of A (Address) records for the domain. Present when the domain has no MX record but does resolve to a web server or other host.
|
|
53424
|
+
description: DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.
|
|
53425
|
+
AddressObject:
|
|
53426
|
+
type: object
|
|
53427
|
+
properties:
|
|
53428
|
+
validIpAddress:
|
|
53429
|
+
type: boolean
|
|
53430
|
+
description: IP recognized/reachable by the geolocation provider.
|
|
53431
|
+
location:
|
|
53432
|
+
$ref: '#/components/schemas/EmailLocation'
|
|
53433
|
+
security:
|
|
53434
|
+
$ref: '#/components/schemas/EmailSecurity'
|
|
53435
|
+
description: Geolocation and security enrichment data for the IP address.
|
|
53436
|
+
required: []
|
|
53437
|
+
EmailLocation:
|
|
53438
|
+
type: object
|
|
53439
|
+
description: Geolocation data derived from the IP address.
|
|
53440
|
+
properties:
|
|
53441
|
+
city:
|
|
53442
|
+
type: string
|
|
53443
|
+
description: Municipal or city name.
|
|
53444
|
+
district:
|
|
53445
|
+
type: string
|
|
53446
|
+
description: District or neighborhood.
|
|
53447
|
+
zipcode:
|
|
53448
|
+
type: string
|
|
53449
|
+
description: Postal or ZIP code.
|
|
53450
|
+
state_prov:
|
|
53451
|
+
type: string
|
|
53452
|
+
description: State or province.
|
|
53453
|
+
country_name:
|
|
53454
|
+
type: string
|
|
53455
|
+
description: Common country name.
|
|
53456
|
+
country_name_official:
|
|
53457
|
+
type: string
|
|
53458
|
+
description: Official country name.
|
|
53459
|
+
country_code2:
|
|
53460
|
+
type: string
|
|
53461
|
+
description: Two-character ISO country code.
|
|
53462
|
+
country_code3:
|
|
53463
|
+
type: string
|
|
53464
|
+
description: Three-character ISO country code.
|
|
53465
|
+
continent_name:
|
|
53466
|
+
type: string
|
|
53467
|
+
description: Continental region name.
|
|
53468
|
+
continent_code:
|
|
53469
|
+
type: string
|
|
53470
|
+
description: Continental region identifier.
|
|
53471
|
+
accuracy_radius:
|
|
53472
|
+
type: string
|
|
53473
|
+
description: Geolocation precision radius.
|
|
53474
|
+
confidence:
|
|
53475
|
+
type: string
|
|
53476
|
+
description: Confidence score for geolocation accuracy.
|
|
53477
|
+
is_eu:
|
|
53478
|
+
type: boolean
|
|
53479
|
+
description: European Union membership status.
|
|
53480
|
+
required: []
|
|
53481
|
+
EmailSecurity:
|
|
53482
|
+
type: object
|
|
53483
|
+
description: Threat and anonymity profile for the IP address.
|
|
53484
|
+
required:
|
|
53485
|
+
- threat_score
|
|
53486
|
+
- is_tor
|
|
53487
|
+
- is_proxy
|
|
53488
|
+
- proxy_type
|
|
53489
|
+
- proxy_provider
|
|
53490
|
+
- is_anonymous
|
|
53491
|
+
- is_known_attacker
|
|
53492
|
+
- is_spam
|
|
53493
|
+
- is_bot
|
|
53494
|
+
- is_cloud_provider
|
|
53495
|
+
- cloud_provider
|
|
53496
|
+
properties:
|
|
53497
|
+
threat_score:
|
|
53498
|
+
type: integer
|
|
53499
|
+
description: Quantitative risk assessment score. Higher values indicate elevated security risk.
|
|
53500
|
+
is_tor:
|
|
53501
|
+
type: boolean
|
|
53502
|
+
description: Detection flag for IP addresses routed through the Tor anonymity network.
|
|
53503
|
+
is_proxy:
|
|
53504
|
+
type: boolean
|
|
53505
|
+
description: Detection flag identifying IP addresses operating as proxy servers.
|
|
53506
|
+
proxy_type:
|
|
53507
|
+
type: string
|
|
53508
|
+
description: Classification of detected proxy infrastructure type (e.g. VPN, HTTP, SOCKS).
|
|
53509
|
+
proxy_provider:
|
|
53510
|
+
type: string
|
|
53511
|
+
description: Identified service provider operating the proxy infrastructure.
|
|
53512
|
+
is_anonymous:
|
|
53513
|
+
type: boolean
|
|
53514
|
+
description: Anonymization detection flag for IP addresses using identity obfuscation techniques.
|
|
53515
|
+
is_known_attacker:
|
|
53516
|
+
type: boolean
|
|
53517
|
+
description: Threat intelligence flag for IP addresses documented as confirmed malicious sources.
|
|
53518
|
+
is_spam:
|
|
53519
|
+
type: boolean
|
|
53520
|
+
description: Reputation flag for IP addresses associated with spam transmission.
|
|
53521
|
+
is_bot:
|
|
53522
|
+
type: boolean
|
|
53523
|
+
description: Automated traffic detection flag for IP addresses from bot networks.
|
|
53524
|
+
is_cloud_provider:
|
|
53525
|
+
type: boolean
|
|
53526
|
+
description: Infrastructure classification flag for IP addresses from cloud computing providers.
|
|
53527
|
+
cloud_provider:
|
|
53528
|
+
type: string
|
|
53529
|
+
description: Identified cloud infrastructure or hosting service provider name.
|
|
53530
|
+
EmailCheckRequest:
|
|
53531
|
+
type: object
|
|
53532
|
+
description: Request body for email validation.
|
|
53533
|
+
required:
|
|
53534
|
+
- email
|
|
53535
|
+
properties:
|
|
53536
|
+
email:
|
|
53537
|
+
type: string
|
|
53538
|
+
format: email
|
|
53539
|
+
description: Email address to validate.
|
|
53540
|
+
name:
|
|
53541
|
+
type: string
|
|
53542
|
+
description: Optional name or label for record tracking.
|
|
53543
|
+
ip:
|
|
53544
|
+
type: string
|
|
53545
|
+
format: ip
|
|
53546
|
+
description: Optional IP address for geolocation and security enrichment.
|
|
53547
|
+
ErrorResponse:
|
|
53548
|
+
type: object
|
|
53549
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
53550
|
+
required:
|
|
53551
|
+
- message
|
|
53552
|
+
properties:
|
|
53553
|
+
error:
|
|
53554
|
+
type: string
|
|
53555
|
+
description: Short error category or exception type.
|
|
53556
|
+
message:
|
|
53557
|
+
type: string
|
|
53558
|
+
description: Human-readable error message describing the failure.
|
|
53559
|
+
path:
|
|
53560
|
+
type: string
|
|
53561
|
+
description: API endpoint path that produced the error.
|
|
53562
|
+
status:
|
|
53563
|
+
type: integer
|
|
53564
|
+
description: HTTP status code returned with the error.
|
|
53565
|
+
timestamp:
|
|
53566
|
+
type: string
|
|
53567
|
+
format: date-time
|
|
53568
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
53569
|
+
headers:
|
|
53570
|
+
X-AF-Credits-Cost:
|
|
53571
|
+
description: Specifies the number of credits consumed by the current request.
|
|
53572
|
+
schema:
|
|
53573
|
+
type: integer
|
|
53574
|
+
X-Concurrent-Threads:
|
|
53575
|
+
description: Specifies the maximum number of concurrent requests allowed.
|
|
53576
|
+
schema:
|
|
53577
|
+
type: integer
|
|
53578
|
+
X-Concurrent-Threads-Active:
|
|
53579
|
+
description: Indicates the number of active concurrent requests being processed.
|
|
53580
|
+
schema:
|
|
53581
|
+
type: integer
|
|
53582
|
+
security:
|
|
53583
|
+
- ApiKeyAuthHeader: []
|
|
53584
|
+
- ApiKeyAuthQuery: []
|
|
53585
|
+
`,
|
|
50225
53586
|
"bulk-vat-rates-country": "openapi: 3.1.1\ninfo:\n title: Bulk VAT Rates by Country API Reference\n version: 1.0.0\n description: Get VAT rates for up to 100 countries or country/state combinations in a single API call. Returns a JSON array of VAT rate results, one entry per country that resolves successfully \u2014 entries with an invalid country/state are silently omitted rather than returned as per-item errors, so the array can be shorter than the requested list. Returns a 400 for a missing/malformed request body and a 413 if the payload exceeds the size limit.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Bulk VAT Rates by Country API Server\npaths:\n /vat/rates/country:\n post:\n tags:\n - Financial APIs\n summary: Bulk VAT lookup by country\n description: Retrieves VAT details for multiple countries or country-state combinations in a single request. Maximum of `100` entries per request are allowed.\n operationId: bulkVatRatesByCountry\n parameters:\n - name: format\n in: query\n required: false\n schema:\n type: string\n enum:\n - json\n - xml\n default: json\n description: 'Specify the desired response format. Options: ''json'' (default) or ''xml''.'\n requestBody:\n required: true\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/BulkVatRequest'\n examples:\n typicalRequest:\n summary: Typical bulk VAT lookup request\n value:\n countries:\n - country: DE\n - country: United_States\n state: New_York\n responses:\n '200':\n description: Successful response \u2014 a JSON array of VAT results, one entry per country that resolved successfully, in request order. Countries that fail to resolve are omitted rather than represented as error entries.\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/VatCountryBulkResponse'\n examples:\n typicalSuccess:\n summary: All requested countries resolved\n value:\n - country: DE\n type: vat\n currency: EUR\n standard_rate: 0.19\n reduced_rate:\n - 0.07\n - 0\n categories:\n books: 0.07\n newspapers: 0.07\n periodicals: 0.07\n broadcasting: 0\n - country: United_States\n state: New_York\n type: vat\n currency: ''\n standard_rate: 0.04\n partialMatch:\n summary: One of two requested countries resolved \u2014 the unresolved one is simply absent\n value:\n - country: DE\n type: vat\n currency: EUR\n standard_rate: 0.19\n reduced_rate:\n - 0.07\n - 0\n categories:\n books: 0.07\n newspapers: 0.07\n periodicals: 0.07\n broadcasting: 0\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '400':\n description: Bad Request \u2014 Missing or malformed request body\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n InvalidBody:\n summary: countries field missing or malformed\n value:\n error: Invalid request body Exception\n message: Please provide data in required format in request body\n path: /v1.0/vat/rates/country\n status: 400\n timestamp: '2026-07-27T11:46:29.315Z'\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\n '413':\n description: Payload Too Large \u2014 Request body exceeds the size limit\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/ErrorResponse'\n examples:\n PayloadTooLarge:\n summary: Too many entries / body too large\n value:\n error: Payload too large Exception\n message: Maximum request body size limit exceeded\n path: /v1.0/vat/rates/country\n status: 413\n timestamp: '2026-07-27T11:46:29.925Z'\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n VatCountryBulkResponse:\n type: array\n description: Array of VAT rate results, one entry per country that resolved successfully, in request order. Countries that fail to resolve are omitted, so this array can be shorter than the requested countries list.\n items:\n $ref: '#/components/schemas/VatBulkResponseItem'\n VatBulkResponseItem:\n type: object\n description: A VAT rate result for a single country or state in a bulk response.\n required:\n - country\n - type\n - currency\n - standard_rate\n properties:\n country:\n type: string\n description: Country identifier returned in the result item.\n state:\n type: string\n description: State or region returned for sub-national lookups. Only present when the request included a state.\n type:\n type: string\n description: Tax type applied for the country or state.\n currency:\n type: string\n description: ISO 4217 currency code for the returned location. Can be an empty string for some state-level entries.\n standard_rate:\n type: number\n format: float\n description: Standard VAT or sales tax rate for the returned location.\n reduced_rate:\n type: array\n description: Reduced VAT rates when defined for the location.\n items:\n $ref: '#/components/schemas/VatRateDecimal'\n super_reduced_rate:\n type: array\n description: Super-reduced VAT rates for specific categories, when defined.\n items:\n $ref: '#/components/schemas/VatRateDecimal'\n parking_rate:\n type: number\n format: float\n description: Parking rate, when applicable.\n categories:\n description: Category-specific VAT rates, where defined (EU/UK only).\n $ref: '#/components/schemas/VatCategories'\n VatRateDecimal:\n type: number\n format: float\n description: A VAT rate expressed as a decimal (e.g., 0.19 = 19%).\n VatCategories:\n type: object\n description: Category-specific VAT rates, where defined (EU/UK only). Keys vary by country.\n properties:\n books:\n type: number\n format: float\n description: VAT rate for books, as a decimal (e.g., 0.07 = 7%).\n newspapers:\n type: number\n format: float\n description: VAT rate for newspapers, as a decimal (e.g., 0.07 = 7%).\n periodicals:\n type: number\n format: float\n description: VAT rate for periodicals, as a decimal (e.g., 0.07 = 7%).\n broadcasting:\n type: number\n format: float\n description: VAT rate for broadcasting services, as a decimal (e.g., 0.19 = 19%).\n BulkVatRequest:\n type: object\n description: Request body for bulk VAT rate lookup by country.\n required:\n - countries\n properties:\n countries:\n type: array\n description: Array of country entries to look up. Maximum 100 entries.\n items:\n $ref: '#/components/schemas/BulkVatRequestItem'\n BulkVatRequestItem:\n type: object\n description: A single country entry in a bulk VAT request.\n required:\n - country\n properties:\n country:\n type: string\n description: Country identifier in Alpha-2, Alpha-3, or full name.\n state:\n type: string\n description: Optional state or region for sub-national VAT.\n ErrorResponse:\n type: object\n description: Standard error envelope returned by the API on failed requests.\n required:\n - message\n properties:\n error:\n type: string\n description: Short error category or exception type.\n message:\n type: string\n description: Human-readable error message describing the failure.\n path:\n type: string\n description: API endpoint path that produced the error.\n status:\n type: integer\n description: HTTP status code returned with the error.\n timestamp:\n type: string\n format: date-time\n description: Timestamp when the error occurred (ISO 8601).\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
50226
53587
|
"financial-apis-supported-countries": "openapi: 3.1.1\ninfo:\n title: Financial APIs Supported Countries Reference\n version: 1.0.0\n description: Retrieve the countries and states supported by the VAT, IBAN, and SWIFT APIs. The response always includes all three categories \u2014 VAT_Supported_Countries_And_States, IBAN_Supported_Countries, and SWIFT_Supported_Countries \u2014 each with a different shape. VAT entries are keyed by lowercase country name and include an ISO code plus, for a handful of countries (US, Canada, Spain), a nested map of sub-national state/region codes. IBAN and SWIFT entries are flat arrays of {name, countryCode} objects.\n contact:\n name: APIFreaks Support\n url: https://apifreaks.com/contact\n email: support@apifreaks.com\nservers:\n - url: https://api.apifreaks.com/v1.0\n description: Financial APIs Supported Countries API Server\npaths:\n /vat/supported-countries:\n get:\n tags:\n - Financial APIs\n summary: Get supported countries\n description: Returns the countries and states supported by the VAT, IBAN, and SWIFT APIs.\n operationId: getSupportedCountries\n parameters:\n - name: format\n in: query\n required: false\n schema:\n type: string\n enum:\n - json\n - xml\n default: json\n description: Format of the response. Default is JSON.\n - name: type\n in: query\n required: false\n schema:\n type: string\n description: Accepted by the endpoint but currently has no effect \u2014 all three categories (VAT, IBAN, SWIFT) are always returned regardless of this value.\n responses:\n '200':\n description: Successful response \u2014 always returns all three categories\n content:\n application/json:\n schema:\n $ref: '#/components/schemas/SupportedCountriesResponse'\n examples:\n typicalSuccess:\n summary: Typical successful response (truncated)\n value:\n VAT_Supported_Countries_And_States:\n - germany:\n code: de\n - united_states:\n code: us\n states:\n california: us:ca\n new_york: us:ny\n texas: us:tx\n IBAN_Supported_Countries:\n - countryCode: DE\n name: Germany\n - countryCode: GB\n name: United Kingdom\n SWIFT_Supported_Countries:\n - name: Germany\n countryCode: DE\n - name: United States\n countryCode: US\n headers:\n X-AF-Credits-Cost:\n $ref: '#/components/headers/X-AF-Credits-Cost'\ncomponents:\n securitySchemes:\n ApiKeyAuthHeader:\n type: apiKey\n in: header\n name: X-apiKey\n description: Pass your API key via the X-apiKey request header.\n ApiKeyAuthQuery:\n type: apiKey\n in: query\n name: apiKey\n description: Pass your API key via the apiKey query parameter.\n schemas:\n SupportedCountriesResponse:\n type: object\n description: Countries and states supported by the VAT, IBAN, and SWIFT APIs.\n required:\n - VAT_Supported_Countries_And_States\n - IBAN_Supported_Countries\n - SWIFT_Supported_Countries\n properties:\n VAT_Supported_Countries_And_States:\n type: array\n description: Array of single-key objects, one per supported VAT country. Each key is the lowercase, underscore-separated country name.\n items:\n type: object\n description: A single VAT-supported country, keyed by its lowercase name.\n additionalProperties:\n title: VatCountryEntry\n $ref: '#/components/schemas/VatCountryEntry'\n IBAN_Supported_Countries:\n type: array\n description: Array of countries supported by the IBAN Validation API.\n items:\n $ref: '#/components/schemas/IbanCountryEntry'\n SWIFT_Supported_Countries:\n type: array\n description: Array of countries supported by the SWIFT/BIC Code Lookup and Finder APIs.\n items:\n $ref: '#/components/schemas/SwiftCountryEntry'\n VatCountryEntry:\n type: object\n description: 'VAT country metadata: an ISO 3166-1 alpha-2 code, plus an optional map of sub-national states/regions for countries with state-level VAT (US, Canada, Spain).'\n required:\n - code\n properties:\n code:\n type: string\n description: ISO 3166-1 alpha-2 country code, lowercase.\n states:\n type: object\n description: Map of state/region name to its combined country:state code. Only present for countries with sub-national VAT rates.\n additionalProperties:\n title: StateCode\n type: string\n description: Combined country:state identifier (e.g. us:ca).\n IbanCountryEntry:\n type: object\n description: A single country supported by the IBAN Validation API.\n required:\n - countryCode\n - name\n properties:\n countryCode:\n type: string\n description: ISO 3166-1 alpha-2 country code.\n name:\n type: string\n description: Full country name.\n SwiftCountryEntry:\n type: object\n description: A single country supported by the SWIFT/BIC Code Lookup and Finder APIs.\n required:\n - name\n - countryCode\n properties:\n name:\n type: string\n description: Full country name.\n countryCode:\n type: string\n description: ISO 3166-1 alpha-2 country code.\n headers:\n X-AF-Credits-Cost:\n description: Specifies the number of credits consumed by the current request.\n schema:\n type: integer\nsecurity:\n - ApiKeyAuthHeader: []\n - ApiKeyAuthQuery: []\n",
|
|
50227
53588
|
"iban-validation": `openapi: 3.1.1
|
|
@@ -53493,7 +56854,7 @@ var SPECS_BY_CATEGORY = {
|
|
|
53493
56854
|
"commodity": ["commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices"],
|
|
53494
56855
|
"currency": ["currency-converter", "currency-fluctuation", "currency-historical-data-limit", "currency-rate", "currency-supported", "currency-symbols", "currency-time-series", "geolocalized-currency-conversion", "historical-currency-converter", "historical-currency-rate"],
|
|
53495
56856
|
"dns": ["bulk-dns-lookup", "dns-history-lookup", "dns-lookup", "reverse-dns-lookup"],
|
|
53496
|
-
"domain": ["bulk-domain-checker", "domain-search-with-suggestions", "domain-search", "subdomain-lookup"],
|
|
56857
|
+
"domain": ["bulk-domain-checker", "domain-reputation", "domain-search-with-suggestions", "domain-search", "domain-typosquatting", "subdomain-lookup"],
|
|
53497
56858
|
"email-validation": ["bulk-email-validation", "email-checker"],
|
|
53498
56859
|
"financial": ["bulk-vat-rates-country", "financial-apis-supported-countries", "iban-validation", "swift-code-finder", "swift-code-lookup", "vat-number-validation", "vat-rates-by-ip", "vat-rates-country"],
|
|
53499
56860
|
"geocoding": ["forward-geocoding", "reverse-geocoding"],
|
|
@@ -53546,8 +56907,10 @@ var SpecSlug = {
|
|
|
53546
56907
|
DELETE_PDF_PAGE: "delete-pdf-page",
|
|
53547
56908
|
DNS_HISTORY_LOOKUP: "dns-history-lookup",
|
|
53548
56909
|
DNS_LOOKUP: "dns-lookup",
|
|
56910
|
+
DOMAIN_REPUTATION: "domain-reputation",
|
|
53549
56911
|
DOMAIN_SEARCH: "domain-search",
|
|
53550
56912
|
DOMAIN_SEARCH_WITH_SUGGESTIONS: "domain-search-with-suggestions",
|
|
56913
|
+
DOMAIN_TYPOSQUATTING: "domain-typosquatting",
|
|
53551
56914
|
DOMAIN_WHOIS_HISTORY_LOOKUP: "domain-whois-history-lookup",
|
|
53552
56915
|
EMAIL_CHECKER: "email-checker",
|
|
53553
56916
|
FINANCIAL_APIS_SUPPORTED_COUNTRIES: "financial-apis-supported-countries",
|
|
@@ -53646,9 +57009,6 @@ function getSpecJson(slug) {
|
|
|
53646
57009
|
function getSpecYaml(slug) {
|
|
53647
57010
|
return SPECS_YAML[slug];
|
|
53648
57011
|
}
|
|
53649
|
-
function getSpec(slug) {
|
|
53650
|
-
return getSpecJson(slug);
|
|
53651
|
-
}
|
|
53652
57012
|
function getSpecsByCategory(category) {
|
|
53653
57013
|
return SPECS_BY_CATEGORY[category] ?? [];
|
|
53654
57014
|
}
|
|
@@ -53660,7 +57020,6 @@ export {
|
|
|
53660
57020
|
SPEC_SLUGS,
|
|
53661
57021
|
SpecCategory,
|
|
53662
57022
|
SpecSlug,
|
|
53663
|
-
getSpec,
|
|
53664
57023
|
getSpecJson,
|
|
53665
57024
|
getSpecYaml,
|
|
53666
57025
|
getSpecsByCategory
|