@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.cjs
CHANGED
|
@@ -27,7 +27,6 @@ __export(index_exports, {
|
|
|
27
27
|
SPEC_SLUGS: () => SPEC_SLUGS,
|
|
28
28
|
SpecCategory: () => SpecCategory,
|
|
29
29
|
SpecSlug: () => SpecSlug,
|
|
30
|
-
getSpec: () => getSpec,
|
|
31
30
|
getSpecJson: () => getSpecJson,
|
|
32
31
|
getSpecYaml: () => getSpecYaml,
|
|
33
32
|
getSpecsByCategory: () => getSpecsByCategory
|
|
@@ -7029,6 +7028,1123 @@ var bulk_domain_checker_default = {
|
|
|
7029
7028
|
]
|
|
7030
7029
|
};
|
|
7031
7030
|
|
|
7031
|
+
// specs/domain/domain-reputation.json
|
|
7032
|
+
var domain_reputation_default = {
|
|
7033
|
+
openapi: "3.1.1",
|
|
7034
|
+
info: {
|
|
7035
|
+
title: "Domain Reputation API - Real-Time Risk Verdict, Trust Score, DGA Detection, and Threat Intelligence for Any Domain",
|
|
7036
|
+
version: "1.0.0",
|
|
7037
|
+
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.",
|
|
7038
|
+
contact: {
|
|
7039
|
+
name: "APIFreaks Support",
|
|
7040
|
+
url: "https://apifreaks.com/contact",
|
|
7041
|
+
email: "support@apifreaks.com"
|
|
7042
|
+
}
|
|
7043
|
+
},
|
|
7044
|
+
servers: [
|
|
7045
|
+
{
|
|
7046
|
+
url: "https://api.apifreaks.com/v1.0",
|
|
7047
|
+
description: "Domain Reputation API Server"
|
|
7048
|
+
}
|
|
7049
|
+
],
|
|
7050
|
+
paths: {
|
|
7051
|
+
"/domain/reputation": {
|
|
7052
|
+
get: {
|
|
7053
|
+
tags: ["Domain APIs"],
|
|
7054
|
+
summary: "Get a real-time risk verdict, trust score, and threat intelligence for any domain.",
|
|
7055
|
+
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.",
|
|
7056
|
+
parameters: [
|
|
7057
|
+
{
|
|
7058
|
+
name: "format",
|
|
7059
|
+
in: "query",
|
|
7060
|
+
required: false,
|
|
7061
|
+
schema: {
|
|
7062
|
+
type: "string",
|
|
7063
|
+
enum: ["json", "xml"],
|
|
7064
|
+
default: "json"
|
|
7065
|
+
},
|
|
7066
|
+
description: "Format of the response."
|
|
7067
|
+
},
|
|
7068
|
+
{
|
|
7069
|
+
name: "domainName",
|
|
7070
|
+
in: "query",
|
|
7071
|
+
required: true,
|
|
7072
|
+
schema: {
|
|
7073
|
+
type: "string"
|
|
7074
|
+
},
|
|
7075
|
+
description: "The domain name to assess (e.g. example.com). Must contain at least one dot and be at most 253 characters. Automatically lowercased."
|
|
7076
|
+
}
|
|
7077
|
+
],
|
|
7078
|
+
responses: {
|
|
7079
|
+
"200": {
|
|
7080
|
+
description: "Success",
|
|
7081
|
+
content: {
|
|
7082
|
+
"application/json": {
|
|
7083
|
+
schema: {
|
|
7084
|
+
$ref: "#/components/schemas/DomainReputationResponse"
|
|
7085
|
+
},
|
|
7086
|
+
examples: {
|
|
7087
|
+
success: {
|
|
7088
|
+
summary: "Safe domain (apple.com)",
|
|
7089
|
+
value: {
|
|
7090
|
+
input: {
|
|
7091
|
+
domain: "apple.com"
|
|
7092
|
+
},
|
|
7093
|
+
assessed_at: "2026-09-08T08:36:23.820181075Z",
|
|
7094
|
+
version: "1.0.0",
|
|
7095
|
+
processing_time_ms: 1739,
|
|
7096
|
+
risk_category: {
|
|
7097
|
+
verdict: "safe",
|
|
7098
|
+
confidence: 0.8,
|
|
7099
|
+
primary_threat: null,
|
|
7100
|
+
severity: "none",
|
|
7101
|
+
threat_types: [],
|
|
7102
|
+
sources: [],
|
|
7103
|
+
pivot_matches: []
|
|
7104
|
+
},
|
|
7105
|
+
dga_score: {
|
|
7106
|
+
score: 0,
|
|
7107
|
+
is_dga: false,
|
|
7108
|
+
model: "deterministic_features_v1",
|
|
7109
|
+
features: {
|
|
7110
|
+
domain_length: 5,
|
|
7111
|
+
vowel_consonant_ratio: 0.6666666666666666,
|
|
7112
|
+
ngram_perplexity: -8.83,
|
|
7113
|
+
shannon_entropy: 1.9219280948873623,
|
|
7114
|
+
digit_letter_ratio: 0,
|
|
7115
|
+
consonant_streak_max: 3,
|
|
7116
|
+
tld_in_known_dga_set: false
|
|
7117
|
+
},
|
|
7118
|
+
interpretation: "human_readable"
|
|
7119
|
+
},
|
|
7120
|
+
trust_signals: {
|
|
7121
|
+
trust_score: 72,
|
|
7122
|
+
trust_band: "high",
|
|
7123
|
+
signals: {
|
|
7124
|
+
positive: [
|
|
7125
|
+
{
|
|
7126
|
+
code: "spf_configured",
|
|
7127
|
+
weight: 5,
|
|
7128
|
+
polarity: "positive",
|
|
7129
|
+
category: "email_security",
|
|
7130
|
+
evidence: "SPF record found",
|
|
7131
|
+
confidence: 1
|
|
7132
|
+
},
|
|
7133
|
+
{
|
|
7134
|
+
code: "dmarc_present",
|
|
7135
|
+
weight: 5,
|
|
7136
|
+
polarity: "positive",
|
|
7137
|
+
category: "email_security",
|
|
7138
|
+
evidence: "DMARC record present",
|
|
7139
|
+
confidence: 1
|
|
7140
|
+
},
|
|
7141
|
+
{
|
|
7142
|
+
code: "established_domain",
|
|
7143
|
+
weight: 10,
|
|
7144
|
+
polarity: "positive",
|
|
7145
|
+
category: "domain_age",
|
|
7146
|
+
evidence: "Domain age > 2 years",
|
|
7147
|
+
confidence: 1
|
|
7148
|
+
},
|
|
7149
|
+
{
|
|
7150
|
+
code: "mature_domain",
|
|
7151
|
+
weight: 5,
|
|
7152
|
+
polarity: "positive",
|
|
7153
|
+
category: "domain_age",
|
|
7154
|
+
evidence: "Domain age > 5 years",
|
|
7155
|
+
confidence: 1
|
|
7156
|
+
},
|
|
7157
|
+
{
|
|
7158
|
+
code: "paid_ssl",
|
|
7159
|
+
weight: 5,
|
|
7160
|
+
polarity: "positive",
|
|
7161
|
+
category: "ssl_certificate",
|
|
7162
|
+
evidence: "Uses paid SSL certificate",
|
|
7163
|
+
confidence: 0.9
|
|
7164
|
+
},
|
|
7165
|
+
{
|
|
7166
|
+
code: "valid_ssl",
|
|
7167
|
+
weight: 3,
|
|
7168
|
+
polarity: "positive",
|
|
7169
|
+
category: "ssl_certificate",
|
|
7170
|
+
evidence: "Valid SSL certificate",
|
|
7171
|
+
confidence: 1
|
|
7172
|
+
}
|
|
7173
|
+
],
|
|
7174
|
+
negative: [
|
|
7175
|
+
{
|
|
7176
|
+
code: "privacy_whois",
|
|
7177
|
+
weight: 1,
|
|
7178
|
+
polarity: "negative",
|
|
7179
|
+
category: "whois_privacy",
|
|
7180
|
+
evidence: "WHOIS information is privacy-protected",
|
|
7181
|
+
confidence: 0.9
|
|
7182
|
+
},
|
|
7183
|
+
{
|
|
7184
|
+
code: "external_redirect",
|
|
7185
|
+
weight: 10,
|
|
7186
|
+
polarity: "negative",
|
|
7187
|
+
category: "content_analysis",
|
|
7188
|
+
evidence: "Site redirects visitors to an external domain",
|
|
7189
|
+
confidence: 0.8
|
|
7190
|
+
}
|
|
7191
|
+
],
|
|
7192
|
+
neutral: []
|
|
7193
|
+
},
|
|
7194
|
+
indicators: {
|
|
7195
|
+
is_newly_registered: false,
|
|
7196
|
+
uses_free_extension: false,
|
|
7197
|
+
uses_free_ssl: false,
|
|
7198
|
+
has_privacy_whois: true,
|
|
7199
|
+
ssl_age_days: 26,
|
|
7200
|
+
has_dmarc: true,
|
|
7201
|
+
has_spf: true,
|
|
7202
|
+
redirects_externally: true,
|
|
7203
|
+
javascript_obfuscated: false,
|
|
7204
|
+
domain_age_days: 14446,
|
|
7205
|
+
registrar: "NOM-IQ Ltd dba Com Laude"
|
|
7206
|
+
}
|
|
7207
|
+
},
|
|
7208
|
+
email_deliverability: {
|
|
7209
|
+
score: 95,
|
|
7210
|
+
grade: "excellent",
|
|
7211
|
+
can_receive_email: true,
|
|
7212
|
+
authentication: {
|
|
7213
|
+
spf: {
|
|
7214
|
+
present: true,
|
|
7215
|
+
policy: "~all",
|
|
7216
|
+
record: "v=spf1 include:_spf.apple.com include:_spf-txn.apple.com ~all"
|
|
7217
|
+
},
|
|
7218
|
+
dkim: {
|
|
7219
|
+
found: true,
|
|
7220
|
+
selectors_found: ["selector1", "selector2"],
|
|
7221
|
+
providers_detected: [],
|
|
7222
|
+
note: "Only common selectors are probed; a domain may use a custom selector"
|
|
7223
|
+
},
|
|
7224
|
+
dmarc: {
|
|
7225
|
+
present: true,
|
|
7226
|
+
policy: "quarantine",
|
|
7227
|
+
reporting_configured: true
|
|
7228
|
+
}
|
|
7229
|
+
},
|
|
7230
|
+
infrastructure: {
|
|
7231
|
+
mx_count: 6,
|
|
7232
|
+
mx_records: [
|
|
7233
|
+
"mx-in-ma.apple.com.",
|
|
7234
|
+
"mx-in.g.apple.com.",
|
|
7235
|
+
"mx-in-rn.apple.com.",
|
|
7236
|
+
"mx-in-sg.apple.com.",
|
|
7237
|
+
"mx-in-hfd.apple.com.",
|
|
7238
|
+
"mx-in-vib.apple.com."
|
|
7239
|
+
],
|
|
7240
|
+
mx_provider: "self_hosted",
|
|
7241
|
+
null_mx: false
|
|
7242
|
+
},
|
|
7243
|
+
reputation: {
|
|
7244
|
+
spam_blacklisted: false,
|
|
7245
|
+
newly_registered: false,
|
|
7246
|
+
domain_age_days: 14446
|
|
7247
|
+
},
|
|
7248
|
+
issues: [
|
|
7249
|
+
{
|
|
7250
|
+
code: "spf_softfail",
|
|
7251
|
+
severity: "low",
|
|
7252
|
+
message: "The SPF policy '~all' only soft-fails unauthorized senders",
|
|
7253
|
+
recommendation: "Move to '-all' once all legitimate sending sources are listed"
|
|
7254
|
+
}
|
|
7255
|
+
]
|
|
7256
|
+
},
|
|
7257
|
+
intelligence: {
|
|
7258
|
+
ioc_type: "domain",
|
|
7259
|
+
ioc_value: "apple.com",
|
|
7260
|
+
related_iocs: [
|
|
7261
|
+
{
|
|
7262
|
+
type: "ipv4",
|
|
7263
|
+
value: "17.253.144.10",
|
|
7264
|
+
confidence: 0.9
|
|
7265
|
+
},
|
|
7266
|
+
{
|
|
7267
|
+
type: "ipv6",
|
|
7268
|
+
value: "2620:149:af0:0:0:0:0:10",
|
|
7269
|
+
confidence: 0.9
|
|
7270
|
+
}
|
|
7271
|
+
],
|
|
7272
|
+
feed_tags: [
|
|
7273
|
+
"verdict:safe",
|
|
7274
|
+
"severity:none",
|
|
7275
|
+
"ns:d.ns.apple.com.",
|
|
7276
|
+
"ns:b.ns.apple.com.",
|
|
7277
|
+
"ns:c.ns.apple.com.",
|
|
7278
|
+
"ns:a.ns.apple.com.",
|
|
7279
|
+
"mx:mx-in-ma.apple.com.",
|
|
7280
|
+
"mx:mx-in.g.apple.com.",
|
|
7281
|
+
"mx:mx-in-rn.apple.com.",
|
|
7282
|
+
"mx:mx-in-sg.apple.com.",
|
|
7283
|
+
"mx:mx-in-hfd.apple.com.",
|
|
7284
|
+
"mx:mx-in-vib.apple.com."
|
|
7285
|
+
],
|
|
7286
|
+
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']",
|
|
7287
|
+
recommended_action: "allow",
|
|
7288
|
+
first_seen: null,
|
|
7289
|
+
last_seen: null
|
|
7290
|
+
},
|
|
7291
|
+
evidence_summary: {
|
|
7292
|
+
why_flagged: []
|
|
7293
|
+
},
|
|
7294
|
+
errors: []
|
|
7295
|
+
}
|
|
7296
|
+
},
|
|
7297
|
+
partialData: {
|
|
7298
|
+
summary: "Partial data (WHOIS lookup failed)",
|
|
7299
|
+
value: {
|
|
7300
|
+
input: {
|
|
7301
|
+
domain: "apifreaks.com"
|
|
7302
|
+
},
|
|
7303
|
+
risk_category: {
|
|
7304
|
+
verdict: "safe",
|
|
7305
|
+
confidence: 0.7,
|
|
7306
|
+
severity: "none"
|
|
7307
|
+
},
|
|
7308
|
+
trust_signals: {
|
|
7309
|
+
trust_score: 70,
|
|
7310
|
+
trust_band: "high",
|
|
7311
|
+
indicators: {
|
|
7312
|
+
is_newly_registered: null,
|
|
7313
|
+
has_privacy_whois: null,
|
|
7314
|
+
domain_age_days: null,
|
|
7315
|
+
registrar: null
|
|
7316
|
+
}
|
|
7317
|
+
},
|
|
7318
|
+
errors: ["WHOIS lookup failed"]
|
|
7319
|
+
}
|
|
7320
|
+
}
|
|
7321
|
+
}
|
|
7322
|
+
}
|
|
7323
|
+
},
|
|
7324
|
+
headers: {
|
|
7325
|
+
"X-AF-Credits-Cost": {
|
|
7326
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7327
|
+
}
|
|
7328
|
+
}
|
|
7329
|
+
},
|
|
7330
|
+
"400": {
|
|
7331
|
+
description: "Bad Request \u2013 Invalid or missing domainName parameter",
|
|
7332
|
+
content: {
|
|
7333
|
+
"application/json": {
|
|
7334
|
+
schema: {
|
|
7335
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
7336
|
+
},
|
|
7337
|
+
examples: {
|
|
7338
|
+
invalidDomain: {
|
|
7339
|
+
summary: "Invalid domain parameter",
|
|
7340
|
+
value: {
|
|
7341
|
+
error: "Invalid Domain Exception",
|
|
7342
|
+
message: 'Please provide a valid domain name in the "domainName" parameter.',
|
|
7343
|
+
path: "/v1.0/domain/reputation",
|
|
7344
|
+
status: 400,
|
|
7345
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7346
|
+
}
|
|
7347
|
+
},
|
|
7348
|
+
missingDomain: {
|
|
7349
|
+
summary: "Missing domainName parameter",
|
|
7350
|
+
value: {
|
|
7351
|
+
error: "Invalid Param Exception",
|
|
7352
|
+
message: 'Please provide a valid domain name in the "domainName" parameter.',
|
|
7353
|
+
path: "/v1.0/domain/reputation",
|
|
7354
|
+
status: 400,
|
|
7355
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7356
|
+
}
|
|
7357
|
+
}
|
|
7358
|
+
}
|
|
7359
|
+
}
|
|
7360
|
+
},
|
|
7361
|
+
headers: {
|
|
7362
|
+
"X-AF-Credits-Cost": {
|
|
7363
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7364
|
+
}
|
|
7365
|
+
}
|
|
7366
|
+
},
|
|
7367
|
+
"503": {
|
|
7368
|
+
description: "Service Unavailable \u2013 The assessment service is temporarily unavailable",
|
|
7369
|
+
content: {
|
|
7370
|
+
"application/json": {
|
|
7371
|
+
schema: {
|
|
7372
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
7373
|
+
},
|
|
7374
|
+
examples: {
|
|
7375
|
+
serviceUnavailable: {
|
|
7376
|
+
summary: "Service Unavailable",
|
|
7377
|
+
value: {
|
|
7378
|
+
error: "Service Unavailable",
|
|
7379
|
+
message: "Service is unavailable. Please try after some time. [For Technical Support email at: support@apifreaks.com]",
|
|
7380
|
+
path: "/v1.0/domain/reputation",
|
|
7381
|
+
status: 503,
|
|
7382
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7383
|
+
}
|
|
7384
|
+
}
|
|
7385
|
+
}
|
|
7386
|
+
}
|
|
7387
|
+
},
|
|
7388
|
+
headers: {
|
|
7389
|
+
"X-AF-Credits-Cost": {
|
|
7390
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7391
|
+
}
|
|
7392
|
+
}
|
|
7393
|
+
}
|
|
7394
|
+
},
|
|
7395
|
+
operationId: "getDomainReputation"
|
|
7396
|
+
}
|
|
7397
|
+
}
|
|
7398
|
+
},
|
|
7399
|
+
components: {
|
|
7400
|
+
securitySchemes: {
|
|
7401
|
+
ApiKeyAuthHeader: {
|
|
7402
|
+
type: "apiKey",
|
|
7403
|
+
in: "header",
|
|
7404
|
+
name: "X-apiKey",
|
|
7405
|
+
description: "Pass your API key via the X-apiKey request header."
|
|
7406
|
+
},
|
|
7407
|
+
ApiKeyAuthQuery: {
|
|
7408
|
+
type: "apiKey",
|
|
7409
|
+
in: "query",
|
|
7410
|
+
name: "apiKey",
|
|
7411
|
+
description: "Pass your API key via the apiKey query parameter."
|
|
7412
|
+
}
|
|
7413
|
+
},
|
|
7414
|
+
schemas: {
|
|
7415
|
+
DomainReputationResponse: {
|
|
7416
|
+
type: "object",
|
|
7417
|
+
required: [
|
|
7418
|
+
"input",
|
|
7419
|
+
"assessed_at",
|
|
7420
|
+
"version",
|
|
7421
|
+
"processing_time_ms",
|
|
7422
|
+
"risk_category",
|
|
7423
|
+
"dga_score",
|
|
7424
|
+
"trust_signals",
|
|
7425
|
+
"email_deliverability",
|
|
7426
|
+
"intelligence",
|
|
7427
|
+
"evidence_summary",
|
|
7428
|
+
"errors"
|
|
7429
|
+
],
|
|
7430
|
+
properties: {
|
|
7431
|
+
input: {
|
|
7432
|
+
type: "object",
|
|
7433
|
+
required: ["domain"],
|
|
7434
|
+
properties: {
|
|
7435
|
+
domain: {
|
|
7436
|
+
type: "string",
|
|
7437
|
+
description: "Domain name being analyzed."
|
|
7438
|
+
}
|
|
7439
|
+
},
|
|
7440
|
+
description: "Input object containing the analyzed domain."
|
|
7441
|
+
},
|
|
7442
|
+
assessed_at: {
|
|
7443
|
+
type: "string",
|
|
7444
|
+
description: "Timestamp when the assessment was performed (YYYY-MM-DDTHH:mm:ssZ)."
|
|
7445
|
+
},
|
|
7446
|
+
version: {
|
|
7447
|
+
type: "string",
|
|
7448
|
+
description: "API / response schema version."
|
|
7449
|
+
},
|
|
7450
|
+
processing_time_ms: {
|
|
7451
|
+
type: "integer",
|
|
7452
|
+
description: "Time taken to process the request, in milliseconds."
|
|
7453
|
+
},
|
|
7454
|
+
risk_category: {
|
|
7455
|
+
$ref: "#/components/schemas/RiskCategory"
|
|
7456
|
+
},
|
|
7457
|
+
dga_score: {
|
|
7458
|
+
$ref: "#/components/schemas/DgaScore"
|
|
7459
|
+
},
|
|
7460
|
+
trust_signals: {
|
|
7461
|
+
$ref: "#/components/schemas/TrustSignals"
|
|
7462
|
+
},
|
|
7463
|
+
email_deliverability: {
|
|
7464
|
+
$ref: "#/components/schemas/EmailDeliverability"
|
|
7465
|
+
},
|
|
7466
|
+
intelligence: {
|
|
7467
|
+
$ref: "#/components/schemas/Intelligence"
|
|
7468
|
+
},
|
|
7469
|
+
evidence_summary: {
|
|
7470
|
+
$ref: "#/components/schemas/EvidenceSummary"
|
|
7471
|
+
},
|
|
7472
|
+
errors: {
|
|
7473
|
+
type: "array",
|
|
7474
|
+
items: {
|
|
7475
|
+
type: "string"
|
|
7476
|
+
},
|
|
7477
|
+
description: 'List of errors encountered during processing, if any (e.g. "WHOIS lookup failed"). An empty array means every signal resolved.'
|
|
7478
|
+
}
|
|
7479
|
+
},
|
|
7480
|
+
description: "Full domain reputation assessment response."
|
|
7481
|
+
},
|
|
7482
|
+
RiskCategory: {
|
|
7483
|
+
type: "object",
|
|
7484
|
+
required: [
|
|
7485
|
+
"verdict",
|
|
7486
|
+
"confidence",
|
|
7487
|
+
"primary_threat",
|
|
7488
|
+
"severity",
|
|
7489
|
+
"threat_types",
|
|
7490
|
+
"sources",
|
|
7491
|
+
"pivot_matches"
|
|
7492
|
+
],
|
|
7493
|
+
properties: {
|
|
7494
|
+
verdict: {
|
|
7495
|
+
type: "string",
|
|
7496
|
+
enum: ["safe", "suspicious"],
|
|
7497
|
+
description: "Final verdict of the risk assessment."
|
|
7498
|
+
},
|
|
7499
|
+
confidence: {
|
|
7500
|
+
type: "number",
|
|
7501
|
+
format: "float",
|
|
7502
|
+
description: "Confidence score for the verdict (0-1)."
|
|
7503
|
+
},
|
|
7504
|
+
primary_threat: {
|
|
7505
|
+
type: ["string", "null"],
|
|
7506
|
+
description: "Main threat type identified (e.g. phishing). null when no threat was identified."
|
|
7507
|
+
},
|
|
7508
|
+
severity: {
|
|
7509
|
+
type: "string",
|
|
7510
|
+
enum: ["none", "low", "medium", "high"],
|
|
7511
|
+
description: "Severity level of the risk."
|
|
7512
|
+
},
|
|
7513
|
+
threat_types: {
|
|
7514
|
+
type: "array",
|
|
7515
|
+
items: {
|
|
7516
|
+
type: "string"
|
|
7517
|
+
},
|
|
7518
|
+
description: "List of threat types associated with the domain."
|
|
7519
|
+
},
|
|
7520
|
+
sources: {
|
|
7521
|
+
type: "array",
|
|
7522
|
+
items: {
|
|
7523
|
+
$ref: "#/components/schemas/ThreatSource"
|
|
7524
|
+
},
|
|
7525
|
+
description: "Threat intelligence sources that flagged the domain. Empty when nothing flagged it."
|
|
7526
|
+
},
|
|
7527
|
+
pivot_matches: {
|
|
7528
|
+
type: "array",
|
|
7529
|
+
items: {
|
|
7530
|
+
$ref: "#/components/schemas/PivotMatch"
|
|
7531
|
+
},
|
|
7532
|
+
description: "Related pivots (nameserver, email, etc.) linked to known threats."
|
|
7533
|
+
}
|
|
7534
|
+
},
|
|
7535
|
+
description: "Overall risk assessment for the domain."
|
|
7536
|
+
},
|
|
7537
|
+
ThreatSource: {
|
|
7538
|
+
type: "object",
|
|
7539
|
+
required: [
|
|
7540
|
+
"source",
|
|
7541
|
+
"indicator",
|
|
7542
|
+
"threat_type",
|
|
7543
|
+
"confidence",
|
|
7544
|
+
"first_seen",
|
|
7545
|
+
"last_seen"
|
|
7546
|
+
],
|
|
7547
|
+
properties: {
|
|
7548
|
+
source: {
|
|
7549
|
+
type: "string",
|
|
7550
|
+
description: "Name of the threat intelligence source (e.g. Spamhaus)."
|
|
7551
|
+
},
|
|
7552
|
+
indicator: {
|
|
7553
|
+
type: "string",
|
|
7554
|
+
description: "Indicator matched by this source."
|
|
7555
|
+
},
|
|
7556
|
+
threat_type: {
|
|
7557
|
+
type: "string",
|
|
7558
|
+
description: "Threat type reported by this source."
|
|
7559
|
+
},
|
|
7560
|
+
confidence: {
|
|
7561
|
+
type: "number",
|
|
7562
|
+
format: "float",
|
|
7563
|
+
description: "Confidence score from this source (0-1)."
|
|
7564
|
+
},
|
|
7565
|
+
first_seen: {
|
|
7566
|
+
type: "string",
|
|
7567
|
+
description: "First time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ)."
|
|
7568
|
+
},
|
|
7569
|
+
last_seen: {
|
|
7570
|
+
type: "string",
|
|
7571
|
+
description: "Last time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ)."
|
|
7572
|
+
}
|
|
7573
|
+
},
|
|
7574
|
+
description: "A threat intelligence source that flagged the domain."
|
|
7575
|
+
},
|
|
7576
|
+
PivotMatch: {
|
|
7577
|
+
type: "object",
|
|
7578
|
+
required: [
|
|
7579
|
+
"pivot",
|
|
7580
|
+
"pivot_type",
|
|
7581
|
+
"total_related_threats",
|
|
7582
|
+
"confidence"
|
|
7583
|
+
],
|
|
7584
|
+
properties: {
|
|
7585
|
+
pivot: {
|
|
7586
|
+
type: "string",
|
|
7587
|
+
description: "Pivot value (e.g. a nameserver or email address)."
|
|
7588
|
+
},
|
|
7589
|
+
pivot_type: {
|
|
7590
|
+
type: "string",
|
|
7591
|
+
description: "Type of pivot."
|
|
7592
|
+
},
|
|
7593
|
+
total_related_threats: {
|
|
7594
|
+
type: "integer",
|
|
7595
|
+
description: "Total number of threats related to this pivot."
|
|
7596
|
+
},
|
|
7597
|
+
confidence: {
|
|
7598
|
+
type: "number",
|
|
7599
|
+
format: "float",
|
|
7600
|
+
description: "Confidence score for the pivot match (0-1)."
|
|
7601
|
+
}
|
|
7602
|
+
},
|
|
7603
|
+
description: "A related pivot linked to known threats."
|
|
7604
|
+
},
|
|
7605
|
+
DgaScore: {
|
|
7606
|
+
type: "object",
|
|
7607
|
+
required: ["score", "is_dga", "model", "features", "interpretation"],
|
|
7608
|
+
properties: {
|
|
7609
|
+
score: {
|
|
7610
|
+
type: "number",
|
|
7611
|
+
format: "float",
|
|
7612
|
+
description: "DGA likelihood score (0-1)."
|
|
7613
|
+
},
|
|
7614
|
+
is_dga: {
|
|
7615
|
+
type: "boolean",
|
|
7616
|
+
description: "Indicates whether the domain is likely DGA-generated."
|
|
7617
|
+
},
|
|
7618
|
+
model: {
|
|
7619
|
+
type: "string",
|
|
7620
|
+
description: "Model used to compute the DGA score."
|
|
7621
|
+
},
|
|
7622
|
+
features: {
|
|
7623
|
+
$ref: "#/components/schemas/DgaFeatures"
|
|
7624
|
+
},
|
|
7625
|
+
interpretation: {
|
|
7626
|
+
type: "string",
|
|
7627
|
+
description: "Human-readable interpretation of the DGA score."
|
|
7628
|
+
}
|
|
7629
|
+
},
|
|
7630
|
+
description: "Domain Generation Algorithm (DGA) detection results."
|
|
7631
|
+
},
|
|
7632
|
+
DgaFeatures: {
|
|
7633
|
+
type: "object",
|
|
7634
|
+
required: [
|
|
7635
|
+
"domain_length",
|
|
7636
|
+
"vowel_consonant_ratio",
|
|
7637
|
+
"ngram_perplexity",
|
|
7638
|
+
"shannon_entropy",
|
|
7639
|
+
"digit_letter_ratio",
|
|
7640
|
+
"consonant_streak_max",
|
|
7641
|
+
"tld_in_known_dga_set"
|
|
7642
|
+
],
|
|
7643
|
+
properties: {
|
|
7644
|
+
domain_length: {
|
|
7645
|
+
type: "integer",
|
|
7646
|
+
description: "Length of the domain name."
|
|
7647
|
+
},
|
|
7648
|
+
vowel_consonant_ratio: {
|
|
7649
|
+
type: "number",
|
|
7650
|
+
format: "float",
|
|
7651
|
+
description: "Ratio of vowels to consonants in the domain."
|
|
7652
|
+
},
|
|
7653
|
+
ngram_perplexity: {
|
|
7654
|
+
type: "number",
|
|
7655
|
+
format: "float",
|
|
7656
|
+
description: "N-gram perplexity score of the domain string."
|
|
7657
|
+
},
|
|
7658
|
+
shannon_entropy: {
|
|
7659
|
+
type: "number",
|
|
7660
|
+
format: "float",
|
|
7661
|
+
description: "Shannon entropy of the domain string."
|
|
7662
|
+
},
|
|
7663
|
+
digit_letter_ratio: {
|
|
7664
|
+
type: "number",
|
|
7665
|
+
format: "float",
|
|
7666
|
+
description: "Ratio of digits to letters in the domain."
|
|
7667
|
+
},
|
|
7668
|
+
consonant_streak_max: {
|
|
7669
|
+
type: "integer",
|
|
7670
|
+
description: "Maximum consecutive consonant streak in the domain."
|
|
7671
|
+
},
|
|
7672
|
+
tld_in_known_dga_set: {
|
|
7673
|
+
type: "boolean",
|
|
7674
|
+
description: "Indicates if the TLD belongs to a known DGA set."
|
|
7675
|
+
}
|
|
7676
|
+
},
|
|
7677
|
+
description: "Underlying lexical / statistical features used in DGA detection."
|
|
7678
|
+
},
|
|
7679
|
+
TrustSignals: {
|
|
7680
|
+
type: "object",
|
|
7681
|
+
required: ["trust_score", "trust_band", "signals", "indicators"],
|
|
7682
|
+
properties: {
|
|
7683
|
+
trust_score: {
|
|
7684
|
+
type: "integer",
|
|
7685
|
+
description: "Overall trust score (0-100)."
|
|
7686
|
+
},
|
|
7687
|
+
trust_band: {
|
|
7688
|
+
type: "string",
|
|
7689
|
+
description: "Trust score band / category (e.g. low, medium, high)."
|
|
7690
|
+
},
|
|
7691
|
+
signals: {
|
|
7692
|
+
$ref: "#/components/schemas/TrustScoreSignals"
|
|
7693
|
+
},
|
|
7694
|
+
indicators: {
|
|
7695
|
+
$ref: "#/components/schemas/TrustIndicators"
|
|
7696
|
+
}
|
|
7697
|
+
},
|
|
7698
|
+
description: "Trust scoring and supporting signals for the domain."
|
|
7699
|
+
},
|
|
7700
|
+
TrustScoreSignals: {
|
|
7701
|
+
type: "object",
|
|
7702
|
+
required: ["positive", "negative", "neutral"],
|
|
7703
|
+
properties: {
|
|
7704
|
+
positive: {
|
|
7705
|
+
type: "array",
|
|
7706
|
+
items: {
|
|
7707
|
+
$ref: "#/components/schemas/TrustSignalItem"
|
|
7708
|
+
},
|
|
7709
|
+
description: "Signals that positively affect the trust score."
|
|
7710
|
+
},
|
|
7711
|
+
negative: {
|
|
7712
|
+
type: "array",
|
|
7713
|
+
items: {
|
|
7714
|
+
$ref: "#/components/schemas/TrustSignalItem"
|
|
7715
|
+
},
|
|
7716
|
+
description: "Signals that negatively affect the trust score."
|
|
7717
|
+
},
|
|
7718
|
+
neutral: {
|
|
7719
|
+
type: "array",
|
|
7720
|
+
items: {
|
|
7721
|
+
$ref: "#/components/schemas/TrustSignalItem"
|
|
7722
|
+
},
|
|
7723
|
+
description: "Signals that are neutral to the trust score."
|
|
7724
|
+
}
|
|
7725
|
+
},
|
|
7726
|
+
description: "Signals contributing to the trust score."
|
|
7727
|
+
},
|
|
7728
|
+
TrustSignalItem: {
|
|
7729
|
+
type: "object",
|
|
7730
|
+
required: [
|
|
7731
|
+
"code",
|
|
7732
|
+
"weight",
|
|
7733
|
+
"polarity",
|
|
7734
|
+
"category",
|
|
7735
|
+
"evidence",
|
|
7736
|
+
"confidence"
|
|
7737
|
+
],
|
|
7738
|
+
properties: {
|
|
7739
|
+
code: {
|
|
7740
|
+
type: "string",
|
|
7741
|
+
description: "Signal code identifier (e.g. valid_ssl, dmarc_missing)."
|
|
7742
|
+
},
|
|
7743
|
+
weight: {
|
|
7744
|
+
type: "integer",
|
|
7745
|
+
description: "Weight assigned to the signal."
|
|
7746
|
+
},
|
|
7747
|
+
polarity: {
|
|
7748
|
+
type: "string",
|
|
7749
|
+
enum: ["positive", "negative", "neutral"],
|
|
7750
|
+
description: "Polarity of the signal."
|
|
7751
|
+
},
|
|
7752
|
+
category: {
|
|
7753
|
+
type: "string",
|
|
7754
|
+
description: "Category the signal belongs to (e.g. ssl_certificate)."
|
|
7755
|
+
},
|
|
7756
|
+
evidence: {
|
|
7757
|
+
type: "string",
|
|
7758
|
+
description: "Evidence supporting the signal."
|
|
7759
|
+
},
|
|
7760
|
+
confidence: {
|
|
7761
|
+
type: "number",
|
|
7762
|
+
format: "float",
|
|
7763
|
+
description: "Confidence score for the signal (0-1)."
|
|
7764
|
+
}
|
|
7765
|
+
},
|
|
7766
|
+
description: "A single trust signal contributing to the trust score."
|
|
7767
|
+
},
|
|
7768
|
+
TrustIndicators: {
|
|
7769
|
+
type: "object",
|
|
7770
|
+
properties: {
|
|
7771
|
+
is_newly_registered: {
|
|
7772
|
+
type: ["boolean", "null"],
|
|
7773
|
+
description: "Indicates whether the domain was recently registered. null when WHOIS data is unavailable."
|
|
7774
|
+
},
|
|
7775
|
+
uses_free_extension: {
|
|
7776
|
+
type: "boolean",
|
|
7777
|
+
description: "Indicates whether the domain uses a free TLD extension."
|
|
7778
|
+
},
|
|
7779
|
+
uses_free_ssl: {
|
|
7780
|
+
type: "boolean",
|
|
7781
|
+
description: "Indicates whether the domain uses a free SSL certificate."
|
|
7782
|
+
},
|
|
7783
|
+
has_privacy_whois: {
|
|
7784
|
+
type: ["boolean", "null"],
|
|
7785
|
+
description: "Indicates whether WHOIS privacy protection is enabled. null when WHOIS data is unavailable."
|
|
7786
|
+
},
|
|
7787
|
+
ssl_age_days: {
|
|
7788
|
+
type: ["integer", "null"],
|
|
7789
|
+
description: "Age of the SSL certificate in days."
|
|
7790
|
+
},
|
|
7791
|
+
has_dmarc: {
|
|
7792
|
+
type: "boolean",
|
|
7793
|
+
description: "Indicates whether a DMARC record exists."
|
|
7794
|
+
},
|
|
7795
|
+
has_spf: {
|
|
7796
|
+
type: "boolean",
|
|
7797
|
+
description: "Indicates whether an SPF record exists."
|
|
7798
|
+
},
|
|
7799
|
+
redirects_externally: {
|
|
7800
|
+
type: "boolean",
|
|
7801
|
+
description: "Indicates whether the domain redirects to an external site."
|
|
7802
|
+
},
|
|
7803
|
+
javascript_obfuscated: {
|
|
7804
|
+
type: "boolean",
|
|
7805
|
+
description: "Indicates whether obfuscated JavaScript was detected."
|
|
7806
|
+
},
|
|
7807
|
+
domain_age_days: {
|
|
7808
|
+
type: ["integer", "null"],
|
|
7809
|
+
description: "Age of the domain in days. null when WHOIS data is unavailable."
|
|
7810
|
+
},
|
|
7811
|
+
registrar: {
|
|
7812
|
+
type: ["string", "null"],
|
|
7813
|
+
description: "Domain registrar name. null when WHOIS data is unavailable."
|
|
7814
|
+
}
|
|
7815
|
+
},
|
|
7816
|
+
description: "Individual trust / risk indicators for the domain."
|
|
7817
|
+
},
|
|
7818
|
+
EmailDeliverability: {
|
|
7819
|
+
type: "object",
|
|
7820
|
+
required: [
|
|
7821
|
+
"score",
|
|
7822
|
+
"grade",
|
|
7823
|
+
"can_receive_email",
|
|
7824
|
+
"authentication",
|
|
7825
|
+
"infrastructure",
|
|
7826
|
+
"reputation",
|
|
7827
|
+
"issues"
|
|
7828
|
+
],
|
|
7829
|
+
properties: {
|
|
7830
|
+
score: {
|
|
7831
|
+
type: "integer",
|
|
7832
|
+
description: "Overall email deliverability score out of 100."
|
|
7833
|
+
},
|
|
7834
|
+
grade: {
|
|
7835
|
+
type: "string",
|
|
7836
|
+
description: "Letter / word grade summarizing the deliverability score."
|
|
7837
|
+
},
|
|
7838
|
+
can_receive_email: {
|
|
7839
|
+
type: "boolean",
|
|
7840
|
+
description: "Indicates whether the domain is configured to receive email."
|
|
7841
|
+
},
|
|
7842
|
+
authentication: {
|
|
7843
|
+
$ref: "#/components/schemas/EmailAuthentication"
|
|
7844
|
+
},
|
|
7845
|
+
infrastructure: {
|
|
7846
|
+
$ref: "#/components/schemas/EmailInfrastructure"
|
|
7847
|
+
},
|
|
7848
|
+
reputation: {
|
|
7849
|
+
$ref: "#/components/schemas/EmailReputation"
|
|
7850
|
+
},
|
|
7851
|
+
issues: {
|
|
7852
|
+
type: "array",
|
|
7853
|
+
items: {
|
|
7854
|
+
$ref: "#/components/schemas/EmailIssue"
|
|
7855
|
+
},
|
|
7856
|
+
description: "List of detected email deliverability issues or misconfigurations."
|
|
7857
|
+
}
|
|
7858
|
+
},
|
|
7859
|
+
description: "Assessment of the domain's ability to send and receive email reliably."
|
|
7860
|
+
},
|
|
7861
|
+
EmailAuthentication: {
|
|
7862
|
+
type: "object",
|
|
7863
|
+
required: ["spf", "dkim", "dmarc"],
|
|
7864
|
+
properties: {
|
|
7865
|
+
spf: {
|
|
7866
|
+
$ref: "#/components/schemas/SpfRecord"
|
|
7867
|
+
},
|
|
7868
|
+
dkim: {
|
|
7869
|
+
$ref: "#/components/schemas/DkimRecord"
|
|
7870
|
+
},
|
|
7871
|
+
dmarc: {
|
|
7872
|
+
$ref: "#/components/schemas/DmarcRecord"
|
|
7873
|
+
}
|
|
7874
|
+
},
|
|
7875
|
+
description: "Email authentication mechanisms configured for the domain."
|
|
7876
|
+
},
|
|
7877
|
+
SpfRecord: {
|
|
7878
|
+
type: "object",
|
|
7879
|
+
required: ["present", "policy", "record"],
|
|
7880
|
+
properties: {
|
|
7881
|
+
present: {
|
|
7882
|
+
type: "boolean",
|
|
7883
|
+
description: "Indicates whether an SPF record was found."
|
|
7884
|
+
},
|
|
7885
|
+
policy: {
|
|
7886
|
+
type: "string",
|
|
7887
|
+
description: "SPF enforcement policy qualifier found in the record (e.g. ~all, -all)."
|
|
7888
|
+
},
|
|
7889
|
+
record: {
|
|
7890
|
+
type: "string",
|
|
7891
|
+
description: "Raw SPF DNS TXT record string."
|
|
7892
|
+
}
|
|
7893
|
+
},
|
|
7894
|
+
description: "Sender Policy Framework configuration."
|
|
7895
|
+
},
|
|
7896
|
+
DkimRecord: {
|
|
7897
|
+
type: "object",
|
|
7898
|
+
required: ["found", "selectors_found", "providers_detected", "note"],
|
|
7899
|
+
properties: {
|
|
7900
|
+
found: {
|
|
7901
|
+
type: "boolean",
|
|
7902
|
+
description: "Indicates whether a DKIM record was found for any probed selector."
|
|
7903
|
+
},
|
|
7904
|
+
selectors_found: {
|
|
7905
|
+
type: "array",
|
|
7906
|
+
items: {
|
|
7907
|
+
type: "string"
|
|
7908
|
+
},
|
|
7909
|
+
description: "List of DKIM selectors for which a record was found."
|
|
7910
|
+
},
|
|
7911
|
+
providers_detected: {
|
|
7912
|
+
type: "array",
|
|
7913
|
+
items: {
|
|
7914
|
+
type: "string"
|
|
7915
|
+
},
|
|
7916
|
+
description: "Email service providers inferred from the matched DKIM selectors."
|
|
7917
|
+
},
|
|
7918
|
+
note: {
|
|
7919
|
+
type: "string",
|
|
7920
|
+
description: "Clarifying note about the limitations of DKIM selector probing."
|
|
7921
|
+
}
|
|
7922
|
+
},
|
|
7923
|
+
description: "DomainKeys Identified Mail configuration."
|
|
7924
|
+
},
|
|
7925
|
+
DmarcRecord: {
|
|
7926
|
+
type: "object",
|
|
7927
|
+
required: ["present", "policy", "reporting_configured"],
|
|
7928
|
+
properties: {
|
|
7929
|
+
present: {
|
|
7930
|
+
type: "boolean",
|
|
7931
|
+
description: "Indicates whether a DMARC record was found."
|
|
7932
|
+
},
|
|
7933
|
+
policy: {
|
|
7934
|
+
type: "string",
|
|
7935
|
+
description: "DMARC enforcement policy applied to failing messages (e.g. none, quarantine, reject)."
|
|
7936
|
+
},
|
|
7937
|
+
reporting_configured: {
|
|
7938
|
+
type: "boolean",
|
|
7939
|
+
description: "Indicates whether DMARC aggregate / forensic reporting addresses are configured."
|
|
7940
|
+
}
|
|
7941
|
+
},
|
|
7942
|
+
description: "Domain-based Message Authentication, Reporting and Conformance configuration."
|
|
7943
|
+
},
|
|
7944
|
+
EmailInfrastructure: {
|
|
7945
|
+
type: "object",
|
|
7946
|
+
required: ["mx_count", "mx_records", "mx_provider", "null_mx"],
|
|
7947
|
+
properties: {
|
|
7948
|
+
mx_count: {
|
|
7949
|
+
type: "integer",
|
|
7950
|
+
description: "Number of MX records found for the domain."
|
|
7951
|
+
},
|
|
7952
|
+
mx_records: {
|
|
7953
|
+
type: "array",
|
|
7954
|
+
items: {
|
|
7955
|
+
type: "string"
|
|
7956
|
+
},
|
|
7957
|
+
description: "List of mail exchange server hostnames for the domain."
|
|
7958
|
+
},
|
|
7959
|
+
mx_provider: {
|
|
7960
|
+
type: "string",
|
|
7961
|
+
description: "Email hosting provider inferred from the MX records."
|
|
7962
|
+
},
|
|
7963
|
+
null_mx: {
|
|
7964
|
+
type: "boolean",
|
|
7965
|
+
description: "Indicates whether the domain explicitly declines email via a null MX record."
|
|
7966
|
+
}
|
|
7967
|
+
},
|
|
7968
|
+
description: "Mail server infrastructure backing the domain."
|
|
7969
|
+
},
|
|
7970
|
+
EmailReputation: {
|
|
7971
|
+
type: "object",
|
|
7972
|
+
required: ["spam_blacklisted", "newly_registered"],
|
|
7973
|
+
properties: {
|
|
7974
|
+
spam_blacklisted: {
|
|
7975
|
+
type: "boolean",
|
|
7976
|
+
description: "Indicates whether the domain appears on known spam blacklists."
|
|
7977
|
+
},
|
|
7978
|
+
newly_registered: {
|
|
7979
|
+
type: "boolean",
|
|
7980
|
+
description: "Indicates whether the domain was registered recently."
|
|
7981
|
+
},
|
|
7982
|
+
domain_age_days: {
|
|
7983
|
+
type: ["integer", "null"],
|
|
7984
|
+
description: "Age of the domain in days since registration."
|
|
7985
|
+
}
|
|
7986
|
+
},
|
|
7987
|
+
description: "Reputation and trust signals related to the domain's email sending history."
|
|
7988
|
+
},
|
|
7989
|
+
EmailIssue: {
|
|
7990
|
+
type: "object",
|
|
7991
|
+
properties: {
|
|
7992
|
+
code: {
|
|
7993
|
+
type: "string",
|
|
7994
|
+
description: "Machine-readable code identifying the specific deliverability issue."
|
|
7995
|
+
},
|
|
7996
|
+
severity: {
|
|
7997
|
+
type: "string",
|
|
7998
|
+
description: "Severity level assigned to the detected issue."
|
|
7999
|
+
},
|
|
8000
|
+
message: {
|
|
8001
|
+
type: "string",
|
|
8002
|
+
description: "Human-readable explanation of the issue."
|
|
8003
|
+
},
|
|
8004
|
+
recommendation: {
|
|
8005
|
+
type: "string",
|
|
8006
|
+
description: "Plain-language description of the exact fix to apply."
|
|
8007
|
+
}
|
|
8008
|
+
},
|
|
8009
|
+
description: "A detected email deliverability issue or misconfiguration."
|
|
8010
|
+
},
|
|
8011
|
+
Intelligence: {
|
|
8012
|
+
type: "object",
|
|
8013
|
+
required: [
|
|
8014
|
+
"ioc_type",
|
|
8015
|
+
"ioc_value",
|
|
8016
|
+
"related_iocs",
|
|
8017
|
+
"feed_tags",
|
|
8018
|
+
"stix_pattern",
|
|
8019
|
+
"recommended_action",
|
|
8020
|
+
"first_seen",
|
|
8021
|
+
"last_seen"
|
|
8022
|
+
],
|
|
8023
|
+
properties: {
|
|
8024
|
+
ioc_type: {
|
|
8025
|
+
type: "string",
|
|
8026
|
+
description: "Type of the indicator of compromise (e.g. domain)."
|
|
8027
|
+
},
|
|
8028
|
+
ioc_value: {
|
|
8029
|
+
type: "string",
|
|
8030
|
+
description: "Value of the indicator of compromise."
|
|
8031
|
+
},
|
|
8032
|
+
related_iocs: {
|
|
8033
|
+
type: "array",
|
|
8034
|
+
items: {
|
|
8035
|
+
$ref: "#/components/schemas/RelatedIoc"
|
|
8036
|
+
},
|
|
8037
|
+
description: "Other IOCs related to this domain."
|
|
8038
|
+
},
|
|
8039
|
+
feed_tags: {
|
|
8040
|
+
type: "array",
|
|
8041
|
+
items: {
|
|
8042
|
+
type: "string"
|
|
8043
|
+
},
|
|
8044
|
+
description: "Tags associated with this IOC from threat feeds."
|
|
8045
|
+
},
|
|
8046
|
+
stix_pattern: {
|
|
8047
|
+
type: "string",
|
|
8048
|
+
description: "STIX 2.1 pattern representation of the IOC, ready to wrap into an Indicator object."
|
|
8049
|
+
},
|
|
8050
|
+
recommended_action: {
|
|
8051
|
+
type: "string",
|
|
8052
|
+
enum: ["allow", "monitor", "block"],
|
|
8053
|
+
description: "Recommended action based on the assessment."
|
|
8054
|
+
},
|
|
8055
|
+
first_seen: {
|
|
8056
|
+
type: ["string", "null"],
|
|
8057
|
+
description: "First time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed."
|
|
8058
|
+
},
|
|
8059
|
+
last_seen: {
|
|
8060
|
+
type: ["string", "null"],
|
|
8061
|
+
description: "Last time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed."
|
|
8062
|
+
}
|
|
8063
|
+
},
|
|
8064
|
+
description: "Threat intelligence details for the indicator of compromise (IOC)."
|
|
8065
|
+
},
|
|
8066
|
+
RelatedIoc: {
|
|
8067
|
+
type: "object",
|
|
8068
|
+
required: ["type", "value", "confidence"],
|
|
8069
|
+
properties: {
|
|
8070
|
+
type: {
|
|
8071
|
+
type: "string",
|
|
8072
|
+
description: "Type of the related IOC (e.g. ipv4, ipv6)."
|
|
8073
|
+
},
|
|
8074
|
+
value: {
|
|
8075
|
+
type: "string",
|
|
8076
|
+
description: "Value of the related IOC."
|
|
8077
|
+
},
|
|
8078
|
+
confidence: {
|
|
8079
|
+
type: "number",
|
|
8080
|
+
format: "float",
|
|
8081
|
+
description: "Confidence score for the related IOC (0-1)."
|
|
8082
|
+
}
|
|
8083
|
+
},
|
|
8084
|
+
description: "A related indicator of compromise."
|
|
8085
|
+
},
|
|
8086
|
+
EvidenceSummary: {
|
|
8087
|
+
type: "object",
|
|
8088
|
+
required: ["why_flagged"],
|
|
8089
|
+
properties: {
|
|
8090
|
+
why_flagged: {
|
|
8091
|
+
type: "array",
|
|
8092
|
+
items: {
|
|
8093
|
+
type: "string"
|
|
8094
|
+
},
|
|
8095
|
+
description: "List of reasons why the domain was flagged. Empty for a clean domain."
|
|
8096
|
+
}
|
|
8097
|
+
},
|
|
8098
|
+
description: "Summary of reasons behind the risk assessment."
|
|
8099
|
+
},
|
|
8100
|
+
ErrorResponse: {
|
|
8101
|
+
type: "object",
|
|
8102
|
+
description: "Standard error envelope returned by the API on failed requests.",
|
|
8103
|
+
required: ["message"],
|
|
8104
|
+
properties: {
|
|
8105
|
+
error: {
|
|
8106
|
+
type: "string",
|
|
8107
|
+
description: "Short error category or exception type."
|
|
8108
|
+
},
|
|
8109
|
+
message: {
|
|
8110
|
+
type: "string",
|
|
8111
|
+
description: "Human-readable error message describing the failure."
|
|
8112
|
+
},
|
|
8113
|
+
path: {
|
|
8114
|
+
type: "string",
|
|
8115
|
+
description: "API endpoint path that produced the error."
|
|
8116
|
+
},
|
|
8117
|
+
status: {
|
|
8118
|
+
type: "integer",
|
|
8119
|
+
description: "HTTP status code returned with the error."
|
|
8120
|
+
},
|
|
8121
|
+
timestamp: {
|
|
8122
|
+
type: "string",
|
|
8123
|
+
format: "date-time",
|
|
8124
|
+
description: "Timestamp when the error occurred (ISO 8601)."
|
|
8125
|
+
}
|
|
8126
|
+
}
|
|
8127
|
+
}
|
|
8128
|
+
},
|
|
8129
|
+
headers: {
|
|
8130
|
+
"X-AF-Credits-Cost": {
|
|
8131
|
+
description: "Specifies the number of credits consumed by the current request.",
|
|
8132
|
+
schema: {
|
|
8133
|
+
type: "integer"
|
|
8134
|
+
}
|
|
8135
|
+
}
|
|
8136
|
+
}
|
|
8137
|
+
},
|
|
8138
|
+
security: [
|
|
8139
|
+
{
|
|
8140
|
+
ApiKeyAuthHeader: []
|
|
8141
|
+
},
|
|
8142
|
+
{
|
|
8143
|
+
ApiKeyAuthQuery: []
|
|
8144
|
+
}
|
|
8145
|
+
]
|
|
8146
|
+
};
|
|
8147
|
+
|
|
7032
8148
|
// specs/domain/domain-search-with-suggestions.json
|
|
7033
8149
|
var domain_search_with_suggestions_default = {
|
|
7034
8150
|
openapi: "3.1.1",
|
|
@@ -7244,47 +8360,278 @@ var domain_search_with_suggestions_default = {
|
|
|
7244
8360
|
schemas: {
|
|
7245
8361
|
DomainAvailabilityResponse: {
|
|
7246
8362
|
type: "object",
|
|
7247
|
-
description: "Domain availability check response containing the domain name and availability status. Returned when sug=false.",
|
|
8363
|
+
description: "Domain availability check response containing the domain name and availability status. Returned when sug=false.",
|
|
8364
|
+
required: ["domain", "domainAvailability"],
|
|
8365
|
+
properties: {
|
|
8366
|
+
domain: {
|
|
8367
|
+
type: "string",
|
|
8368
|
+
description: "Name of the queried domain."
|
|
8369
|
+
},
|
|
8370
|
+
domainAvailability: {
|
|
8371
|
+
type: "boolean",
|
|
8372
|
+
description: "True if available, false if not available."
|
|
8373
|
+
}
|
|
8374
|
+
}
|
|
8375
|
+
},
|
|
8376
|
+
DomainSuggestionResponse: {
|
|
8377
|
+
type: "object",
|
|
8378
|
+
required: ["domain_available_response"],
|
|
8379
|
+
properties: {
|
|
8380
|
+
domain_available_response: {
|
|
8381
|
+
type: "array",
|
|
8382
|
+
description: "List of domain availability objects.",
|
|
8383
|
+
items: {
|
|
8384
|
+
$ref: "#/components/schemas/DomainSuggestionItem"
|
|
8385
|
+
}
|
|
8386
|
+
}
|
|
8387
|
+
},
|
|
8388
|
+
description: "Domain suggestion response containing a list of availability-suggestions."
|
|
8389
|
+
},
|
|
8390
|
+
DomainSuggestionItem: {
|
|
8391
|
+
type: "object",
|
|
8392
|
+
description: "A single domain suggestion with availability status.",
|
|
8393
|
+
required: ["domain", "domainAvailability"],
|
|
8394
|
+
properties: {
|
|
8395
|
+
domain: {
|
|
8396
|
+
type: "string",
|
|
8397
|
+
description: "Name of the suggested domain."
|
|
8398
|
+
},
|
|
8399
|
+
domainAvailability: {
|
|
8400
|
+
type: "boolean",
|
|
8401
|
+
description: "True if available, false if not available."
|
|
8402
|
+
}
|
|
8403
|
+
}
|
|
8404
|
+
},
|
|
8405
|
+
ErrorResponse: {
|
|
8406
|
+
type: "object",
|
|
8407
|
+
description: "Standard error envelope returned by the API on failed requests.",
|
|
8408
|
+
required: ["message"],
|
|
8409
|
+
properties: {
|
|
8410
|
+
error: {
|
|
8411
|
+
type: "string",
|
|
8412
|
+
description: "Short error category or exception type."
|
|
8413
|
+
},
|
|
8414
|
+
message: {
|
|
8415
|
+
type: "string",
|
|
8416
|
+
description: "Human-readable error message describing the failure."
|
|
8417
|
+
},
|
|
8418
|
+
path: {
|
|
8419
|
+
type: "string",
|
|
8420
|
+
description: "API endpoint path that produced the error."
|
|
8421
|
+
},
|
|
8422
|
+
status: {
|
|
8423
|
+
type: "integer",
|
|
8424
|
+
description: "HTTP status code returned with the error."
|
|
8425
|
+
},
|
|
8426
|
+
timestamp: {
|
|
8427
|
+
type: "string",
|
|
8428
|
+
format: "date-time",
|
|
8429
|
+
description: "Timestamp when the error occurred (ISO 8601)."
|
|
8430
|
+
}
|
|
8431
|
+
}
|
|
8432
|
+
}
|
|
8433
|
+
},
|
|
8434
|
+
headers: {
|
|
8435
|
+
"X-AF-Credits-Cost": {
|
|
8436
|
+
description: "Specifies the number of credits consumed by the current request.",
|
|
8437
|
+
schema: {
|
|
8438
|
+
type: "integer"
|
|
8439
|
+
}
|
|
8440
|
+
}
|
|
8441
|
+
}
|
|
8442
|
+
},
|
|
8443
|
+
security: [
|
|
8444
|
+
{
|
|
8445
|
+
ApiKeyAuthHeader: []
|
|
8446
|
+
},
|
|
8447
|
+
{
|
|
8448
|
+
ApiKeyAuthQuery: []
|
|
8449
|
+
}
|
|
8450
|
+
]
|
|
8451
|
+
};
|
|
8452
|
+
|
|
8453
|
+
// specs/domain/domain-search.json
|
|
8454
|
+
var domain_search_default = {
|
|
8455
|
+
openapi: "3.1.1",
|
|
8456
|
+
info: {
|
|
8457
|
+
title: "Domain Availability API - Check Domain Names in Real Time and Get Suggestions",
|
|
8458
|
+
version: "1.0.0",
|
|
8459
|
+
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.",
|
|
8460
|
+
contact: {
|
|
8461
|
+
name: "APIFreaks Support",
|
|
8462
|
+
url: "https://apifreaks.com/contact",
|
|
8463
|
+
email: "support@apifreaks.com"
|
|
8464
|
+
}
|
|
8465
|
+
},
|
|
8466
|
+
servers: [
|
|
8467
|
+
{
|
|
8468
|
+
url: "https://api.apifreaks.com/v1.0",
|
|
8469
|
+
description: "Domain Search API Server"
|
|
8470
|
+
}
|
|
8471
|
+
],
|
|
8472
|
+
paths: {
|
|
8473
|
+
"/domain/availability": {
|
|
8474
|
+
get: {
|
|
8475
|
+
tags: ["Domain APIs"],
|
|
8476
|
+
summary: "Check whether a domain is available for registration or not.",
|
|
8477
|
+
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).",
|
|
8478
|
+
parameters: [
|
|
8479
|
+
{
|
|
8480
|
+
name: "format",
|
|
8481
|
+
in: "query",
|
|
8482
|
+
required: false,
|
|
8483
|
+
schema: {
|
|
8484
|
+
type: "string",
|
|
8485
|
+
enum: ["json", "xml"],
|
|
8486
|
+
default: "json"
|
|
8487
|
+
},
|
|
8488
|
+
description: "Format of the response."
|
|
8489
|
+
},
|
|
8490
|
+
{
|
|
8491
|
+
name: "domain",
|
|
8492
|
+
in: "query",
|
|
8493
|
+
required: true,
|
|
8494
|
+
schema: {
|
|
8495
|
+
type: "string"
|
|
8496
|
+
},
|
|
8497
|
+
description: "Domain name whose availability is to be checked."
|
|
8498
|
+
},
|
|
8499
|
+
{
|
|
8500
|
+
name: "source",
|
|
8501
|
+
in: "query",
|
|
8502
|
+
required: false,
|
|
8503
|
+
schema: {
|
|
8504
|
+
type: "string",
|
|
8505
|
+
enum: ["dns", "whois"],
|
|
8506
|
+
default: "dns"
|
|
8507
|
+
},
|
|
8508
|
+
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.'
|
|
8509
|
+
}
|
|
8510
|
+
],
|
|
8511
|
+
responses: {
|
|
8512
|
+
"200": {
|
|
8513
|
+
description: "Success",
|
|
8514
|
+
content: {
|
|
8515
|
+
"application/json": {
|
|
8516
|
+
schema: {
|
|
8517
|
+
$ref: "#/components/schemas/DomainAvailabilityResponse"
|
|
8518
|
+
},
|
|
8519
|
+
examples: {
|
|
8520
|
+
success: {
|
|
8521
|
+
summary: "Domain available",
|
|
8522
|
+
value: {
|
|
8523
|
+
domain: "google.com",
|
|
8524
|
+
domainAvailability: false
|
|
8525
|
+
}
|
|
8526
|
+
}
|
|
8527
|
+
}
|
|
8528
|
+
}
|
|
8529
|
+
},
|
|
8530
|
+
headers: {
|
|
8531
|
+
"X-AF-Credits-Cost": {
|
|
8532
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
8533
|
+
}
|
|
8534
|
+
}
|
|
8535
|
+
},
|
|
8536
|
+
"400": {
|
|
8537
|
+
description: "Bad Request \u2013 Missing domain, or domain has an unrecognized/unsupported TLD",
|
|
8538
|
+
content: {
|
|
8539
|
+
"application/json": {
|
|
8540
|
+
schema: {
|
|
8541
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
8542
|
+
},
|
|
8543
|
+
examples: {
|
|
8544
|
+
missingDomain: {
|
|
8545
|
+
summary: "Missing required domain parameter",
|
|
8546
|
+
value: {
|
|
8547
|
+
error: "Invalid Param Exception",
|
|
8548
|
+
message: "please pass correct parameters",
|
|
8549
|
+
path: "/v1.0/domain/availability",
|
|
8550
|
+
status: 400,
|
|
8551
|
+
timestamp: "2026-07-27T12:18:21.115Z"
|
|
8552
|
+
}
|
|
8553
|
+
},
|
|
8554
|
+
unsupportedTld: {
|
|
8555
|
+
summary: "Domain has an unrecognized or unsupported TLD",
|
|
8556
|
+
value: {
|
|
8557
|
+
timestamp: "2026-07-27T12:18:47.346748812Z",
|
|
8558
|
+
status: 400,
|
|
8559
|
+
error: "Invalid Param Exception",
|
|
8560
|
+
message: "Please pass domain param correct value [For Technical Support: support@whoisfreaks.com]",
|
|
8561
|
+
path: "/v1.0/domain/availability"
|
|
8562
|
+
}
|
|
8563
|
+
}
|
|
8564
|
+
}
|
|
8565
|
+
}
|
|
8566
|
+
},
|
|
8567
|
+
headers: {
|
|
8568
|
+
"X-AF-Credits-Cost": {
|
|
8569
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
8570
|
+
}
|
|
8571
|
+
}
|
|
8572
|
+
},
|
|
8573
|
+
"408": {
|
|
8574
|
+
description: "Request Timeout \u2013 Unable to fetch WHOIS data",
|
|
8575
|
+
content: {
|
|
8576
|
+
"application/json": {
|
|
8577
|
+
schema: {
|
|
8578
|
+
$ref: "#/components/schemas/ErrorResponse"
|
|
8579
|
+
},
|
|
8580
|
+
examples: {
|
|
8581
|
+
error: {
|
|
8582
|
+
summary: "Error response",
|
|
8583
|
+
value: {
|
|
8584
|
+
timestamp: "2025-08-14T10:37:21.871Z",
|
|
8585
|
+
status: 408,
|
|
8586
|
+
error: "Request Timeout",
|
|
8587
|
+
message: "Unable to fetch whois data. Please try again. [For Technical Support email at: support@apifreaks.com]",
|
|
8588
|
+
path: "/v1.0/domain/availability"
|
|
8589
|
+
}
|
|
8590
|
+
}
|
|
8591
|
+
}
|
|
8592
|
+
}
|
|
8593
|
+
},
|
|
8594
|
+
headers: {
|
|
8595
|
+
"X-AF-Credits-Cost": {
|
|
8596
|
+
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
8597
|
+
}
|
|
8598
|
+
}
|
|
8599
|
+
}
|
|
8600
|
+
},
|
|
8601
|
+
operationId: "checkDomainAvailability"
|
|
8602
|
+
}
|
|
8603
|
+
}
|
|
8604
|
+
},
|
|
8605
|
+
components: {
|
|
8606
|
+
securitySchemes: {
|
|
8607
|
+
ApiKeyAuthHeader: {
|
|
8608
|
+
type: "apiKey",
|
|
8609
|
+
in: "header",
|
|
8610
|
+
name: "X-apiKey",
|
|
8611
|
+
description: "Pass your API key via the X-apiKey request header."
|
|
8612
|
+
},
|
|
8613
|
+
ApiKeyAuthQuery: {
|
|
8614
|
+
type: "apiKey",
|
|
8615
|
+
in: "query",
|
|
8616
|
+
name: "apiKey",
|
|
8617
|
+
description: "Pass your API key via the apiKey query parameter."
|
|
8618
|
+
}
|
|
8619
|
+
},
|
|
8620
|
+
schemas: {
|
|
8621
|
+
DomainAvailabilityResponse: {
|
|
8622
|
+
type: "object",
|
|
7248
8623
|
required: ["domain", "domainAvailability"],
|
|
7249
8624
|
properties: {
|
|
7250
8625
|
domain: {
|
|
7251
8626
|
type: "string",
|
|
7252
|
-
description: "Name of the queried domain
|
|
8627
|
+
description: "Name of the queried domain"
|
|
7253
8628
|
},
|
|
7254
8629
|
domainAvailability: {
|
|
7255
8630
|
type: "boolean",
|
|
7256
|
-
description: "True if available, false if not available
|
|
7257
|
-
}
|
|
7258
|
-
}
|
|
7259
|
-
},
|
|
7260
|
-
DomainSuggestionResponse: {
|
|
7261
|
-
type: "object",
|
|
7262
|
-
required: ["domain_available_response"],
|
|
7263
|
-
properties: {
|
|
7264
|
-
domain_available_response: {
|
|
7265
|
-
type: "array",
|
|
7266
|
-
description: "List of domain availability objects.",
|
|
7267
|
-
items: {
|
|
7268
|
-
$ref: "#/components/schemas/DomainSuggestionItem"
|
|
7269
|
-
}
|
|
8631
|
+
description: "True if available, false if not available"
|
|
7270
8632
|
}
|
|
7271
8633
|
},
|
|
7272
|
-
description: "Domain
|
|
7273
|
-
},
|
|
7274
|
-
DomainSuggestionItem: {
|
|
7275
|
-
type: "object",
|
|
7276
|
-
description: "A single domain suggestion with availability status.",
|
|
7277
|
-
required: ["domain", "domainAvailability"],
|
|
7278
|
-
properties: {
|
|
7279
|
-
domain: {
|
|
7280
|
-
type: "string",
|
|
7281
|
-
description: "Name of the suggested domain."
|
|
7282
|
-
},
|
|
7283
|
-
domainAvailability: {
|
|
7284
|
-
type: "boolean",
|
|
7285
|
-
description: "True if available, false if not available."
|
|
7286
|
-
}
|
|
7287
|
-
}
|
|
8634
|
+
description: "Domain availability check response containing the domain name and availability status."
|
|
7288
8635
|
},
|
|
7289
8636
|
ErrorResponse: {
|
|
7290
8637
|
type: "object",
|
|
@@ -7334,13 +8681,13 @@ var domain_search_with_suggestions_default = {
|
|
|
7334
8681
|
]
|
|
7335
8682
|
};
|
|
7336
8683
|
|
|
7337
|
-
// specs/domain/domain-
|
|
7338
|
-
var
|
|
8684
|
+
// specs/domain/domain-typosquatting.json
|
|
8685
|
+
var domain_typosquatting_default = {
|
|
7339
8686
|
openapi: "3.1.1",
|
|
7340
8687
|
info: {
|
|
7341
|
-
title: "Domain
|
|
8688
|
+
title: "Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery",
|
|
7342
8689
|
version: "1.0.0",
|
|
7343
|
-
description: "
|
|
8690
|
+
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.",
|
|
7344
8691
|
contact: {
|
|
7345
8692
|
name: "APIFreaks Support",
|
|
7346
8693
|
url: "https://apifreaks.com/contact",
|
|
@@ -7350,15 +8697,15 @@ var domain_search_default = {
|
|
|
7350
8697
|
servers: [
|
|
7351
8698
|
{
|
|
7352
8699
|
url: "https://api.apifreaks.com/v1.0",
|
|
7353
|
-
description: "Domain
|
|
8700
|
+
description: "Domain Typosquatting API Server"
|
|
7354
8701
|
}
|
|
7355
8702
|
],
|
|
7356
8703
|
paths: {
|
|
7357
|
-
"/domain/
|
|
8704
|
+
"/domain/typosquatting": {
|
|
7358
8705
|
get: {
|
|
7359
8706
|
tags: ["Domain APIs"],
|
|
7360
|
-
summary: "
|
|
7361
|
-
description: "The Domain
|
|
8707
|
+
summary: "Find registered typo-variant or wildcard-pattern domains for a brand keyword.",
|
|
8708
|
+
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.",
|
|
7362
8709
|
parameters: [
|
|
7363
8710
|
{
|
|
7364
8711
|
name: "format",
|
|
@@ -7372,24 +8719,35 @@ var domain_search_default = {
|
|
|
7372
8719
|
description: "Format of the response."
|
|
7373
8720
|
},
|
|
7374
8721
|
{
|
|
7375
|
-
name: "
|
|
8722
|
+
name: "keyword",
|
|
7376
8723
|
in: "query",
|
|
7377
|
-
required:
|
|
8724
|
+
required: false,
|
|
7378
8725
|
schema: {
|
|
7379
|
-
type: "string"
|
|
8726
|
+
type: "string",
|
|
8727
|
+
minLength: 3,
|
|
8728
|
+
maxLength: 63
|
|
7380
8729
|
},
|
|
7381
|
-
description: "
|
|
8730
|
+
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."
|
|
7382
8731
|
},
|
|
7383
8732
|
{
|
|
7384
|
-
name: "
|
|
8733
|
+
name: "pattern",
|
|
7385
8734
|
in: "query",
|
|
7386
8735
|
required: false,
|
|
7387
8736
|
schema: {
|
|
7388
8737
|
type: "string",
|
|
7389
|
-
|
|
7390
|
-
|
|
8738
|
+
minLength: 3,
|
|
8739
|
+
maxLength: 63
|
|
7391
8740
|
},
|
|
7392
|
-
description:
|
|
8741
|
+
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."
|
|
8742
|
+
},
|
|
8743
|
+
{
|
|
8744
|
+
name: "pageToken",
|
|
8745
|
+
in: "query",
|
|
8746
|
+
required: false,
|
|
8747
|
+
schema: {
|
|
8748
|
+
type: "string"
|
|
8749
|
+
},
|
|
8750
|
+
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."
|
|
7393
8751
|
}
|
|
7394
8752
|
],
|
|
7395
8753
|
responses: {
|
|
@@ -7398,14 +8756,85 @@ var domain_search_default = {
|
|
|
7398
8756
|
content: {
|
|
7399
8757
|
"application/json": {
|
|
7400
8758
|
schema: {
|
|
7401
|
-
$ref: "#/components/schemas/
|
|
8759
|
+
$ref: "#/components/schemas/DomainTyposquattingResponse"
|
|
7402
8760
|
},
|
|
7403
8761
|
examples: {
|
|
7404
|
-
|
|
7405
|
-
summary: "
|
|
8762
|
+
keywordSuccess: {
|
|
8763
|
+
summary: "Keyword search (paypal)",
|
|
7406
8764
|
value: {
|
|
7407
|
-
|
|
7408
|
-
|
|
8765
|
+
status: true,
|
|
8766
|
+
totalRecords: 1284,
|
|
8767
|
+
currentPage: 1,
|
|
8768
|
+
hasNextPage: true,
|
|
8769
|
+
totalPages: 13,
|
|
8770
|
+
nextPageToken: "<opaque_token>",
|
|
8771
|
+
domains: [
|
|
8772
|
+
{
|
|
8773
|
+
domainName: "p-aypal.com",
|
|
8774
|
+
createDate: "2025-04-17",
|
|
8775
|
+
expiryDate: "2026-04-17",
|
|
8776
|
+
lastSeen: "2026-05-29",
|
|
8777
|
+
isDropped: true
|
|
8778
|
+
},
|
|
8779
|
+
{
|
|
8780
|
+
domainName: "p-aypal.de",
|
|
8781
|
+
lastSeen: "2024-07-11",
|
|
8782
|
+
isDropped: true
|
|
8783
|
+
},
|
|
8784
|
+
{
|
|
8785
|
+
domainName: "p0aypal.com",
|
|
8786
|
+
createDate: "2017-12-29",
|
|
8787
|
+
expiryDate: "2026-12-29",
|
|
8788
|
+
lastSeen: "2026-08-18",
|
|
8789
|
+
isDropped: false
|
|
8790
|
+
},
|
|
8791
|
+
{
|
|
8792
|
+
domainName: "p7ypal.com",
|
|
8793
|
+
isDropped: true
|
|
8794
|
+
},
|
|
8795
|
+
{
|
|
8796
|
+
domainName: "pa-pal.club",
|
|
8797
|
+
createDate: "2019-10-25",
|
|
8798
|
+
expiryDate: "2020-10-25",
|
|
8799
|
+
isDropped: false
|
|
8800
|
+
}
|
|
8801
|
+
]
|
|
8802
|
+
}
|
|
8803
|
+
},
|
|
8804
|
+
patternSuccess: {
|
|
8805
|
+
summary: "Wildcard pattern search (*paypal*)",
|
|
8806
|
+
value: {
|
|
8807
|
+
status: true,
|
|
8808
|
+
totalRecords: 5471,
|
|
8809
|
+
currentPage: 1,
|
|
8810
|
+
hasNextPage: true,
|
|
8811
|
+
totalPages: 55,
|
|
8812
|
+
nextPageToken: "<opaque_token>",
|
|
8813
|
+
domains: [
|
|
8814
|
+
{
|
|
8815
|
+
domainName: "paypal-support.com",
|
|
8816
|
+
createDate: "2024-11-02",
|
|
8817
|
+
expiryDate: "2026-11-02",
|
|
8818
|
+
lastSeen: "2026-08-30",
|
|
8819
|
+
isDropped: false
|
|
8820
|
+
},
|
|
8821
|
+
{
|
|
8822
|
+
domainName: "login-paypal.net",
|
|
8823
|
+
lastSeen: "2025-12-14",
|
|
8824
|
+
isDropped: true
|
|
8825
|
+
}
|
|
8826
|
+
]
|
|
8827
|
+
}
|
|
8828
|
+
},
|
|
8829
|
+
emptyResult: {
|
|
8830
|
+
summary: "No matches found",
|
|
8831
|
+
value: {
|
|
8832
|
+
status: true,
|
|
8833
|
+
totalRecords: 0,
|
|
8834
|
+
currentPage: 1,
|
|
8835
|
+
hasNextPage: false,
|
|
8836
|
+
totalPages: 0,
|
|
8837
|
+
domains: []
|
|
7409
8838
|
}
|
|
7410
8839
|
}
|
|
7411
8840
|
}
|
|
@@ -7418,58 +8847,41 @@ var domain_search_default = {
|
|
|
7418
8847
|
}
|
|
7419
8848
|
},
|
|
7420
8849
|
"400": {
|
|
7421
|
-
description: "Bad Request \u2013
|
|
8850
|
+
description: "Bad Request \u2013 Invalid parameters",
|
|
7422
8851
|
content: {
|
|
7423
8852
|
"application/json": {
|
|
7424
8853
|
schema: {
|
|
7425
8854
|
$ref: "#/components/schemas/ErrorResponse"
|
|
7426
8855
|
},
|
|
7427
8856
|
examples: {
|
|
7428
|
-
|
|
7429
|
-
summary: "
|
|
8857
|
+
shortPattern: {
|
|
8858
|
+
summary: "Pattern has too few non-wildcard characters",
|
|
7430
8859
|
value: {
|
|
7431
|
-
error: "Invalid
|
|
7432
|
-
message: "
|
|
7433
|
-
path: "/v1.0/domain/
|
|
8860
|
+
error: "Invalid Pattern Exception",
|
|
8861
|
+
message: "The pattern must contain at least 5 non-wildcard characters and no more than 3 wildcards.",
|
|
8862
|
+
path: "/v1.0/domain/typosquatting",
|
|
7434
8863
|
status: 400,
|
|
7435
|
-
timestamp: "2026-
|
|
8864
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7436
8865
|
}
|
|
7437
8866
|
},
|
|
7438
|
-
|
|
7439
|
-
summary: "
|
|
8867
|
+
bothParams: {
|
|
8868
|
+
summary: "Both keyword and pattern supplied",
|
|
7440
8869
|
value: {
|
|
7441
|
-
timestamp: "2026-07-27T12:18:47.346748812Z",
|
|
7442
|
-
status: 400,
|
|
7443
8870
|
error: "Invalid Param Exception",
|
|
7444
|
-
message:
|
|
7445
|
-
path: "/v1.0/domain/
|
|
8871
|
+
message: 'Use either the "keyword" or the "pattern" parameter, never both.',
|
|
8872
|
+
path: "/v1.0/domain/typosquatting",
|
|
8873
|
+
status: 400,
|
|
8874
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7446
8875
|
}
|
|
7447
|
-
}
|
|
7448
|
-
|
|
7449
|
-
|
|
7450
|
-
},
|
|
7451
|
-
headers: {
|
|
7452
|
-
"X-AF-Credits-Cost": {
|
|
7453
|
-
$ref: "#/components/headers/X-AF-Credits-Cost"
|
|
7454
|
-
}
|
|
7455
|
-
}
|
|
7456
|
-
},
|
|
7457
|
-
"408": {
|
|
7458
|
-
description: "Request Timeout \u2013 Unable to fetch WHOIS data",
|
|
7459
|
-
content: {
|
|
7460
|
-
"application/json": {
|
|
7461
|
-
schema: {
|
|
7462
|
-
$ref: "#/components/schemas/ErrorResponse"
|
|
7463
|
-
},
|
|
7464
|
-
examples: {
|
|
7465
|
-
error: {
|
|
7466
|
-
summary: "Error response",
|
|
8876
|
+
},
|
|
8877
|
+
missingParam: {
|
|
8878
|
+
summary: "Neither keyword nor pattern supplied",
|
|
7467
8879
|
value: {
|
|
7468
|
-
|
|
7469
|
-
|
|
7470
|
-
|
|
7471
|
-
|
|
7472
|
-
|
|
8880
|
+
error: "Invalid Param Exception",
|
|
8881
|
+
message: 'Please provide either a "keyword" or a "pattern" parameter.',
|
|
8882
|
+
path: "/v1.0/domain/typosquatting",
|
|
8883
|
+
status: 400,
|
|
8884
|
+
timestamp: "2026-09-08T12:00:00.000Z"
|
|
7473
8885
|
}
|
|
7474
8886
|
}
|
|
7475
8887
|
}
|
|
@@ -7482,7 +8894,7 @@ var domain_search_default = {
|
|
|
7482
8894
|
}
|
|
7483
8895
|
}
|
|
7484
8896
|
},
|
|
7485
|
-
operationId: "
|
|
8897
|
+
operationId: "getDomainTyposquatting"
|
|
7486
8898
|
}
|
|
7487
8899
|
}
|
|
7488
8900
|
},
|
|
@@ -7502,20 +8914,70 @@ var domain_search_default = {
|
|
|
7502
8914
|
}
|
|
7503
8915
|
},
|
|
7504
8916
|
schemas: {
|
|
7505
|
-
|
|
8917
|
+
DomainTyposquattingResponse: {
|
|
7506
8918
|
type: "object",
|
|
7507
|
-
required: ["
|
|
8919
|
+
required: ["status", "totalRecords", "currentPage", "hasNextPage", "totalPages", "domains"],
|
|
7508
8920
|
properties: {
|
|
7509
|
-
|
|
8921
|
+
status: {
|
|
8922
|
+
type: "boolean",
|
|
8923
|
+
description: "Indicates if the request was successful."
|
|
8924
|
+
},
|
|
8925
|
+
totalRecords: {
|
|
8926
|
+
type: "integer",
|
|
8927
|
+
description: "Total number of domains found."
|
|
8928
|
+
},
|
|
8929
|
+
currentPage: {
|
|
8930
|
+
type: "integer",
|
|
8931
|
+
description: "Page number of the current response. Starts at 1."
|
|
8932
|
+
},
|
|
8933
|
+
hasNextPage: {
|
|
8934
|
+
type: "boolean",
|
|
8935
|
+
description: "true if at least one additional page is available."
|
|
8936
|
+
},
|
|
8937
|
+
totalPages: {
|
|
8938
|
+
type: "integer",
|
|
8939
|
+
description: "Total number of pages available."
|
|
8940
|
+
},
|
|
8941
|
+
nextPageToken: {
|
|
7510
8942
|
type: "string",
|
|
7511
|
-
description: "
|
|
8943
|
+
description: "Opaque token to pass as pageToken on the next request. Present only when hasNextPage is true."
|
|
7512
8944
|
},
|
|
7513
|
-
|
|
8945
|
+
domains: {
|
|
8946
|
+
type: "array",
|
|
8947
|
+
items: {
|
|
8948
|
+
$ref: "#/components/schemas/DomainItem"
|
|
8949
|
+
},
|
|
8950
|
+
description: "List of typo-variant or pattern-matched domains on the current page."
|
|
8951
|
+
}
|
|
8952
|
+
},
|
|
8953
|
+
description: "Paginated response containing typo-variant or pattern-matched domains."
|
|
8954
|
+
},
|
|
8955
|
+
DomainItem: {
|
|
8956
|
+
type: "object",
|
|
8957
|
+
required: ["domainName", "isDropped"],
|
|
8958
|
+
properties: {
|
|
8959
|
+
domainName: {
|
|
8960
|
+
type: "string",
|
|
8961
|
+
description: "Domain name."
|
|
8962
|
+
},
|
|
8963
|
+
createDate: {
|
|
8964
|
+
type: "string",
|
|
8965
|
+
description: "Domain creation date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries."
|
|
8966
|
+
},
|
|
8967
|
+
expiryDate: {
|
|
8968
|
+
type: "string",
|
|
8969
|
+
description: "Domain expiration date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries."
|
|
8970
|
+
},
|
|
8971
|
+
lastSeen: {
|
|
8972
|
+
type: "string",
|
|
8973
|
+
description: "Last time the domain was observed (YYYY-MM-DD). One of the two fields reliably meaningful across a full result set."
|
|
8974
|
+
},
|
|
8975
|
+
isDropped: {
|
|
7514
8976
|
type: "boolean",
|
|
7515
|
-
description: "
|
|
8977
|
+
description: "Indicates whether the domain has dropped out of the registry and become available to register again."
|
|
7516
8978
|
}
|
|
7517
8979
|
},
|
|
7518
|
-
description: "
|
|
8980
|
+
description: "A single typo-variant or pattern-matched domain with registration lifecycle data."
|
|
7519
8981
|
},
|
|
7520
8982
|
ErrorResponse: {
|
|
7521
8983
|
type: "object",
|
|
@@ -7939,7 +9401,7 @@ var bulk_email_validation_default = {
|
|
|
7939
9401
|
info: {
|
|
7940
9402
|
title: "Bulk Email Validation API - Validate and Verify Emails in Bulk",
|
|
7941
9403
|
version: "1.0.0",
|
|
7942
|
-
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.",
|
|
9404
|
+
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.",
|
|
7943
9405
|
contact: {
|
|
7944
9406
|
name: "APIFreaks Support",
|
|
7945
9407
|
url: "https://apifreaks.com/contact",
|
|
@@ -7991,7 +9453,7 @@ var bulk_email_validation_default = {
|
|
|
7991
9453
|
},
|
|
7992
9454
|
examples: {
|
|
7993
9455
|
bulkEmailsValidated: {
|
|
7994
|
-
summary: "Mix of
|
|
9456
|
+
summary: "Mix of valid, syntactically invalid, accept_all, null-MX invalid, and unknown (no-MX probe) results",
|
|
7995
9457
|
value: {
|
|
7996
9458
|
emailResponse: [
|
|
7997
9459
|
{
|
|
@@ -8030,6 +9492,74 @@ var bulk_email_validation_default = {
|
|
|
8030
9492
|
name: "not-an-email",
|
|
8031
9493
|
validDomain: false
|
|
8032
9494
|
}
|
|
9495
|
+
},
|
|
9496
|
+
{
|
|
9497
|
+
success: true,
|
|
9498
|
+
email: "random12345@yahoo.com",
|
|
9499
|
+
validEmail: "accept_all",
|
|
9500
|
+
validSyntax: true,
|
|
9501
|
+
reason: "domain accepts all addresses.",
|
|
9502
|
+
domain: {
|
|
9503
|
+
name: "yahoo.com",
|
|
9504
|
+
disposable: false,
|
|
9505
|
+
spam: false,
|
|
9506
|
+
free: true,
|
|
9507
|
+
validDomain: true,
|
|
9508
|
+
catchAll: true
|
|
9509
|
+
},
|
|
9510
|
+
account: {
|
|
9511
|
+
role: false,
|
|
9512
|
+
fullMailBox: false
|
|
9513
|
+
},
|
|
9514
|
+
dns: {
|
|
9515
|
+
mxRecord: [
|
|
9516
|
+
"mta5.am0.yahoodns.net.",
|
|
9517
|
+
"mta6.am0.yahoodns.net.",
|
|
9518
|
+
"mta7.am0.yahoodns.net."
|
|
9519
|
+
]
|
|
9520
|
+
}
|
|
9521
|
+
},
|
|
9522
|
+
{
|
|
9523
|
+
success: true,
|
|
9524
|
+
email: "test@example.com",
|
|
9525
|
+
validEmail: "invalid",
|
|
9526
|
+
validSyntax: true,
|
|
9527
|
+
reason: "domain does not accept mail.",
|
|
9528
|
+
domain: {
|
|
9529
|
+
name: "example.com",
|
|
9530
|
+
disposable: true,
|
|
9531
|
+
spam: false,
|
|
9532
|
+
free: false,
|
|
9533
|
+
validDomain: true,
|
|
9534
|
+
catchAll: false
|
|
9535
|
+
},
|
|
9536
|
+
account: {
|
|
9537
|
+
role: false
|
|
9538
|
+
},
|
|
9539
|
+
dns: {
|
|
9540
|
+
mxRecord: ["."]
|
|
9541
|
+
}
|
|
9542
|
+
},
|
|
9543
|
+
{
|
|
9544
|
+
success: true,
|
|
9545
|
+
email: "test@neverssl.com",
|
|
9546
|
+
validEmail: "unknown",
|
|
9547
|
+
validSyntax: true,
|
|
9548
|
+
reason: "We are unable to determine if email is valid or invalid.",
|
|
9549
|
+
domain: {
|
|
9550
|
+
name: "neverssl.com",
|
|
9551
|
+
disposable: false,
|
|
9552
|
+
spam: false,
|
|
9553
|
+
free: false,
|
|
9554
|
+
validDomain: true,
|
|
9555
|
+
catchAll: false
|
|
9556
|
+
},
|
|
9557
|
+
account: {
|
|
9558
|
+
role: false
|
|
9559
|
+
},
|
|
9560
|
+
dns: {
|
|
9561
|
+
aRecord: ["34.223.124.45"]
|
|
9562
|
+
}
|
|
8033
9563
|
}
|
|
8034
9564
|
]
|
|
8035
9565
|
}
|
|
@@ -8234,19 +9764,20 @@ var bulk_email_validation_default = {
|
|
|
8234
9764
|
},
|
|
8235
9765
|
reason: {
|
|
8236
9766
|
type: "string",
|
|
8237
|
-
description: "Detailed explanation returned when validEmail is not valid."
|
|
9767
|
+
description: "Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid."
|
|
8238
9768
|
},
|
|
8239
9769
|
validEmail: {
|
|
8240
9770
|
type: "string",
|
|
8241
9771
|
enum: [
|
|
8242
9772
|
"valid",
|
|
9773
|
+
"accept_all",
|
|
8243
9774
|
"invalid",
|
|
8244
9775
|
"INVALID_EMAIL",
|
|
8245
9776
|
"unknown",
|
|
8246
9777
|
"risky",
|
|
8247
9778
|
"app_server_blocked"
|
|
8248
9779
|
],
|
|
8249
|
-
description: "Comprehensive deliverability assessment.
|
|
9780
|
+
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."
|
|
8250
9781
|
},
|
|
8251
9782
|
validSyntax: {
|
|
8252
9783
|
type: "boolean",
|
|
@@ -8298,7 +9829,7 @@ var bulk_email_validation_default = {
|
|
|
8298
9829
|
},
|
|
8299
9830
|
catchAll: {
|
|
8300
9831
|
type: "boolean",
|
|
8301
|
-
description: "Detection flag for domains configured to accept mail for any recipient address."
|
|
9832
|
+
description: "Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all."
|
|
8302
9833
|
}
|
|
8303
9834
|
},
|
|
8304
9835
|
description: "Domain validation details for the email address."
|
|
@@ -8320,24 +9851,24 @@ var bulk_email_validation_default = {
|
|
|
8320
9851
|
},
|
|
8321
9852
|
DnsObject: {
|
|
8322
9853
|
type: "object",
|
|
8323
|
-
required: [
|
|
9854
|
+
required: [],
|
|
8324
9855
|
properties: {
|
|
8325
9856
|
mxRecord: {
|
|
8326
9857
|
type: "array",
|
|
8327
9858
|
items: {
|
|
8328
9859
|
type: "string"
|
|
8329
9860
|
},
|
|
8330
|
-
description:
|
|
9861
|
+
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.`
|
|
8331
9862
|
},
|
|
8332
9863
|
aRecord: {
|
|
8333
9864
|
type: "array",
|
|
8334
9865
|
items: {
|
|
8335
9866
|
type: "string"
|
|
8336
9867
|
},
|
|
8337
|
-
description: "Collection of A (Address) records for the domain.
|
|
9868
|
+
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."
|
|
8338
9869
|
}
|
|
8339
9870
|
},
|
|
8340
|
-
description: "DNS records for the email domain."
|
|
9871
|
+
description: "DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record."
|
|
8341
9872
|
},
|
|
8342
9873
|
AddressObject: {
|
|
8343
9874
|
type: "object",
|
|
@@ -8580,7 +10111,7 @@ var email_checker_default = {
|
|
|
8580
10111
|
info: {
|
|
8581
10112
|
title: "Email Checker API - Real-Time Validation, Deliverability & Risk Signals",
|
|
8582
10113
|
version: "1.0.0",
|
|
8583
|
-
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.",
|
|
10114
|
+
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.",
|
|
8584
10115
|
contact: {
|
|
8585
10116
|
name: "APIFreaks Support",
|
|
8586
10117
|
url: "https://apifreaks.com/contact",
|
|
@@ -8673,8 +10204,8 @@ var email_checker_default = {
|
|
|
8673
10204
|
}
|
|
8674
10205
|
}
|
|
8675
10206
|
},
|
|
8676
|
-
|
|
8677
|
-
summary: "Valid syntax, domain
|
|
10207
|
+
nonexistentDomain: {
|
|
10208
|
+
summary: "Valid syntax, domain does not exist (NXDOMAIN)",
|
|
8678
10209
|
value: {
|
|
8679
10210
|
success: true,
|
|
8680
10211
|
email: "test@nonexistentdomainxyz123abc.com",
|
|
@@ -8694,6 +10225,83 @@ var email_checker_default = {
|
|
|
8694
10225
|
}
|
|
8695
10226
|
}
|
|
8696
10227
|
},
|
|
10228
|
+
acceptAll: {
|
|
10229
|
+
summary: "Catch-all domain accepted the recipient \u2014 mailbox unconfirmed",
|
|
10230
|
+
value: {
|
|
10231
|
+
success: true,
|
|
10232
|
+
email: "random12345@yahoo.com",
|
|
10233
|
+
validEmail: "accept_all",
|
|
10234
|
+
validSyntax: true,
|
|
10235
|
+
reason: "domain accepts all addresses.",
|
|
10236
|
+
domain: {
|
|
10237
|
+
name: "yahoo.com",
|
|
10238
|
+
disposable: false,
|
|
10239
|
+
spam: false,
|
|
10240
|
+
free: true,
|
|
10241
|
+
validDomain: true,
|
|
10242
|
+
catchAll: true
|
|
10243
|
+
},
|
|
10244
|
+
account: {
|
|
10245
|
+
role: false,
|
|
10246
|
+
fullMailBox: false
|
|
10247
|
+
},
|
|
10248
|
+
dns: {
|
|
10249
|
+
mxRecord: [
|
|
10250
|
+
"mta5.am0.yahoodns.net.",
|
|
10251
|
+
"mta6.am0.yahoodns.net.",
|
|
10252
|
+
"mta7.am0.yahoodns.net."
|
|
10253
|
+
]
|
|
10254
|
+
}
|
|
10255
|
+
}
|
|
10256
|
+
},
|
|
10257
|
+
nullMxDomain: {
|
|
10258
|
+
summary: 'Domain publishes a null MX (single ".") \u2014 accepts no mail at all',
|
|
10259
|
+
value: {
|
|
10260
|
+
success: true,
|
|
10261
|
+
email: "test@example.com",
|
|
10262
|
+
validEmail: "invalid",
|
|
10263
|
+
validSyntax: true,
|
|
10264
|
+
reason: "domain does not accept mail.",
|
|
10265
|
+
domain: {
|
|
10266
|
+
name: "example.com",
|
|
10267
|
+
disposable: true,
|
|
10268
|
+
spam: false,
|
|
10269
|
+
free: false,
|
|
10270
|
+
validDomain: true,
|
|
10271
|
+
catchAll: false
|
|
10272
|
+
},
|
|
10273
|
+
account: {
|
|
10274
|
+
role: false
|
|
10275
|
+
},
|
|
10276
|
+
dns: {
|
|
10277
|
+
mxRecord: ["."]
|
|
10278
|
+
}
|
|
10279
|
+
}
|
|
10280
|
+
},
|
|
10281
|
+
noMxAddressOnly: {
|
|
10282
|
+
summary: "Domain has no MX record but a working A record \u2014 gets a real SMTP probe",
|
|
10283
|
+
value: {
|
|
10284
|
+
success: true,
|
|
10285
|
+
email: "test@neverssl.com",
|
|
10286
|
+
validEmail: "unknown",
|
|
10287
|
+
validSyntax: true,
|
|
10288
|
+
reason: "We are unable to determine if email is valid or invalid.",
|
|
10289
|
+
domain: {
|
|
10290
|
+
name: "neverssl.com",
|
|
10291
|
+
disposable: false,
|
|
10292
|
+
spam: false,
|
|
10293
|
+
free: false,
|
|
10294
|
+
validDomain: true,
|
|
10295
|
+
catchAll: false
|
|
10296
|
+
},
|
|
10297
|
+
account: {
|
|
10298
|
+
role: false
|
|
10299
|
+
},
|
|
10300
|
+
dns: {
|
|
10301
|
+
aRecord: ["34.223.124.45"]
|
|
10302
|
+
}
|
|
10303
|
+
}
|
|
10304
|
+
},
|
|
8697
10305
|
withIp: {
|
|
8698
10306
|
summary: "With ip \u2014 adds geolocation/security enrichment under address",
|
|
8699
10307
|
value: {
|
|
@@ -8964,12 +10572,12 @@ var email_checker_default = {
|
|
|
8964
10572
|
},
|
|
8965
10573
|
reason: {
|
|
8966
10574
|
type: "string",
|
|
8967
|
-
description: "Detailed explanation returned when validEmail is not valid."
|
|
10575
|
+
description: "Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid."
|
|
8968
10576
|
},
|
|
8969
10577
|
validEmail: {
|
|
8970
10578
|
type: "string",
|
|
8971
|
-
enum: ["valid", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
|
|
8972
|
-
description: "Comprehensive deliverability assessment.
|
|
10579
|
+
enum: ["valid", "accept_all", "invalid", "INVALID_EMAIL", "unknown", "risky", "app_server_blocked"],
|
|
10580
|
+
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."
|
|
8973
10581
|
},
|
|
8974
10582
|
validSyntax: {
|
|
8975
10583
|
type: "boolean",
|
|
@@ -9021,7 +10629,7 @@ var email_checker_default = {
|
|
|
9021
10629
|
},
|
|
9022
10630
|
catchAll: {
|
|
9023
10631
|
type: "boolean",
|
|
9024
|
-
description: "Detection flag for domains configured to accept mail for any recipient address."
|
|
10632
|
+
description: "Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all."
|
|
9025
10633
|
}
|
|
9026
10634
|
},
|
|
9027
10635
|
description: "Domain validation details for the email address."
|
|
@@ -9043,24 +10651,24 @@ var email_checker_default = {
|
|
|
9043
10651
|
},
|
|
9044
10652
|
DnsObject: {
|
|
9045
10653
|
type: "object",
|
|
9046
|
-
required: [
|
|
10654
|
+
required: [],
|
|
9047
10655
|
properties: {
|
|
9048
10656
|
mxRecord: {
|
|
9049
10657
|
type: "array",
|
|
9050
10658
|
items: {
|
|
9051
10659
|
type: "string"
|
|
9052
10660
|
},
|
|
9053
|
-
description:
|
|
10661
|
+
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.`
|
|
9054
10662
|
},
|
|
9055
10663
|
aRecord: {
|
|
9056
10664
|
type: "array",
|
|
9057
10665
|
items: {
|
|
9058
10666
|
type: "string"
|
|
9059
10667
|
},
|
|
9060
|
-
description: "Collection of A (Address) records for the domain.
|
|
10668
|
+
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."
|
|
9061
10669
|
}
|
|
9062
10670
|
},
|
|
9063
|
-
description: "DNS records for the email domain."
|
|
10671
|
+
description: "DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record."
|
|
9064
10672
|
},
|
|
9065
10673
|
AddressObject: {
|
|
9066
10674
|
type: "object",
|
|
@@ -47852,8 +49460,10 @@ var SPECS = {
|
|
|
47852
49460
|
"dns-lookup": dns_lookup_default,
|
|
47853
49461
|
"reverse-dns-lookup": reverse_dns_lookup_default,
|
|
47854
49462
|
"bulk-domain-checker": bulk_domain_checker_default,
|
|
49463
|
+
"domain-reputation": domain_reputation_default,
|
|
47855
49464
|
"domain-search-with-suggestions": domain_search_with_suggestions_default,
|
|
47856
49465
|
"domain-search": domain_search_default,
|
|
49466
|
+
"domain-typosquatting": domain_typosquatting_default,
|
|
47857
49467
|
"subdomain-lookup": subdomain_lookup_default,
|
|
47858
49468
|
"bulk-email-validation": bulk_email_validation_default,
|
|
47859
49469
|
"email-checker": email_checker_default,
|
|
@@ -47936,7 +49546,7 @@ var SPECS = {
|
|
|
47936
49546
|
"zip-codes-by-region": zip_codes_by_region_default,
|
|
47937
49547
|
"zip-codes-radius-search": zip_codes_radius_search_default
|
|
47938
49548
|
};
|
|
47939
|
-
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"];
|
|
49549
|
+
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"];
|
|
47940
49550
|
var SPECS_YAML = {
|
|
47941
49551
|
"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",
|
|
47942
49552
|
"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",
|
|
@@ -49879,6 +51489,905 @@ components:
|
|
|
49879
51489
|
security:
|
|
49880
51490
|
- ApiKeyAuthHeader: []
|
|
49881
51491
|
- ApiKeyAuthQuery: []
|
|
51492
|
+
`,
|
|
51493
|
+
"domain-reputation": `openapi: 3.1.1
|
|
51494
|
+
info:
|
|
51495
|
+
title: Domain Reputation API - Real-Time Risk Verdict, Trust Score, DGA Detection, and Threat Intelligence for Any Domain
|
|
51496
|
+
version: 1.0.0
|
|
51497
|
+
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.
|
|
51498
|
+
contact:
|
|
51499
|
+
name: APIFreaks Support
|
|
51500
|
+
url: https://apifreaks.com/contact
|
|
51501
|
+
email: support@apifreaks.com
|
|
51502
|
+
servers:
|
|
51503
|
+
- url: https://api.apifreaks.com/v1.0
|
|
51504
|
+
description: Domain Reputation API Server
|
|
51505
|
+
paths:
|
|
51506
|
+
/domain/reputation:
|
|
51507
|
+
get:
|
|
51508
|
+
tags:
|
|
51509
|
+
- Domain APIs
|
|
51510
|
+
summary: Get a real-time risk verdict, trust score, and threat intelligence for any domain.
|
|
51511
|
+
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.
|
|
51512
|
+
parameters:
|
|
51513
|
+
- name: format
|
|
51514
|
+
in: query
|
|
51515
|
+
required: false
|
|
51516
|
+
schema:
|
|
51517
|
+
type: string
|
|
51518
|
+
enum:
|
|
51519
|
+
- json
|
|
51520
|
+
- xml
|
|
51521
|
+
default: json
|
|
51522
|
+
description: Format of the response.
|
|
51523
|
+
- name: domainName
|
|
51524
|
+
in: query
|
|
51525
|
+
required: true
|
|
51526
|
+
schema:
|
|
51527
|
+
type: string
|
|
51528
|
+
description: The domain name to assess (e.g. example.com). Must contain at least one dot and be at most 253 characters. Automatically lowercased.
|
|
51529
|
+
responses:
|
|
51530
|
+
'200':
|
|
51531
|
+
description: Success
|
|
51532
|
+
content:
|
|
51533
|
+
application/json:
|
|
51534
|
+
schema:
|
|
51535
|
+
$ref: '#/components/schemas/DomainReputationResponse'
|
|
51536
|
+
examples:
|
|
51537
|
+
success:
|
|
51538
|
+
summary: Safe domain (apple.com)
|
|
51539
|
+
value:
|
|
51540
|
+
input:
|
|
51541
|
+
domain: apple.com
|
|
51542
|
+
assessed_at: '2026-09-08T08:36:23.820181075Z'
|
|
51543
|
+
version: 1.0.0
|
|
51544
|
+
processing_time_ms: 1739
|
|
51545
|
+
risk_category:
|
|
51546
|
+
verdict: safe
|
|
51547
|
+
confidence: 0.8
|
|
51548
|
+
primary_threat: null
|
|
51549
|
+
severity: none
|
|
51550
|
+
threat_types: []
|
|
51551
|
+
sources: []
|
|
51552
|
+
pivot_matches: []
|
|
51553
|
+
dga_score:
|
|
51554
|
+
score: 0
|
|
51555
|
+
is_dga: false
|
|
51556
|
+
model: deterministic_features_v1
|
|
51557
|
+
features:
|
|
51558
|
+
domain_length: 5
|
|
51559
|
+
vowel_consonant_ratio: 0.6666666666666666
|
|
51560
|
+
ngram_perplexity: -8.83
|
|
51561
|
+
shannon_entropy: 1.9219280948873623
|
|
51562
|
+
digit_letter_ratio: 0
|
|
51563
|
+
consonant_streak_max: 3
|
|
51564
|
+
tld_in_known_dga_set: false
|
|
51565
|
+
interpretation: human_readable
|
|
51566
|
+
trust_signals:
|
|
51567
|
+
trust_score: 72
|
|
51568
|
+
trust_band: high
|
|
51569
|
+
signals:
|
|
51570
|
+
positive:
|
|
51571
|
+
- code: spf_configured
|
|
51572
|
+
weight: 5
|
|
51573
|
+
polarity: positive
|
|
51574
|
+
category: email_security
|
|
51575
|
+
evidence: SPF record found
|
|
51576
|
+
confidence: 1
|
|
51577
|
+
- code: dmarc_present
|
|
51578
|
+
weight: 5
|
|
51579
|
+
polarity: positive
|
|
51580
|
+
category: email_security
|
|
51581
|
+
evidence: DMARC record present
|
|
51582
|
+
confidence: 1
|
|
51583
|
+
- code: established_domain
|
|
51584
|
+
weight: 10
|
|
51585
|
+
polarity: positive
|
|
51586
|
+
category: domain_age
|
|
51587
|
+
evidence: Domain age > 2 years
|
|
51588
|
+
confidence: 1
|
|
51589
|
+
- code: mature_domain
|
|
51590
|
+
weight: 5
|
|
51591
|
+
polarity: positive
|
|
51592
|
+
category: domain_age
|
|
51593
|
+
evidence: Domain age > 5 years
|
|
51594
|
+
confidence: 1
|
|
51595
|
+
- code: paid_ssl
|
|
51596
|
+
weight: 5
|
|
51597
|
+
polarity: positive
|
|
51598
|
+
category: ssl_certificate
|
|
51599
|
+
evidence: Uses paid SSL certificate
|
|
51600
|
+
confidence: 0.9
|
|
51601
|
+
- code: valid_ssl
|
|
51602
|
+
weight: 3
|
|
51603
|
+
polarity: positive
|
|
51604
|
+
category: ssl_certificate
|
|
51605
|
+
evidence: Valid SSL certificate
|
|
51606
|
+
confidence: 1
|
|
51607
|
+
negative:
|
|
51608
|
+
- code: privacy_whois
|
|
51609
|
+
weight: 1
|
|
51610
|
+
polarity: negative
|
|
51611
|
+
category: whois_privacy
|
|
51612
|
+
evidence: WHOIS information is privacy-protected
|
|
51613
|
+
confidence: 0.9
|
|
51614
|
+
- code: external_redirect
|
|
51615
|
+
weight: 10
|
|
51616
|
+
polarity: negative
|
|
51617
|
+
category: content_analysis
|
|
51618
|
+
evidence: Site redirects visitors to an external domain
|
|
51619
|
+
confidence: 0.8
|
|
51620
|
+
neutral: []
|
|
51621
|
+
indicators:
|
|
51622
|
+
is_newly_registered: false
|
|
51623
|
+
uses_free_extension: false
|
|
51624
|
+
uses_free_ssl: false
|
|
51625
|
+
has_privacy_whois: true
|
|
51626
|
+
ssl_age_days: 26
|
|
51627
|
+
has_dmarc: true
|
|
51628
|
+
has_spf: true
|
|
51629
|
+
redirects_externally: true
|
|
51630
|
+
javascript_obfuscated: false
|
|
51631
|
+
domain_age_days: 14446
|
|
51632
|
+
registrar: NOM-IQ Ltd dba Com Laude
|
|
51633
|
+
email_deliverability:
|
|
51634
|
+
score: 95
|
|
51635
|
+
grade: excellent
|
|
51636
|
+
can_receive_email: true
|
|
51637
|
+
authentication:
|
|
51638
|
+
spf:
|
|
51639
|
+
present: true
|
|
51640
|
+
policy: ~all
|
|
51641
|
+
record: v=spf1 include:_spf.apple.com include:_spf-txn.apple.com ~all
|
|
51642
|
+
dkim:
|
|
51643
|
+
found: true
|
|
51644
|
+
selectors_found:
|
|
51645
|
+
- selector1
|
|
51646
|
+
- selector2
|
|
51647
|
+
providers_detected: []
|
|
51648
|
+
note: Only common selectors are probed; a domain may use a custom selector
|
|
51649
|
+
dmarc:
|
|
51650
|
+
present: true
|
|
51651
|
+
policy: quarantine
|
|
51652
|
+
reporting_configured: true
|
|
51653
|
+
infrastructure:
|
|
51654
|
+
mx_count: 6
|
|
51655
|
+
mx_records:
|
|
51656
|
+
- mx-in-ma.apple.com.
|
|
51657
|
+
- mx-in.g.apple.com.
|
|
51658
|
+
- mx-in-rn.apple.com.
|
|
51659
|
+
- mx-in-sg.apple.com.
|
|
51660
|
+
- mx-in-hfd.apple.com.
|
|
51661
|
+
- mx-in-vib.apple.com.
|
|
51662
|
+
mx_provider: self_hosted
|
|
51663
|
+
null_mx: false
|
|
51664
|
+
reputation:
|
|
51665
|
+
spam_blacklisted: false
|
|
51666
|
+
newly_registered: false
|
|
51667
|
+
domain_age_days: 14446
|
|
51668
|
+
issues:
|
|
51669
|
+
- code: spf_softfail
|
|
51670
|
+
severity: low
|
|
51671
|
+
message: The SPF policy '~all' only soft-fails unauthorized senders
|
|
51672
|
+
recommendation: Move to '-all' once all legitimate sending sources are listed
|
|
51673
|
+
intelligence:
|
|
51674
|
+
ioc_type: domain
|
|
51675
|
+
ioc_value: apple.com
|
|
51676
|
+
related_iocs:
|
|
51677
|
+
- type: ipv4
|
|
51678
|
+
value: 17.253.144.10
|
|
51679
|
+
confidence: 0.9
|
|
51680
|
+
- type: ipv6
|
|
51681
|
+
value: 2620:149:af0:0:0:0:0:10
|
|
51682
|
+
confidence: 0.9
|
|
51683
|
+
feed_tags:
|
|
51684
|
+
- verdict:safe
|
|
51685
|
+
- severity:none
|
|
51686
|
+
- ns:d.ns.apple.com.
|
|
51687
|
+
- ns:b.ns.apple.com.
|
|
51688
|
+
- ns:c.ns.apple.com.
|
|
51689
|
+
- ns:a.ns.apple.com.
|
|
51690
|
+
- mx:mx-in-ma.apple.com.
|
|
51691
|
+
- mx:mx-in.g.apple.com.
|
|
51692
|
+
- mx:mx-in-rn.apple.com.
|
|
51693
|
+
- mx:mx-in-sg.apple.com.
|
|
51694
|
+
- mx:mx-in-hfd.apple.com.
|
|
51695
|
+
- mx:mx-in-vib.apple.com.
|
|
51696
|
+
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'']'
|
|
51697
|
+
recommended_action: allow
|
|
51698
|
+
first_seen: null
|
|
51699
|
+
last_seen: null
|
|
51700
|
+
evidence_summary:
|
|
51701
|
+
why_flagged: []
|
|
51702
|
+
errors: []
|
|
51703
|
+
partialData:
|
|
51704
|
+
summary: Partial data (WHOIS lookup failed)
|
|
51705
|
+
value:
|
|
51706
|
+
input:
|
|
51707
|
+
domain: apifreaks.com
|
|
51708
|
+
risk_category:
|
|
51709
|
+
verdict: safe
|
|
51710
|
+
confidence: 0.7
|
|
51711
|
+
severity: none
|
|
51712
|
+
trust_signals:
|
|
51713
|
+
trust_score: 70
|
|
51714
|
+
trust_band: high
|
|
51715
|
+
indicators:
|
|
51716
|
+
is_newly_registered: null
|
|
51717
|
+
has_privacy_whois: null
|
|
51718
|
+
domain_age_days: null
|
|
51719
|
+
registrar: null
|
|
51720
|
+
errors:
|
|
51721
|
+
- WHOIS lookup failed
|
|
51722
|
+
headers:
|
|
51723
|
+
X-AF-Credits-Cost:
|
|
51724
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
51725
|
+
'400':
|
|
51726
|
+
description: Bad Request \u2013 Invalid or missing domainName parameter
|
|
51727
|
+
content:
|
|
51728
|
+
application/json:
|
|
51729
|
+
schema:
|
|
51730
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
51731
|
+
examples:
|
|
51732
|
+
invalidDomain:
|
|
51733
|
+
summary: Invalid domain parameter
|
|
51734
|
+
value:
|
|
51735
|
+
error: Invalid Domain Exception
|
|
51736
|
+
message: Please provide a valid domain name in the "domainName" parameter.
|
|
51737
|
+
path: /v1.0/domain/reputation
|
|
51738
|
+
status: 400
|
|
51739
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
51740
|
+
missingDomain:
|
|
51741
|
+
summary: Missing domainName parameter
|
|
51742
|
+
value:
|
|
51743
|
+
error: Invalid Param Exception
|
|
51744
|
+
message: Please provide a valid domain name in the "domainName" parameter.
|
|
51745
|
+
path: /v1.0/domain/reputation
|
|
51746
|
+
status: 400
|
|
51747
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
51748
|
+
headers:
|
|
51749
|
+
X-AF-Credits-Cost:
|
|
51750
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
51751
|
+
'503':
|
|
51752
|
+
description: Service Unavailable \u2013 The assessment service is temporarily unavailable
|
|
51753
|
+
content:
|
|
51754
|
+
application/json:
|
|
51755
|
+
schema:
|
|
51756
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
51757
|
+
examples:
|
|
51758
|
+
serviceUnavailable:
|
|
51759
|
+
summary: Service Unavailable
|
|
51760
|
+
value:
|
|
51761
|
+
error: Service Unavailable
|
|
51762
|
+
message: 'Service is unavailable. Please try after some time. [For Technical Support email at: support@apifreaks.com]'
|
|
51763
|
+
path: /v1.0/domain/reputation
|
|
51764
|
+
status: 503
|
|
51765
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
51766
|
+
headers:
|
|
51767
|
+
X-AF-Credits-Cost:
|
|
51768
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
51769
|
+
operationId: getDomainReputation
|
|
51770
|
+
components:
|
|
51771
|
+
securitySchemes:
|
|
51772
|
+
ApiKeyAuthHeader:
|
|
51773
|
+
type: apiKey
|
|
51774
|
+
in: header
|
|
51775
|
+
name: X-apiKey
|
|
51776
|
+
description: Pass your API key via the X-apiKey request header.
|
|
51777
|
+
ApiKeyAuthQuery:
|
|
51778
|
+
type: apiKey
|
|
51779
|
+
in: query
|
|
51780
|
+
name: apiKey
|
|
51781
|
+
description: Pass your API key via the apiKey query parameter.
|
|
51782
|
+
schemas:
|
|
51783
|
+
DomainReputationResponse:
|
|
51784
|
+
type: object
|
|
51785
|
+
required:
|
|
51786
|
+
- input
|
|
51787
|
+
- assessed_at
|
|
51788
|
+
- version
|
|
51789
|
+
- processing_time_ms
|
|
51790
|
+
- risk_category
|
|
51791
|
+
- dga_score
|
|
51792
|
+
- trust_signals
|
|
51793
|
+
- email_deliverability
|
|
51794
|
+
- intelligence
|
|
51795
|
+
- evidence_summary
|
|
51796
|
+
- errors
|
|
51797
|
+
properties:
|
|
51798
|
+
input:
|
|
51799
|
+
type: object
|
|
51800
|
+
required:
|
|
51801
|
+
- domain
|
|
51802
|
+
properties:
|
|
51803
|
+
domain:
|
|
51804
|
+
type: string
|
|
51805
|
+
description: Domain name being analyzed.
|
|
51806
|
+
description: Input object containing the analyzed domain.
|
|
51807
|
+
assessed_at:
|
|
51808
|
+
type: string
|
|
51809
|
+
description: Timestamp when the assessment was performed (YYYY-MM-DDTHH:mm:ssZ).
|
|
51810
|
+
version:
|
|
51811
|
+
type: string
|
|
51812
|
+
description: API / response schema version.
|
|
51813
|
+
processing_time_ms:
|
|
51814
|
+
type: integer
|
|
51815
|
+
description: Time taken to process the request, in milliseconds.
|
|
51816
|
+
risk_category:
|
|
51817
|
+
$ref: '#/components/schemas/RiskCategory'
|
|
51818
|
+
dga_score:
|
|
51819
|
+
$ref: '#/components/schemas/DgaScore'
|
|
51820
|
+
trust_signals:
|
|
51821
|
+
$ref: '#/components/schemas/TrustSignals'
|
|
51822
|
+
email_deliverability:
|
|
51823
|
+
$ref: '#/components/schemas/EmailDeliverability'
|
|
51824
|
+
intelligence:
|
|
51825
|
+
$ref: '#/components/schemas/Intelligence'
|
|
51826
|
+
evidence_summary:
|
|
51827
|
+
$ref: '#/components/schemas/EvidenceSummary'
|
|
51828
|
+
errors:
|
|
51829
|
+
type: array
|
|
51830
|
+
items:
|
|
51831
|
+
type: string
|
|
51832
|
+
description: List of errors encountered during processing, if any (e.g. "WHOIS lookup failed"). An empty array means every signal resolved.
|
|
51833
|
+
description: Full domain reputation assessment response.
|
|
51834
|
+
RiskCategory:
|
|
51835
|
+
type: object
|
|
51836
|
+
required:
|
|
51837
|
+
- verdict
|
|
51838
|
+
- confidence
|
|
51839
|
+
- primary_threat
|
|
51840
|
+
- severity
|
|
51841
|
+
- threat_types
|
|
51842
|
+
- sources
|
|
51843
|
+
- pivot_matches
|
|
51844
|
+
properties:
|
|
51845
|
+
verdict:
|
|
51846
|
+
type: string
|
|
51847
|
+
enum:
|
|
51848
|
+
- safe
|
|
51849
|
+
- suspicious
|
|
51850
|
+
description: Final verdict of the risk assessment.
|
|
51851
|
+
confidence:
|
|
51852
|
+
type: number
|
|
51853
|
+
format: float
|
|
51854
|
+
description: Confidence score for the verdict (0-1).
|
|
51855
|
+
primary_threat:
|
|
51856
|
+
type:
|
|
51857
|
+
- string
|
|
51858
|
+
- 'null'
|
|
51859
|
+
description: Main threat type identified (e.g. phishing). null when no threat was identified.
|
|
51860
|
+
severity:
|
|
51861
|
+
type: string
|
|
51862
|
+
enum:
|
|
51863
|
+
- none
|
|
51864
|
+
- low
|
|
51865
|
+
- medium
|
|
51866
|
+
- high
|
|
51867
|
+
description: Severity level of the risk.
|
|
51868
|
+
threat_types:
|
|
51869
|
+
type: array
|
|
51870
|
+
items:
|
|
51871
|
+
type: string
|
|
51872
|
+
description: List of threat types associated with the domain.
|
|
51873
|
+
sources:
|
|
51874
|
+
type: array
|
|
51875
|
+
items:
|
|
51876
|
+
$ref: '#/components/schemas/ThreatSource'
|
|
51877
|
+
description: Threat intelligence sources that flagged the domain. Empty when nothing flagged it.
|
|
51878
|
+
pivot_matches:
|
|
51879
|
+
type: array
|
|
51880
|
+
items:
|
|
51881
|
+
$ref: '#/components/schemas/PivotMatch'
|
|
51882
|
+
description: Related pivots (nameserver, email, etc.) linked to known threats.
|
|
51883
|
+
description: Overall risk assessment for the domain.
|
|
51884
|
+
ThreatSource:
|
|
51885
|
+
type: object
|
|
51886
|
+
required:
|
|
51887
|
+
- source
|
|
51888
|
+
- indicator
|
|
51889
|
+
- threat_type
|
|
51890
|
+
- confidence
|
|
51891
|
+
- first_seen
|
|
51892
|
+
- last_seen
|
|
51893
|
+
properties:
|
|
51894
|
+
source:
|
|
51895
|
+
type: string
|
|
51896
|
+
description: Name of the threat intelligence source (e.g. Spamhaus).
|
|
51897
|
+
indicator:
|
|
51898
|
+
type: string
|
|
51899
|
+
description: Indicator matched by this source.
|
|
51900
|
+
threat_type:
|
|
51901
|
+
type: string
|
|
51902
|
+
description: Threat type reported by this source.
|
|
51903
|
+
confidence:
|
|
51904
|
+
type: number
|
|
51905
|
+
format: float
|
|
51906
|
+
description: Confidence score from this source (0-1).
|
|
51907
|
+
first_seen:
|
|
51908
|
+
type: string
|
|
51909
|
+
description: First time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ).
|
|
51910
|
+
last_seen:
|
|
51911
|
+
type: string
|
|
51912
|
+
description: Last time this indicator was seen by the source (YYYY-MM-DDTHH:mm:ssZ).
|
|
51913
|
+
description: A threat intelligence source that flagged the domain.
|
|
51914
|
+
PivotMatch:
|
|
51915
|
+
type: object
|
|
51916
|
+
required:
|
|
51917
|
+
- pivot
|
|
51918
|
+
- pivot_type
|
|
51919
|
+
- total_related_threats
|
|
51920
|
+
- confidence
|
|
51921
|
+
properties:
|
|
51922
|
+
pivot:
|
|
51923
|
+
type: string
|
|
51924
|
+
description: Pivot value (e.g. a nameserver or email address).
|
|
51925
|
+
pivot_type:
|
|
51926
|
+
type: string
|
|
51927
|
+
description: Type of pivot.
|
|
51928
|
+
total_related_threats:
|
|
51929
|
+
type: integer
|
|
51930
|
+
description: Total number of threats related to this pivot.
|
|
51931
|
+
confidence:
|
|
51932
|
+
type: number
|
|
51933
|
+
format: float
|
|
51934
|
+
description: Confidence score for the pivot match (0-1).
|
|
51935
|
+
description: A related pivot linked to known threats.
|
|
51936
|
+
DgaScore:
|
|
51937
|
+
type: object
|
|
51938
|
+
required:
|
|
51939
|
+
- score
|
|
51940
|
+
- is_dga
|
|
51941
|
+
- model
|
|
51942
|
+
- features
|
|
51943
|
+
- interpretation
|
|
51944
|
+
properties:
|
|
51945
|
+
score:
|
|
51946
|
+
type: number
|
|
51947
|
+
format: float
|
|
51948
|
+
description: DGA likelihood score (0-1).
|
|
51949
|
+
is_dga:
|
|
51950
|
+
type: boolean
|
|
51951
|
+
description: Indicates whether the domain is likely DGA-generated.
|
|
51952
|
+
model:
|
|
51953
|
+
type: string
|
|
51954
|
+
description: Model used to compute the DGA score.
|
|
51955
|
+
features:
|
|
51956
|
+
$ref: '#/components/schemas/DgaFeatures'
|
|
51957
|
+
interpretation:
|
|
51958
|
+
type: string
|
|
51959
|
+
description: Human-readable interpretation of the DGA score.
|
|
51960
|
+
description: Domain Generation Algorithm (DGA) detection results.
|
|
51961
|
+
DgaFeatures:
|
|
51962
|
+
type: object
|
|
51963
|
+
required:
|
|
51964
|
+
- domain_length
|
|
51965
|
+
- vowel_consonant_ratio
|
|
51966
|
+
- ngram_perplexity
|
|
51967
|
+
- shannon_entropy
|
|
51968
|
+
- digit_letter_ratio
|
|
51969
|
+
- consonant_streak_max
|
|
51970
|
+
- tld_in_known_dga_set
|
|
51971
|
+
properties:
|
|
51972
|
+
domain_length:
|
|
51973
|
+
type: integer
|
|
51974
|
+
description: Length of the domain name.
|
|
51975
|
+
vowel_consonant_ratio:
|
|
51976
|
+
type: number
|
|
51977
|
+
format: float
|
|
51978
|
+
description: Ratio of vowels to consonants in the domain.
|
|
51979
|
+
ngram_perplexity:
|
|
51980
|
+
type: number
|
|
51981
|
+
format: float
|
|
51982
|
+
description: N-gram perplexity score of the domain string.
|
|
51983
|
+
shannon_entropy:
|
|
51984
|
+
type: number
|
|
51985
|
+
format: float
|
|
51986
|
+
description: Shannon entropy of the domain string.
|
|
51987
|
+
digit_letter_ratio:
|
|
51988
|
+
type: number
|
|
51989
|
+
format: float
|
|
51990
|
+
description: Ratio of digits to letters in the domain.
|
|
51991
|
+
consonant_streak_max:
|
|
51992
|
+
type: integer
|
|
51993
|
+
description: Maximum consecutive consonant streak in the domain.
|
|
51994
|
+
tld_in_known_dga_set:
|
|
51995
|
+
type: boolean
|
|
51996
|
+
description: Indicates if the TLD belongs to a known DGA set.
|
|
51997
|
+
description: Underlying lexical / statistical features used in DGA detection.
|
|
51998
|
+
TrustSignals:
|
|
51999
|
+
type: object
|
|
52000
|
+
required:
|
|
52001
|
+
- trust_score
|
|
52002
|
+
- trust_band
|
|
52003
|
+
- signals
|
|
52004
|
+
- indicators
|
|
52005
|
+
properties:
|
|
52006
|
+
trust_score:
|
|
52007
|
+
type: integer
|
|
52008
|
+
description: Overall trust score (0-100).
|
|
52009
|
+
trust_band:
|
|
52010
|
+
type: string
|
|
52011
|
+
description: Trust score band / category (e.g. low, medium, high).
|
|
52012
|
+
signals:
|
|
52013
|
+
$ref: '#/components/schemas/TrustScoreSignals'
|
|
52014
|
+
indicators:
|
|
52015
|
+
$ref: '#/components/schemas/TrustIndicators'
|
|
52016
|
+
description: Trust scoring and supporting signals for the domain.
|
|
52017
|
+
TrustScoreSignals:
|
|
52018
|
+
type: object
|
|
52019
|
+
required:
|
|
52020
|
+
- positive
|
|
52021
|
+
- negative
|
|
52022
|
+
- neutral
|
|
52023
|
+
properties:
|
|
52024
|
+
positive:
|
|
52025
|
+
type: array
|
|
52026
|
+
items:
|
|
52027
|
+
$ref: '#/components/schemas/TrustSignalItem'
|
|
52028
|
+
description: Signals that positively affect the trust score.
|
|
52029
|
+
negative:
|
|
52030
|
+
type: array
|
|
52031
|
+
items:
|
|
52032
|
+
$ref: '#/components/schemas/TrustSignalItem'
|
|
52033
|
+
description: Signals that negatively affect the trust score.
|
|
52034
|
+
neutral:
|
|
52035
|
+
type: array
|
|
52036
|
+
items:
|
|
52037
|
+
$ref: '#/components/schemas/TrustSignalItem'
|
|
52038
|
+
description: Signals that are neutral to the trust score.
|
|
52039
|
+
description: Signals contributing to the trust score.
|
|
52040
|
+
TrustSignalItem:
|
|
52041
|
+
type: object
|
|
52042
|
+
required:
|
|
52043
|
+
- code
|
|
52044
|
+
- weight
|
|
52045
|
+
- polarity
|
|
52046
|
+
- category
|
|
52047
|
+
- evidence
|
|
52048
|
+
- confidence
|
|
52049
|
+
properties:
|
|
52050
|
+
code:
|
|
52051
|
+
type: string
|
|
52052
|
+
description: Signal code identifier (e.g. valid_ssl, dmarc_missing).
|
|
52053
|
+
weight:
|
|
52054
|
+
type: integer
|
|
52055
|
+
description: Weight assigned to the signal.
|
|
52056
|
+
polarity:
|
|
52057
|
+
type: string
|
|
52058
|
+
enum:
|
|
52059
|
+
- positive
|
|
52060
|
+
- negative
|
|
52061
|
+
- neutral
|
|
52062
|
+
description: Polarity of the signal.
|
|
52063
|
+
category:
|
|
52064
|
+
type: string
|
|
52065
|
+
description: Category the signal belongs to (e.g. ssl_certificate).
|
|
52066
|
+
evidence:
|
|
52067
|
+
type: string
|
|
52068
|
+
description: Evidence supporting the signal.
|
|
52069
|
+
confidence:
|
|
52070
|
+
type: number
|
|
52071
|
+
format: float
|
|
52072
|
+
description: Confidence score for the signal (0-1).
|
|
52073
|
+
description: A single trust signal contributing to the trust score.
|
|
52074
|
+
TrustIndicators:
|
|
52075
|
+
type: object
|
|
52076
|
+
properties:
|
|
52077
|
+
is_newly_registered:
|
|
52078
|
+
type:
|
|
52079
|
+
- boolean
|
|
52080
|
+
- 'null'
|
|
52081
|
+
description: Indicates whether the domain was recently registered. null when WHOIS data is unavailable.
|
|
52082
|
+
uses_free_extension:
|
|
52083
|
+
type: boolean
|
|
52084
|
+
description: Indicates whether the domain uses a free TLD extension.
|
|
52085
|
+
uses_free_ssl:
|
|
52086
|
+
type: boolean
|
|
52087
|
+
description: Indicates whether the domain uses a free SSL certificate.
|
|
52088
|
+
has_privacy_whois:
|
|
52089
|
+
type:
|
|
52090
|
+
- boolean
|
|
52091
|
+
- 'null'
|
|
52092
|
+
description: Indicates whether WHOIS privacy protection is enabled. null when WHOIS data is unavailable.
|
|
52093
|
+
ssl_age_days:
|
|
52094
|
+
type:
|
|
52095
|
+
- integer
|
|
52096
|
+
- 'null'
|
|
52097
|
+
description: Age of the SSL certificate in days.
|
|
52098
|
+
has_dmarc:
|
|
52099
|
+
type: boolean
|
|
52100
|
+
description: Indicates whether a DMARC record exists.
|
|
52101
|
+
has_spf:
|
|
52102
|
+
type: boolean
|
|
52103
|
+
description: Indicates whether an SPF record exists.
|
|
52104
|
+
redirects_externally:
|
|
52105
|
+
type: boolean
|
|
52106
|
+
description: Indicates whether the domain redirects to an external site.
|
|
52107
|
+
javascript_obfuscated:
|
|
52108
|
+
type: boolean
|
|
52109
|
+
description: Indicates whether obfuscated JavaScript was detected.
|
|
52110
|
+
domain_age_days:
|
|
52111
|
+
type:
|
|
52112
|
+
- integer
|
|
52113
|
+
- 'null'
|
|
52114
|
+
description: Age of the domain in days. null when WHOIS data is unavailable.
|
|
52115
|
+
registrar:
|
|
52116
|
+
type:
|
|
52117
|
+
- string
|
|
52118
|
+
- 'null'
|
|
52119
|
+
description: Domain registrar name. null when WHOIS data is unavailable.
|
|
52120
|
+
description: Individual trust / risk indicators for the domain.
|
|
52121
|
+
EmailDeliverability:
|
|
52122
|
+
type: object
|
|
52123
|
+
required:
|
|
52124
|
+
- score
|
|
52125
|
+
- grade
|
|
52126
|
+
- can_receive_email
|
|
52127
|
+
- authentication
|
|
52128
|
+
- infrastructure
|
|
52129
|
+
- reputation
|
|
52130
|
+
- issues
|
|
52131
|
+
properties:
|
|
52132
|
+
score:
|
|
52133
|
+
type: integer
|
|
52134
|
+
description: Overall email deliverability score out of 100.
|
|
52135
|
+
grade:
|
|
52136
|
+
type: string
|
|
52137
|
+
description: Letter / word grade summarizing the deliverability score.
|
|
52138
|
+
can_receive_email:
|
|
52139
|
+
type: boolean
|
|
52140
|
+
description: Indicates whether the domain is configured to receive email.
|
|
52141
|
+
authentication:
|
|
52142
|
+
$ref: '#/components/schemas/EmailAuthentication'
|
|
52143
|
+
infrastructure:
|
|
52144
|
+
$ref: '#/components/schemas/EmailInfrastructure'
|
|
52145
|
+
reputation:
|
|
52146
|
+
$ref: '#/components/schemas/EmailReputation'
|
|
52147
|
+
issues:
|
|
52148
|
+
type: array
|
|
52149
|
+
items:
|
|
52150
|
+
$ref: '#/components/schemas/EmailIssue'
|
|
52151
|
+
description: List of detected email deliverability issues or misconfigurations.
|
|
52152
|
+
description: Assessment of the domain's ability to send and receive email reliably.
|
|
52153
|
+
EmailAuthentication:
|
|
52154
|
+
type: object
|
|
52155
|
+
required:
|
|
52156
|
+
- spf
|
|
52157
|
+
- dkim
|
|
52158
|
+
- dmarc
|
|
52159
|
+
properties:
|
|
52160
|
+
spf:
|
|
52161
|
+
$ref: '#/components/schemas/SpfRecord'
|
|
52162
|
+
dkim:
|
|
52163
|
+
$ref: '#/components/schemas/DkimRecord'
|
|
52164
|
+
dmarc:
|
|
52165
|
+
$ref: '#/components/schemas/DmarcRecord'
|
|
52166
|
+
description: Email authentication mechanisms configured for the domain.
|
|
52167
|
+
SpfRecord:
|
|
52168
|
+
type: object
|
|
52169
|
+
required:
|
|
52170
|
+
- present
|
|
52171
|
+
- policy
|
|
52172
|
+
- record
|
|
52173
|
+
properties:
|
|
52174
|
+
present:
|
|
52175
|
+
type: boolean
|
|
52176
|
+
description: Indicates whether an SPF record was found.
|
|
52177
|
+
policy:
|
|
52178
|
+
type: string
|
|
52179
|
+
description: SPF enforcement policy qualifier found in the record (e.g. ~all, -all).
|
|
52180
|
+
record:
|
|
52181
|
+
type: string
|
|
52182
|
+
description: Raw SPF DNS TXT record string.
|
|
52183
|
+
description: Sender Policy Framework configuration.
|
|
52184
|
+
DkimRecord:
|
|
52185
|
+
type: object
|
|
52186
|
+
required:
|
|
52187
|
+
- found
|
|
52188
|
+
- selectors_found
|
|
52189
|
+
- providers_detected
|
|
52190
|
+
- note
|
|
52191
|
+
properties:
|
|
52192
|
+
found:
|
|
52193
|
+
type: boolean
|
|
52194
|
+
description: Indicates whether a DKIM record was found for any probed selector.
|
|
52195
|
+
selectors_found:
|
|
52196
|
+
type: array
|
|
52197
|
+
items:
|
|
52198
|
+
type: string
|
|
52199
|
+
description: List of DKIM selectors for which a record was found.
|
|
52200
|
+
providers_detected:
|
|
52201
|
+
type: array
|
|
52202
|
+
items:
|
|
52203
|
+
type: string
|
|
52204
|
+
description: Email service providers inferred from the matched DKIM selectors.
|
|
52205
|
+
note:
|
|
52206
|
+
type: string
|
|
52207
|
+
description: Clarifying note about the limitations of DKIM selector probing.
|
|
52208
|
+
description: DomainKeys Identified Mail configuration.
|
|
52209
|
+
DmarcRecord:
|
|
52210
|
+
type: object
|
|
52211
|
+
required:
|
|
52212
|
+
- present
|
|
52213
|
+
- policy
|
|
52214
|
+
- reporting_configured
|
|
52215
|
+
properties:
|
|
52216
|
+
present:
|
|
52217
|
+
type: boolean
|
|
52218
|
+
description: Indicates whether a DMARC record was found.
|
|
52219
|
+
policy:
|
|
52220
|
+
type: string
|
|
52221
|
+
description: DMARC enforcement policy applied to failing messages (e.g. none, quarantine, reject).
|
|
52222
|
+
reporting_configured:
|
|
52223
|
+
type: boolean
|
|
52224
|
+
description: Indicates whether DMARC aggregate / forensic reporting addresses are configured.
|
|
52225
|
+
description: Domain-based Message Authentication, Reporting and Conformance configuration.
|
|
52226
|
+
EmailInfrastructure:
|
|
52227
|
+
type: object
|
|
52228
|
+
required:
|
|
52229
|
+
- mx_count
|
|
52230
|
+
- mx_records
|
|
52231
|
+
- mx_provider
|
|
52232
|
+
- null_mx
|
|
52233
|
+
properties:
|
|
52234
|
+
mx_count:
|
|
52235
|
+
type: integer
|
|
52236
|
+
description: Number of MX records found for the domain.
|
|
52237
|
+
mx_records:
|
|
52238
|
+
type: array
|
|
52239
|
+
items:
|
|
52240
|
+
type: string
|
|
52241
|
+
description: List of mail exchange server hostnames for the domain.
|
|
52242
|
+
mx_provider:
|
|
52243
|
+
type: string
|
|
52244
|
+
description: Email hosting provider inferred from the MX records.
|
|
52245
|
+
null_mx:
|
|
52246
|
+
type: boolean
|
|
52247
|
+
description: Indicates whether the domain explicitly declines email via a null MX record.
|
|
52248
|
+
description: Mail server infrastructure backing the domain.
|
|
52249
|
+
EmailReputation:
|
|
52250
|
+
type: object
|
|
52251
|
+
required:
|
|
52252
|
+
- spam_blacklisted
|
|
52253
|
+
- newly_registered
|
|
52254
|
+
properties:
|
|
52255
|
+
spam_blacklisted:
|
|
52256
|
+
type: boolean
|
|
52257
|
+
description: Indicates whether the domain appears on known spam blacklists.
|
|
52258
|
+
newly_registered:
|
|
52259
|
+
type: boolean
|
|
52260
|
+
description: Indicates whether the domain was registered recently.
|
|
52261
|
+
domain_age_days:
|
|
52262
|
+
type:
|
|
52263
|
+
- integer
|
|
52264
|
+
- 'null'
|
|
52265
|
+
description: Age of the domain in days since registration.
|
|
52266
|
+
description: Reputation and trust signals related to the domain's email sending history.
|
|
52267
|
+
EmailIssue:
|
|
52268
|
+
type: object
|
|
52269
|
+
properties:
|
|
52270
|
+
code:
|
|
52271
|
+
type: string
|
|
52272
|
+
description: Machine-readable code identifying the specific deliverability issue.
|
|
52273
|
+
severity:
|
|
52274
|
+
type: string
|
|
52275
|
+
description: Severity level assigned to the detected issue.
|
|
52276
|
+
message:
|
|
52277
|
+
type: string
|
|
52278
|
+
description: Human-readable explanation of the issue.
|
|
52279
|
+
recommendation:
|
|
52280
|
+
type: string
|
|
52281
|
+
description: Plain-language description of the exact fix to apply.
|
|
52282
|
+
description: A detected email deliverability issue or misconfiguration.
|
|
52283
|
+
Intelligence:
|
|
52284
|
+
type: object
|
|
52285
|
+
required:
|
|
52286
|
+
- ioc_type
|
|
52287
|
+
- ioc_value
|
|
52288
|
+
- related_iocs
|
|
52289
|
+
- feed_tags
|
|
52290
|
+
- stix_pattern
|
|
52291
|
+
- recommended_action
|
|
52292
|
+
- first_seen
|
|
52293
|
+
- last_seen
|
|
52294
|
+
properties:
|
|
52295
|
+
ioc_type:
|
|
52296
|
+
type: string
|
|
52297
|
+
description: Type of the indicator of compromise (e.g. domain).
|
|
52298
|
+
ioc_value:
|
|
52299
|
+
type: string
|
|
52300
|
+
description: Value of the indicator of compromise.
|
|
52301
|
+
related_iocs:
|
|
52302
|
+
type: array
|
|
52303
|
+
items:
|
|
52304
|
+
$ref: '#/components/schemas/RelatedIoc'
|
|
52305
|
+
description: Other IOCs related to this domain.
|
|
52306
|
+
feed_tags:
|
|
52307
|
+
type: array
|
|
52308
|
+
items:
|
|
52309
|
+
type: string
|
|
52310
|
+
description: Tags associated with this IOC from threat feeds.
|
|
52311
|
+
stix_pattern:
|
|
52312
|
+
type: string
|
|
52313
|
+
description: STIX 2.1 pattern representation of the IOC, ready to wrap into an Indicator object.
|
|
52314
|
+
recommended_action:
|
|
52315
|
+
type: string
|
|
52316
|
+
enum:
|
|
52317
|
+
- allow
|
|
52318
|
+
- monitor
|
|
52319
|
+
- block
|
|
52320
|
+
description: Recommended action based on the assessment.
|
|
52321
|
+
first_seen:
|
|
52322
|
+
type:
|
|
52323
|
+
- string
|
|
52324
|
+
- 'null'
|
|
52325
|
+
description: First time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed.
|
|
52326
|
+
last_seen:
|
|
52327
|
+
type:
|
|
52328
|
+
- string
|
|
52329
|
+
- 'null'
|
|
52330
|
+
description: Last time this IOC was observed (YYYY-MM-DDTHH:mm:ssZ). null when never observed on a feed.
|
|
52331
|
+
description: Threat intelligence details for the indicator of compromise (IOC).
|
|
52332
|
+
RelatedIoc:
|
|
52333
|
+
type: object
|
|
52334
|
+
required:
|
|
52335
|
+
- type
|
|
52336
|
+
- value
|
|
52337
|
+
- confidence
|
|
52338
|
+
properties:
|
|
52339
|
+
type:
|
|
52340
|
+
type: string
|
|
52341
|
+
description: Type of the related IOC (e.g. ipv4, ipv6).
|
|
52342
|
+
value:
|
|
52343
|
+
type: string
|
|
52344
|
+
description: Value of the related IOC.
|
|
52345
|
+
confidence:
|
|
52346
|
+
type: number
|
|
52347
|
+
format: float
|
|
52348
|
+
description: Confidence score for the related IOC (0-1).
|
|
52349
|
+
description: A related indicator of compromise.
|
|
52350
|
+
EvidenceSummary:
|
|
52351
|
+
type: object
|
|
52352
|
+
required:
|
|
52353
|
+
- why_flagged
|
|
52354
|
+
properties:
|
|
52355
|
+
why_flagged:
|
|
52356
|
+
type: array
|
|
52357
|
+
items:
|
|
52358
|
+
type: string
|
|
52359
|
+
description: List of reasons why the domain was flagged. Empty for a clean domain.
|
|
52360
|
+
description: Summary of reasons behind the risk assessment.
|
|
52361
|
+
ErrorResponse:
|
|
52362
|
+
type: object
|
|
52363
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
52364
|
+
required:
|
|
52365
|
+
- message
|
|
52366
|
+
properties:
|
|
52367
|
+
error:
|
|
52368
|
+
type: string
|
|
52369
|
+
description: Short error category or exception type.
|
|
52370
|
+
message:
|
|
52371
|
+
type: string
|
|
52372
|
+
description: Human-readable error message describing the failure.
|
|
52373
|
+
path:
|
|
52374
|
+
type: string
|
|
52375
|
+
description: API endpoint path that produced the error.
|
|
52376
|
+
status:
|
|
52377
|
+
type: integer
|
|
52378
|
+
description: HTTP status code returned with the error.
|
|
52379
|
+
timestamp:
|
|
52380
|
+
type: string
|
|
52381
|
+
format: date-time
|
|
52382
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
52383
|
+
headers:
|
|
52384
|
+
X-AF-Credits-Cost:
|
|
52385
|
+
description: Specifies the number of credits consumed by the current request.
|
|
52386
|
+
schema:
|
|
52387
|
+
type: integer
|
|
52388
|
+
security:
|
|
52389
|
+
- ApiKeyAuthHeader: []
|
|
52390
|
+
- ApiKeyAuthQuery: []
|
|
49882
52391
|
`,
|
|
49883
52392
|
"domain-search-with-suggestions": `openapi: 3.1.1
|
|
49884
52393
|
info:
|
|
@@ -50254,10 +52763,861 @@ components:
|
|
|
50254
52763
|
security:
|
|
50255
52764
|
- ApiKeyAuthHeader: []
|
|
50256
52765
|
- ApiKeyAuthQuery: []
|
|
52766
|
+
`,
|
|
52767
|
+
"domain-typosquatting": `openapi: 3.1.1
|
|
52768
|
+
info:
|
|
52769
|
+
title: Domain Typosquatting API - Find Typo and Look-Alike Domains for Brand Protection and Phishing Discovery
|
|
52770
|
+
version: 1.0.0
|
|
52771
|
+
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.
|
|
52772
|
+
contact:
|
|
52773
|
+
name: APIFreaks Support
|
|
52774
|
+
url: https://apifreaks.com/contact
|
|
52775
|
+
email: support@apifreaks.com
|
|
52776
|
+
servers:
|
|
52777
|
+
- url: https://api.apifreaks.com/v1.0
|
|
52778
|
+
description: Domain Typosquatting API Server
|
|
52779
|
+
paths:
|
|
52780
|
+
/domain/typosquatting:
|
|
52781
|
+
get:
|
|
52782
|
+
tags:
|
|
52783
|
+
- Domain APIs
|
|
52784
|
+
summary: Find registered typo-variant or wildcard-pattern domains for a brand keyword.
|
|
52785
|
+
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.
|
|
52786
|
+
parameters:
|
|
52787
|
+
- name: format
|
|
52788
|
+
in: query
|
|
52789
|
+
required: false
|
|
52790
|
+
schema:
|
|
52791
|
+
type: string
|
|
52792
|
+
enum:
|
|
52793
|
+
- json
|
|
52794
|
+
- xml
|
|
52795
|
+
default: json
|
|
52796
|
+
description: Format of the response.
|
|
52797
|
+
- name: keyword
|
|
52798
|
+
in: query
|
|
52799
|
+
required: false
|
|
52800
|
+
schema:
|
|
52801
|
+
type: string
|
|
52802
|
+
minLength: 3
|
|
52803
|
+
maxLength: 63
|
|
52804
|
+
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.
|
|
52805
|
+
- name: pattern
|
|
52806
|
+
in: query
|
|
52807
|
+
required: false
|
|
52808
|
+
schema:
|
|
52809
|
+
type: string
|
|
52810
|
+
minLength: 3
|
|
52811
|
+
maxLength: 63
|
|
52812
|
+
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.
|
|
52813
|
+
- name: pageToken
|
|
52814
|
+
in: query
|
|
52815
|
+
required: false
|
|
52816
|
+
schema:
|
|
52817
|
+
type: string
|
|
52818
|
+
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.
|
|
52819
|
+
responses:
|
|
52820
|
+
'200':
|
|
52821
|
+
description: Success
|
|
52822
|
+
content:
|
|
52823
|
+
application/json:
|
|
52824
|
+
schema:
|
|
52825
|
+
$ref: '#/components/schemas/DomainTyposquattingResponse'
|
|
52826
|
+
examples:
|
|
52827
|
+
keywordSuccess:
|
|
52828
|
+
summary: Keyword search (paypal)
|
|
52829
|
+
value:
|
|
52830
|
+
status: true
|
|
52831
|
+
totalRecords: 1284
|
|
52832
|
+
currentPage: 1
|
|
52833
|
+
hasNextPage: true
|
|
52834
|
+
totalPages: 13
|
|
52835
|
+
nextPageToken: <opaque_token>
|
|
52836
|
+
domains:
|
|
52837
|
+
- domainName: p-aypal.com
|
|
52838
|
+
createDate: '2025-04-17'
|
|
52839
|
+
expiryDate: '2026-04-17'
|
|
52840
|
+
lastSeen: '2026-05-29'
|
|
52841
|
+
isDropped: true
|
|
52842
|
+
- domainName: p-aypal.de
|
|
52843
|
+
lastSeen: '2024-07-11'
|
|
52844
|
+
isDropped: true
|
|
52845
|
+
- domainName: p0aypal.com
|
|
52846
|
+
createDate: '2017-12-29'
|
|
52847
|
+
expiryDate: '2026-12-29'
|
|
52848
|
+
lastSeen: '2026-08-18'
|
|
52849
|
+
isDropped: false
|
|
52850
|
+
- domainName: p7ypal.com
|
|
52851
|
+
isDropped: true
|
|
52852
|
+
- domainName: pa-pal.club
|
|
52853
|
+
createDate: '2019-10-25'
|
|
52854
|
+
expiryDate: '2020-10-25'
|
|
52855
|
+
isDropped: false
|
|
52856
|
+
patternSuccess:
|
|
52857
|
+
summary: Wildcard pattern search (*paypal*)
|
|
52858
|
+
value:
|
|
52859
|
+
status: true
|
|
52860
|
+
totalRecords: 5471
|
|
52861
|
+
currentPage: 1
|
|
52862
|
+
hasNextPage: true
|
|
52863
|
+
totalPages: 55
|
|
52864
|
+
nextPageToken: <opaque_token>
|
|
52865
|
+
domains:
|
|
52866
|
+
- domainName: paypal-support.com
|
|
52867
|
+
createDate: '2024-11-02'
|
|
52868
|
+
expiryDate: '2026-11-02'
|
|
52869
|
+
lastSeen: '2026-08-30'
|
|
52870
|
+
isDropped: false
|
|
52871
|
+
- domainName: login-paypal.net
|
|
52872
|
+
lastSeen: '2025-12-14'
|
|
52873
|
+
isDropped: true
|
|
52874
|
+
emptyResult:
|
|
52875
|
+
summary: No matches found
|
|
52876
|
+
value:
|
|
52877
|
+
status: true
|
|
52878
|
+
totalRecords: 0
|
|
52879
|
+
currentPage: 1
|
|
52880
|
+
hasNextPage: false
|
|
52881
|
+
totalPages: 0
|
|
52882
|
+
domains: []
|
|
52883
|
+
headers:
|
|
52884
|
+
X-AF-Credits-Cost:
|
|
52885
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
52886
|
+
'400':
|
|
52887
|
+
description: Bad Request \u2013 Invalid parameters
|
|
52888
|
+
content:
|
|
52889
|
+
application/json:
|
|
52890
|
+
schema:
|
|
52891
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
52892
|
+
examples:
|
|
52893
|
+
shortPattern:
|
|
52894
|
+
summary: Pattern has too few non-wildcard characters
|
|
52895
|
+
value:
|
|
52896
|
+
error: Invalid Pattern Exception
|
|
52897
|
+
message: The pattern must contain at least 5 non-wildcard characters and no more than 3 wildcards.
|
|
52898
|
+
path: /v1.0/domain/typosquatting
|
|
52899
|
+
status: 400
|
|
52900
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
52901
|
+
bothParams:
|
|
52902
|
+
summary: Both keyword and pattern supplied
|
|
52903
|
+
value:
|
|
52904
|
+
error: Invalid Param Exception
|
|
52905
|
+
message: Use either the "keyword" or the "pattern" parameter, never both.
|
|
52906
|
+
path: /v1.0/domain/typosquatting
|
|
52907
|
+
status: 400
|
|
52908
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
52909
|
+
missingParam:
|
|
52910
|
+
summary: Neither keyword nor pattern supplied
|
|
52911
|
+
value:
|
|
52912
|
+
error: Invalid Param Exception
|
|
52913
|
+
message: Please provide either a "keyword" or a "pattern" parameter.
|
|
52914
|
+
path: /v1.0/domain/typosquatting
|
|
52915
|
+
status: 400
|
|
52916
|
+
timestamp: '2026-09-08T12:00:00.000Z'
|
|
52917
|
+
headers:
|
|
52918
|
+
X-AF-Credits-Cost:
|
|
52919
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
52920
|
+
operationId: getDomainTyposquatting
|
|
52921
|
+
components:
|
|
52922
|
+
securitySchemes:
|
|
52923
|
+
ApiKeyAuthHeader:
|
|
52924
|
+
type: apiKey
|
|
52925
|
+
in: header
|
|
52926
|
+
name: X-apiKey
|
|
52927
|
+
description: Pass your API key via the X-apiKey request header.
|
|
52928
|
+
ApiKeyAuthQuery:
|
|
52929
|
+
type: apiKey
|
|
52930
|
+
in: query
|
|
52931
|
+
name: apiKey
|
|
52932
|
+
description: Pass your API key via the apiKey query parameter.
|
|
52933
|
+
schemas:
|
|
52934
|
+
DomainTyposquattingResponse:
|
|
52935
|
+
type: object
|
|
52936
|
+
required:
|
|
52937
|
+
- status
|
|
52938
|
+
- totalRecords
|
|
52939
|
+
- currentPage
|
|
52940
|
+
- hasNextPage
|
|
52941
|
+
- totalPages
|
|
52942
|
+
- domains
|
|
52943
|
+
properties:
|
|
52944
|
+
status:
|
|
52945
|
+
type: boolean
|
|
52946
|
+
description: Indicates if the request was successful.
|
|
52947
|
+
totalRecords:
|
|
52948
|
+
type: integer
|
|
52949
|
+
description: Total number of domains found.
|
|
52950
|
+
currentPage:
|
|
52951
|
+
type: integer
|
|
52952
|
+
description: Page number of the current response. Starts at 1.
|
|
52953
|
+
hasNextPage:
|
|
52954
|
+
type: boolean
|
|
52955
|
+
description: true if at least one additional page is available.
|
|
52956
|
+
totalPages:
|
|
52957
|
+
type: integer
|
|
52958
|
+
description: Total number of pages available.
|
|
52959
|
+
nextPageToken:
|
|
52960
|
+
type: string
|
|
52961
|
+
description: Opaque token to pass as pageToken on the next request. Present only when hasNextPage is true.
|
|
52962
|
+
domains:
|
|
52963
|
+
type: array
|
|
52964
|
+
items:
|
|
52965
|
+
$ref: '#/components/schemas/DomainItem'
|
|
52966
|
+
description: List of typo-variant or pattern-matched domains on the current page.
|
|
52967
|
+
description: Paginated response containing typo-variant or pattern-matched domains.
|
|
52968
|
+
DomainItem:
|
|
52969
|
+
type: object
|
|
52970
|
+
required:
|
|
52971
|
+
- domainName
|
|
52972
|
+
- isDropped
|
|
52973
|
+
properties:
|
|
52974
|
+
domainName:
|
|
52975
|
+
type: string
|
|
52976
|
+
description: Domain name.
|
|
52977
|
+
createDate:
|
|
52978
|
+
type: string
|
|
52979
|
+
description: Domain creation date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.
|
|
52980
|
+
expiryDate:
|
|
52981
|
+
type: string
|
|
52982
|
+
description: Domain expiration date (YYYY-MM-DD). May be absent for older or less-actively-tracked entries.
|
|
52983
|
+
lastSeen:
|
|
52984
|
+
type: string
|
|
52985
|
+
description: Last time the domain was observed (YYYY-MM-DD). One of the two fields reliably meaningful across a full result set.
|
|
52986
|
+
isDropped:
|
|
52987
|
+
type: boolean
|
|
52988
|
+
description: Indicates whether the domain has dropped out of the registry and become available to register again.
|
|
52989
|
+
description: A single typo-variant or pattern-matched domain with registration lifecycle data.
|
|
52990
|
+
ErrorResponse:
|
|
52991
|
+
type: object
|
|
52992
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
52993
|
+
required:
|
|
52994
|
+
- message
|
|
52995
|
+
properties:
|
|
52996
|
+
error:
|
|
52997
|
+
type: string
|
|
52998
|
+
description: Short error category or exception type.
|
|
52999
|
+
message:
|
|
53000
|
+
type: string
|
|
53001
|
+
description: Human-readable error message describing the failure.
|
|
53002
|
+
path:
|
|
53003
|
+
type: string
|
|
53004
|
+
description: API endpoint path that produced the error.
|
|
53005
|
+
status:
|
|
53006
|
+
type: integer
|
|
53007
|
+
description: HTTP status code returned with the error.
|
|
53008
|
+
timestamp:
|
|
53009
|
+
type: string
|
|
53010
|
+
format: date-time
|
|
53011
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
53012
|
+
headers:
|
|
53013
|
+
X-AF-Credits-Cost:
|
|
53014
|
+
description: Specifies the number of credits consumed by the current request.
|
|
53015
|
+
schema:
|
|
53016
|
+
type: integer
|
|
53017
|
+
security:
|
|
53018
|
+
- ApiKeyAuthHeader: []
|
|
53019
|
+
- ApiKeyAuthQuery: []
|
|
50257
53020
|
`,
|
|
50258
53021
|
"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",
|
|
50259
|
-
"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",
|
|
50260
|
-
"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",
|
|
53022
|
+
"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",
|
|
53023
|
+
"email-checker": `openapi: 3.1.1
|
|
53024
|
+
info:
|
|
53025
|
+
title: Email Checker API - Real-Time Validation, Deliverability & Risk Signals
|
|
53026
|
+
version: 1.0.0
|
|
53027
|
+
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.
|
|
53028
|
+
contact:
|
|
53029
|
+
name: APIFreaks Support
|
|
53030
|
+
url: https://apifreaks.com/contact
|
|
53031
|
+
email: support@apifreaks.com
|
|
53032
|
+
servers:
|
|
53033
|
+
- url: https://api.apifreaks.com/v1.0
|
|
53034
|
+
description: Email Checker API Server
|
|
53035
|
+
paths:
|
|
53036
|
+
/email-validation/single:
|
|
53037
|
+
post:
|
|
53038
|
+
tags:
|
|
53039
|
+
- Email Validation APIs
|
|
53040
|
+
summary: Validate a single email
|
|
53041
|
+
description: Validates a single email address and returns result.
|
|
53042
|
+
parameters:
|
|
53043
|
+
- name: format
|
|
53044
|
+
in: query
|
|
53045
|
+
required: false
|
|
53046
|
+
schema:
|
|
53047
|
+
type: string
|
|
53048
|
+
enum:
|
|
53049
|
+
- json
|
|
53050
|
+
- xml
|
|
53051
|
+
description: Format of the response
|
|
53052
|
+
requestBody:
|
|
53053
|
+
required: true
|
|
53054
|
+
content:
|
|
53055
|
+
application/json:
|
|
53056
|
+
schema:
|
|
53057
|
+
$ref: '#/components/schemas/EmailCheckRequest'
|
|
53058
|
+
responses:
|
|
53059
|
+
'200':
|
|
53060
|
+
description: Successful response with Email Validation
|
|
53061
|
+
content:
|
|
53062
|
+
application/json:
|
|
53063
|
+
schema:
|
|
53064
|
+
$ref: '#/components/schemas/SingleEmailValidationResponse'
|
|
53065
|
+
examples:
|
|
53066
|
+
validEmail:
|
|
53067
|
+
summary: Valid, deliverable email
|
|
53068
|
+
value:
|
|
53069
|
+
success: true
|
|
53070
|
+
email: abc.def@gmail.com
|
|
53071
|
+
validEmail: valid
|
|
53072
|
+
validSyntax: true
|
|
53073
|
+
domain:
|
|
53074
|
+
name: gmail.com
|
|
53075
|
+
disposable: false
|
|
53076
|
+
spam: false
|
|
53077
|
+
free: true
|
|
53078
|
+
validDomain: true
|
|
53079
|
+
catchAll: false
|
|
53080
|
+
account:
|
|
53081
|
+
role: false
|
|
53082
|
+
fullMailBox: false
|
|
53083
|
+
dns:
|
|
53084
|
+
mxRecord:
|
|
53085
|
+
- gmail-smtp-in.l.google.com.
|
|
53086
|
+
- alt1.gmail-smtp-in.l.google.com.
|
|
53087
|
+
- alt2.gmail-smtp-in.l.google.com.
|
|
53088
|
+
- alt3.gmail-smtp-in.l.google.com.
|
|
53089
|
+
- alt4.gmail-smtp-in.l.google.com.
|
|
53090
|
+
invalidSyntax:
|
|
53091
|
+
summary: Syntactically invalid email \u2014 domain/account/dns are minimal or absent
|
|
53092
|
+
value:
|
|
53093
|
+
success: true
|
|
53094
|
+
email: not-an-email
|
|
53095
|
+
validEmail: INVALID_EMAIL
|
|
53096
|
+
validSyntax: false
|
|
53097
|
+
domain:
|
|
53098
|
+
name: not-an-email
|
|
53099
|
+
validDomain: false
|
|
53100
|
+
nonexistentDomain:
|
|
53101
|
+
summary: Valid syntax, domain does not exist (NXDOMAIN)
|
|
53102
|
+
value:
|
|
53103
|
+
success: true
|
|
53104
|
+
email: test@nonexistentdomainxyz123abc.com
|
|
53105
|
+
validEmail: invalid
|
|
53106
|
+
validSyntax: true
|
|
53107
|
+
reason: mx record does not exist.
|
|
53108
|
+
domain:
|
|
53109
|
+
name: nonexistentdomainxyz123abc.com
|
|
53110
|
+
disposable: false
|
|
53111
|
+
spam: false
|
|
53112
|
+
free: false
|
|
53113
|
+
validDomain: false
|
|
53114
|
+
catchAll: false
|
|
53115
|
+
account:
|
|
53116
|
+
role: false
|
|
53117
|
+
acceptAll:
|
|
53118
|
+
summary: Catch-all domain accepted the recipient \u2014 mailbox unconfirmed
|
|
53119
|
+
value:
|
|
53120
|
+
success: true
|
|
53121
|
+
email: random12345@yahoo.com
|
|
53122
|
+
validEmail: accept_all
|
|
53123
|
+
validSyntax: true
|
|
53124
|
+
reason: domain accepts all addresses.
|
|
53125
|
+
domain:
|
|
53126
|
+
name: yahoo.com
|
|
53127
|
+
disposable: false
|
|
53128
|
+
spam: false
|
|
53129
|
+
free: true
|
|
53130
|
+
validDomain: true
|
|
53131
|
+
catchAll: true
|
|
53132
|
+
account:
|
|
53133
|
+
role: false
|
|
53134
|
+
fullMailBox: false
|
|
53135
|
+
dns:
|
|
53136
|
+
mxRecord:
|
|
53137
|
+
- mta5.am0.yahoodns.net.
|
|
53138
|
+
- mta6.am0.yahoodns.net.
|
|
53139
|
+
- mta7.am0.yahoodns.net.
|
|
53140
|
+
nullMxDomain:
|
|
53141
|
+
summary: Domain publishes a null MX (single ".") \u2014 accepts no mail at all
|
|
53142
|
+
value:
|
|
53143
|
+
success: true
|
|
53144
|
+
email: test@example.com
|
|
53145
|
+
validEmail: invalid
|
|
53146
|
+
validSyntax: true
|
|
53147
|
+
reason: domain does not accept mail.
|
|
53148
|
+
domain:
|
|
53149
|
+
name: example.com
|
|
53150
|
+
disposable: true
|
|
53151
|
+
spam: false
|
|
53152
|
+
free: false
|
|
53153
|
+
validDomain: true
|
|
53154
|
+
catchAll: false
|
|
53155
|
+
account:
|
|
53156
|
+
role: false
|
|
53157
|
+
dns:
|
|
53158
|
+
mxRecord:
|
|
53159
|
+
- .
|
|
53160
|
+
noMxAddressOnly:
|
|
53161
|
+
summary: Domain has no MX record but a working A record \u2014 gets a real SMTP probe
|
|
53162
|
+
value:
|
|
53163
|
+
success: true
|
|
53164
|
+
email: test@neverssl.com
|
|
53165
|
+
validEmail: unknown
|
|
53166
|
+
validSyntax: true
|
|
53167
|
+
reason: We are unable to determine if email is valid or invalid.
|
|
53168
|
+
domain:
|
|
53169
|
+
name: neverssl.com
|
|
53170
|
+
disposable: false
|
|
53171
|
+
spam: false
|
|
53172
|
+
free: false
|
|
53173
|
+
validDomain: true
|
|
53174
|
+
catchAll: false
|
|
53175
|
+
account:
|
|
53176
|
+
role: false
|
|
53177
|
+
dns:
|
|
53178
|
+
aRecord:
|
|
53179
|
+
- 34.223.124.45
|
|
53180
|
+
withIp:
|
|
53181
|
+
summary: With ip \u2014 adds geolocation/security enrichment under address
|
|
53182
|
+
value:
|
|
53183
|
+
success: true
|
|
53184
|
+
email: abc.def@gmail.com
|
|
53185
|
+
validEmail: valid
|
|
53186
|
+
validSyntax: true
|
|
53187
|
+
domain:
|
|
53188
|
+
name: gmail.com
|
|
53189
|
+
disposable: false
|
|
53190
|
+
spam: false
|
|
53191
|
+
free: true
|
|
53192
|
+
validDomain: true
|
|
53193
|
+
catchAll: false
|
|
53194
|
+
account:
|
|
53195
|
+
role: false
|
|
53196
|
+
fullMailBox: false
|
|
53197
|
+
dns:
|
|
53198
|
+
mxRecord:
|
|
53199
|
+
- gmail-smtp-in.l.google.com.
|
|
53200
|
+
- alt1.gmail-smtp-in.l.google.com.
|
|
53201
|
+
- alt2.gmail-smtp-in.l.google.com.
|
|
53202
|
+
- alt3.gmail-smtp-in.l.google.com.
|
|
53203
|
+
- alt4.gmail-smtp-in.l.google.com.
|
|
53204
|
+
ip: 8.8.8.8
|
|
53205
|
+
address:
|
|
53206
|
+
validIpAddress: true
|
|
53207
|
+
location:
|
|
53208
|
+
city: Mountain View
|
|
53209
|
+
district: Santa Clara
|
|
53210
|
+
confidence: low
|
|
53211
|
+
zipcode: 94043-1351
|
|
53212
|
+
state_prov: California
|
|
53213
|
+
country_name: United States
|
|
53214
|
+
continent_name: North America
|
|
53215
|
+
continent_code: NA
|
|
53216
|
+
country_code2: US
|
|
53217
|
+
country_code3: USA
|
|
53218
|
+
country_name_official: United States of America
|
|
53219
|
+
accuracy_radius: '27.42'
|
|
53220
|
+
is_eu: false
|
|
53221
|
+
security:
|
|
53222
|
+
threat_score: 5
|
|
53223
|
+
is_tor: false
|
|
53224
|
+
is_proxy: false
|
|
53225
|
+
proxy_type: ''
|
|
53226
|
+
proxy_provider: ''
|
|
53227
|
+
is_anonymous: false
|
|
53228
|
+
is_known_attacker: false
|
|
53229
|
+
is_spam: false
|
|
53230
|
+
is_bot: false
|
|
53231
|
+
is_cloud_provider: true
|
|
53232
|
+
cloud_provider: Google LLC
|
|
53233
|
+
appServerBlocked:
|
|
53234
|
+
summary: Valid syntax, but the recipient mail server blocked the verification attempt
|
|
53235
|
+
value:
|
|
53236
|
+
success: true
|
|
53237
|
+
email: randomuser98765zzz@gmx.com
|
|
53238
|
+
validEmail: app_server_blocked
|
|
53239
|
+
validSyntax: true
|
|
53240
|
+
reason: We are unable to determine the validity of email at the moment. Please try later.
|
|
53241
|
+
domain:
|
|
53242
|
+
name: gmx.com
|
|
53243
|
+
disposable: false
|
|
53244
|
+
spam: false
|
|
53245
|
+
free: true
|
|
53246
|
+
validDomain: true
|
|
53247
|
+
catchAll: false
|
|
53248
|
+
account:
|
|
53249
|
+
role: false
|
|
53250
|
+
dns:
|
|
53251
|
+
mxRecord:
|
|
53252
|
+
- mx00.gmx.net.
|
|
53253
|
+
headers:
|
|
53254
|
+
X-AF-Credits-Cost:
|
|
53255
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53256
|
+
X-Concurrent-Threads:
|
|
53257
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53258
|
+
X-Concurrent-Threads-Active:
|
|
53259
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53260
|
+
'400':
|
|
53261
|
+
description: Bad Request \u2013 Invalid request body
|
|
53262
|
+
content:
|
|
53263
|
+
application/json:
|
|
53264
|
+
schema:
|
|
53265
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53266
|
+
examples:
|
|
53267
|
+
missingEmail:
|
|
53268
|
+
summary: email field missing from request body
|
|
53269
|
+
value:
|
|
53270
|
+
timestamp: '2026-09-02T11:56:23.462Z'
|
|
53271
|
+
path: /v2/email-validation/single
|
|
53272
|
+
status: 400
|
|
53273
|
+
error: Missing or Invalid Parameters
|
|
53274
|
+
message: Please pass valid value for 'email' in body.
|
|
53275
|
+
headers:
|
|
53276
|
+
X-AF-Credits-Cost:
|
|
53277
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53278
|
+
X-Concurrent-Threads:
|
|
53279
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53280
|
+
X-Concurrent-Threads-Active:
|
|
53281
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53282
|
+
'404':
|
|
53283
|
+
description: Not Found \u2013 The requested resource could not be found
|
|
53284
|
+
content:
|
|
53285
|
+
application/json:
|
|
53286
|
+
schema:
|
|
53287
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53288
|
+
examples:
|
|
53289
|
+
Resource Not Found:
|
|
53290
|
+
value:
|
|
53291
|
+
timestamp: '2026-09-02T11:56:23.937Z'
|
|
53292
|
+
path: /v1.0/email-validation/singlex
|
|
53293
|
+
status: 404
|
|
53294
|
+
error: Resource Not Found
|
|
53295
|
+
message: The requested resource could not be found. Please verify the URL and try again.
|
|
53296
|
+
headers:
|
|
53297
|
+
X-AF-Credits-Cost:
|
|
53298
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53299
|
+
X-Concurrent-Threads:
|
|
53300
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53301
|
+
X-Concurrent-Threads-Active:
|
|
53302
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53303
|
+
'408':
|
|
53304
|
+
description: Request Timeout
|
|
53305
|
+
content:
|
|
53306
|
+
application/json:
|
|
53307
|
+
schema:
|
|
53308
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53309
|
+
examples:
|
|
53310
|
+
Request Timeout:
|
|
53311
|
+
value:
|
|
53312
|
+
timestamp: '2026-06-06T13:00:00.000Z'
|
|
53313
|
+
path: /v1.0/email-validation/single
|
|
53314
|
+
status: 408
|
|
53315
|
+
error: Request Timeout
|
|
53316
|
+
message: Timed out while connecting to the remote URL.
|
|
53317
|
+
headers:
|
|
53318
|
+
X-AF-Credits-Cost:
|
|
53319
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53320
|
+
X-Concurrent-Threads:
|
|
53321
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53322
|
+
X-Concurrent-Threads-Active:
|
|
53323
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53324
|
+
'429':
|
|
53325
|
+
description: Rate Limit Exceeded
|
|
53326
|
+
content:
|
|
53327
|
+
application/json:
|
|
53328
|
+
schema:
|
|
53329
|
+
$ref: '#/components/schemas/ErrorResponse'
|
|
53330
|
+
examples:
|
|
53331
|
+
Rate Limit Exceeded:
|
|
53332
|
+
value:
|
|
53333
|
+
timestamp: '2026-06-06T13:00:00.000Z'
|
|
53334
|
+
path: /v1.0/email-validation/single
|
|
53335
|
+
status: 429
|
|
53336
|
+
error: Too Many Requests
|
|
53337
|
+
message: API rate limit exceeded.
|
|
53338
|
+
headers:
|
|
53339
|
+
X-AF-Credits-Cost:
|
|
53340
|
+
$ref: '#/components/headers/X-AF-Credits-Cost'
|
|
53341
|
+
X-Concurrent-Threads:
|
|
53342
|
+
$ref: '#/components/headers/X-Concurrent-Threads'
|
|
53343
|
+
X-Concurrent-Threads-Active:
|
|
53344
|
+
$ref: '#/components/headers/X-Concurrent-Threads-Active'
|
|
53345
|
+
operationId: checkEmail
|
|
53346
|
+
components:
|
|
53347
|
+
securitySchemes:
|
|
53348
|
+
ApiKeyAuthHeader:
|
|
53349
|
+
type: apiKey
|
|
53350
|
+
in: header
|
|
53351
|
+
name: X-apiKey
|
|
53352
|
+
description: Pass your API key via the X-apiKey request header.
|
|
53353
|
+
ApiKeyAuthQuery:
|
|
53354
|
+
type: apiKey
|
|
53355
|
+
in: query
|
|
53356
|
+
name: apiKey
|
|
53357
|
+
description: Pass your API key via the apiKey query parameter.
|
|
53358
|
+
schemas:
|
|
53359
|
+
SingleEmailValidationResponse:
|
|
53360
|
+
type: object
|
|
53361
|
+
required:
|
|
53362
|
+
- success
|
|
53363
|
+
- email
|
|
53364
|
+
- validEmail
|
|
53365
|
+
- validSyntax
|
|
53366
|
+
- domain
|
|
53367
|
+
properties:
|
|
53368
|
+
success:
|
|
53369
|
+
type: boolean
|
|
53370
|
+
description: 'Indicates the processing status of the validation request. true: completed successfully.'
|
|
53371
|
+
email:
|
|
53372
|
+
type: string
|
|
53373
|
+
format: email
|
|
53374
|
+
description: The email address submitted for validation.
|
|
53375
|
+
name:
|
|
53376
|
+
type: string
|
|
53377
|
+
description: Optional identifier or label provided in the request for record tracking.
|
|
53378
|
+
reason:
|
|
53379
|
+
type: string
|
|
53380
|
+
description: Detailed explanation returned when validEmail is not valid. Omitted entirely when validEmail is valid.
|
|
53381
|
+
validEmail:
|
|
53382
|
+
type: string
|
|
53383
|
+
enum:
|
|
53384
|
+
- valid
|
|
53385
|
+
- accept_all
|
|
53386
|
+
- invalid
|
|
53387
|
+
- INVALID_EMAIL
|
|
53388
|
+
- unknown
|
|
53389
|
+
- risky
|
|
53390
|
+
- app_server_blocked
|
|
53391
|
+
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.'
|
|
53392
|
+
validSyntax:
|
|
53393
|
+
type: boolean
|
|
53394
|
+
description: Validates email address format compliance with RFC 5322 standards.
|
|
53395
|
+
domain:
|
|
53396
|
+
$ref: '#/components/schemas/DomainObject'
|
|
53397
|
+
account:
|
|
53398
|
+
$ref: '#/components/schemas/AccountObject'
|
|
53399
|
+
dns:
|
|
53400
|
+
$ref: '#/components/schemas/DnsObject'
|
|
53401
|
+
address:
|
|
53402
|
+
$ref: '#/components/schemas/AddressObject'
|
|
53403
|
+
ip:
|
|
53404
|
+
type: string
|
|
53405
|
+
format: ip
|
|
53406
|
+
description: IP address provided for geolocation and security enrichment.
|
|
53407
|
+
description: Email validation response containing deliverability assessment and metadata.
|
|
53408
|
+
DomainObject:
|
|
53409
|
+
type: object
|
|
53410
|
+
required:
|
|
53411
|
+
- name
|
|
53412
|
+
- validDomain
|
|
53413
|
+
properties:
|
|
53414
|
+
name:
|
|
53415
|
+
type: string
|
|
53416
|
+
description: Extracted domain component from the email address.
|
|
53417
|
+
validDomain:
|
|
53418
|
+
type: boolean
|
|
53419
|
+
description: Domain validation status confirming DNS resolution capability.
|
|
53420
|
+
disposable:
|
|
53421
|
+
type: boolean
|
|
53422
|
+
description: Classification flag identifying domains from temporary email service providers.
|
|
53423
|
+
spam:
|
|
53424
|
+
type: boolean
|
|
53425
|
+
description: Reputation indicator flagging domains on spam databases.
|
|
53426
|
+
free:
|
|
53427
|
+
type: boolean
|
|
53428
|
+
description: Classification indicating free or consumer-grade email service providers.
|
|
53429
|
+
catchAll:
|
|
53430
|
+
type: boolean
|
|
53431
|
+
description: Detection flag for domains configured to accept mail for any recipient address. true always corresponds to a top-level validEmail of accept_all.
|
|
53432
|
+
description: Domain validation details for the email address.
|
|
53433
|
+
AccountObject:
|
|
53434
|
+
type: object
|
|
53435
|
+
required:
|
|
53436
|
+
- role
|
|
53437
|
+
properties:
|
|
53438
|
+
role:
|
|
53439
|
+
type: boolean
|
|
53440
|
+
description: Detection flag identifying role-based email addresses (e.g., admin@, support@).
|
|
53441
|
+
fullMailBox:
|
|
53442
|
+
type: boolean
|
|
53443
|
+
description: Storage capacity status indicator for the recipient mailbox.
|
|
53444
|
+
description: Account-level validation details.
|
|
53445
|
+
DnsObject:
|
|
53446
|
+
type: object
|
|
53447
|
+
required: []
|
|
53448
|
+
properties:
|
|
53449
|
+
mxRecord:
|
|
53450
|
+
type: array
|
|
53451
|
+
items:
|
|
53452
|
+
type: string
|
|
53453
|
+
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.
|
|
53454
|
+
aRecord:
|
|
53455
|
+
type: array
|
|
53456
|
+
items:
|
|
53457
|
+
type: string
|
|
53458
|
+
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.
|
|
53459
|
+
description: DNS records for the email domain. Absent entirely when the domain publishes neither an MX nor an A record.
|
|
53460
|
+
AddressObject:
|
|
53461
|
+
type: object
|
|
53462
|
+
properties:
|
|
53463
|
+
validIpAddress:
|
|
53464
|
+
type: boolean
|
|
53465
|
+
description: IP recognized/reachable by the geolocation provider.
|
|
53466
|
+
location:
|
|
53467
|
+
$ref: '#/components/schemas/EmailLocation'
|
|
53468
|
+
security:
|
|
53469
|
+
$ref: '#/components/schemas/EmailSecurity'
|
|
53470
|
+
description: Geolocation and security enrichment data for the IP address.
|
|
53471
|
+
required: []
|
|
53472
|
+
EmailLocation:
|
|
53473
|
+
type: object
|
|
53474
|
+
description: Geolocation data derived from the IP address.
|
|
53475
|
+
properties:
|
|
53476
|
+
city:
|
|
53477
|
+
type: string
|
|
53478
|
+
description: Municipal or city name.
|
|
53479
|
+
district:
|
|
53480
|
+
type: string
|
|
53481
|
+
description: District or neighborhood.
|
|
53482
|
+
zipcode:
|
|
53483
|
+
type: string
|
|
53484
|
+
description: Postal or ZIP code.
|
|
53485
|
+
state_prov:
|
|
53486
|
+
type: string
|
|
53487
|
+
description: State or province.
|
|
53488
|
+
country_name:
|
|
53489
|
+
type: string
|
|
53490
|
+
description: Common country name.
|
|
53491
|
+
country_name_official:
|
|
53492
|
+
type: string
|
|
53493
|
+
description: Official country name.
|
|
53494
|
+
country_code2:
|
|
53495
|
+
type: string
|
|
53496
|
+
description: Two-character ISO country code.
|
|
53497
|
+
country_code3:
|
|
53498
|
+
type: string
|
|
53499
|
+
description: Three-character ISO country code.
|
|
53500
|
+
continent_name:
|
|
53501
|
+
type: string
|
|
53502
|
+
description: Continental region name.
|
|
53503
|
+
continent_code:
|
|
53504
|
+
type: string
|
|
53505
|
+
description: Continental region identifier.
|
|
53506
|
+
accuracy_radius:
|
|
53507
|
+
type: string
|
|
53508
|
+
description: Geolocation precision radius.
|
|
53509
|
+
confidence:
|
|
53510
|
+
type: string
|
|
53511
|
+
description: Confidence score for geolocation accuracy.
|
|
53512
|
+
is_eu:
|
|
53513
|
+
type: boolean
|
|
53514
|
+
description: European Union membership status.
|
|
53515
|
+
required: []
|
|
53516
|
+
EmailSecurity:
|
|
53517
|
+
type: object
|
|
53518
|
+
description: Threat and anonymity profile for the IP address.
|
|
53519
|
+
required:
|
|
53520
|
+
- threat_score
|
|
53521
|
+
- is_tor
|
|
53522
|
+
- is_proxy
|
|
53523
|
+
- proxy_type
|
|
53524
|
+
- proxy_provider
|
|
53525
|
+
- is_anonymous
|
|
53526
|
+
- is_known_attacker
|
|
53527
|
+
- is_spam
|
|
53528
|
+
- is_bot
|
|
53529
|
+
- is_cloud_provider
|
|
53530
|
+
- cloud_provider
|
|
53531
|
+
properties:
|
|
53532
|
+
threat_score:
|
|
53533
|
+
type: integer
|
|
53534
|
+
description: Quantitative risk assessment score. Higher values indicate elevated security risk.
|
|
53535
|
+
is_tor:
|
|
53536
|
+
type: boolean
|
|
53537
|
+
description: Detection flag for IP addresses routed through the Tor anonymity network.
|
|
53538
|
+
is_proxy:
|
|
53539
|
+
type: boolean
|
|
53540
|
+
description: Detection flag identifying IP addresses operating as proxy servers.
|
|
53541
|
+
proxy_type:
|
|
53542
|
+
type: string
|
|
53543
|
+
description: Classification of detected proxy infrastructure type (e.g. VPN, HTTP, SOCKS).
|
|
53544
|
+
proxy_provider:
|
|
53545
|
+
type: string
|
|
53546
|
+
description: Identified service provider operating the proxy infrastructure.
|
|
53547
|
+
is_anonymous:
|
|
53548
|
+
type: boolean
|
|
53549
|
+
description: Anonymization detection flag for IP addresses using identity obfuscation techniques.
|
|
53550
|
+
is_known_attacker:
|
|
53551
|
+
type: boolean
|
|
53552
|
+
description: Threat intelligence flag for IP addresses documented as confirmed malicious sources.
|
|
53553
|
+
is_spam:
|
|
53554
|
+
type: boolean
|
|
53555
|
+
description: Reputation flag for IP addresses associated with spam transmission.
|
|
53556
|
+
is_bot:
|
|
53557
|
+
type: boolean
|
|
53558
|
+
description: Automated traffic detection flag for IP addresses from bot networks.
|
|
53559
|
+
is_cloud_provider:
|
|
53560
|
+
type: boolean
|
|
53561
|
+
description: Infrastructure classification flag for IP addresses from cloud computing providers.
|
|
53562
|
+
cloud_provider:
|
|
53563
|
+
type: string
|
|
53564
|
+
description: Identified cloud infrastructure or hosting service provider name.
|
|
53565
|
+
EmailCheckRequest:
|
|
53566
|
+
type: object
|
|
53567
|
+
description: Request body for email validation.
|
|
53568
|
+
required:
|
|
53569
|
+
- email
|
|
53570
|
+
properties:
|
|
53571
|
+
email:
|
|
53572
|
+
type: string
|
|
53573
|
+
format: email
|
|
53574
|
+
description: Email address to validate.
|
|
53575
|
+
name:
|
|
53576
|
+
type: string
|
|
53577
|
+
description: Optional name or label for record tracking.
|
|
53578
|
+
ip:
|
|
53579
|
+
type: string
|
|
53580
|
+
format: ip
|
|
53581
|
+
description: Optional IP address for geolocation and security enrichment.
|
|
53582
|
+
ErrorResponse:
|
|
53583
|
+
type: object
|
|
53584
|
+
description: Standard error envelope returned by the API on failed requests.
|
|
53585
|
+
required:
|
|
53586
|
+
- message
|
|
53587
|
+
properties:
|
|
53588
|
+
error:
|
|
53589
|
+
type: string
|
|
53590
|
+
description: Short error category or exception type.
|
|
53591
|
+
message:
|
|
53592
|
+
type: string
|
|
53593
|
+
description: Human-readable error message describing the failure.
|
|
53594
|
+
path:
|
|
53595
|
+
type: string
|
|
53596
|
+
description: API endpoint path that produced the error.
|
|
53597
|
+
status:
|
|
53598
|
+
type: integer
|
|
53599
|
+
description: HTTP status code returned with the error.
|
|
53600
|
+
timestamp:
|
|
53601
|
+
type: string
|
|
53602
|
+
format: date-time
|
|
53603
|
+
description: Timestamp when the error occurred (ISO 8601).
|
|
53604
|
+
headers:
|
|
53605
|
+
X-AF-Credits-Cost:
|
|
53606
|
+
description: Specifies the number of credits consumed by the current request.
|
|
53607
|
+
schema:
|
|
53608
|
+
type: integer
|
|
53609
|
+
X-Concurrent-Threads:
|
|
53610
|
+
description: Specifies the maximum number of concurrent requests allowed.
|
|
53611
|
+
schema:
|
|
53612
|
+
type: integer
|
|
53613
|
+
X-Concurrent-Threads-Active:
|
|
53614
|
+
description: Indicates the number of active concurrent requests being processed.
|
|
53615
|
+
schema:
|
|
53616
|
+
type: integer
|
|
53617
|
+
security:
|
|
53618
|
+
- ApiKeyAuthHeader: []
|
|
53619
|
+
- ApiKeyAuthQuery: []
|
|
53620
|
+
`,
|
|
50261
53621
|
"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",
|
|
50262
53622
|
"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",
|
|
50263
53623
|
"iban-validation": `openapi: 3.1.1
|
|
@@ -53529,7 +56889,7 @@ var SPECS_BY_CATEGORY = {
|
|
|
53529
56889
|
"commodity": ["commodity-fluctuation", "commodity-prices", "commodity-symbols", "commodity-time-series", "historical-commodity-prices"],
|
|
53530
56890
|
"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"],
|
|
53531
56891
|
"dns": ["bulk-dns-lookup", "dns-history-lookup", "dns-lookup", "reverse-dns-lookup"],
|
|
53532
|
-
"domain": ["bulk-domain-checker", "domain-search-with-suggestions", "domain-search", "subdomain-lookup"],
|
|
56892
|
+
"domain": ["bulk-domain-checker", "domain-reputation", "domain-search-with-suggestions", "domain-search", "domain-typosquatting", "subdomain-lookup"],
|
|
53533
56893
|
"email-validation": ["bulk-email-validation", "email-checker"],
|
|
53534
56894
|
"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"],
|
|
53535
56895
|
"geocoding": ["forward-geocoding", "reverse-geocoding"],
|
|
@@ -53582,8 +56942,10 @@ var SpecSlug = {
|
|
|
53582
56942
|
DELETE_PDF_PAGE: "delete-pdf-page",
|
|
53583
56943
|
DNS_HISTORY_LOOKUP: "dns-history-lookup",
|
|
53584
56944
|
DNS_LOOKUP: "dns-lookup",
|
|
56945
|
+
DOMAIN_REPUTATION: "domain-reputation",
|
|
53585
56946
|
DOMAIN_SEARCH: "domain-search",
|
|
53586
56947
|
DOMAIN_SEARCH_WITH_SUGGESTIONS: "domain-search-with-suggestions",
|
|
56948
|
+
DOMAIN_TYPOSQUATTING: "domain-typosquatting",
|
|
53587
56949
|
DOMAIN_WHOIS_HISTORY_LOOKUP: "domain-whois-history-lookup",
|
|
53588
56950
|
EMAIL_CHECKER: "email-checker",
|
|
53589
56951
|
FINANCIAL_APIS_SUPPORTED_COUNTRIES: "financial-apis-supported-countries",
|
|
@@ -53682,9 +57044,6 @@ function getSpecJson(slug) {
|
|
|
53682
57044
|
function getSpecYaml(slug) {
|
|
53683
57045
|
return SPECS_YAML[slug];
|
|
53684
57046
|
}
|
|
53685
|
-
function getSpec(slug) {
|
|
53686
|
-
return getSpecJson(slug);
|
|
53687
|
-
}
|
|
53688
57047
|
function getSpecsByCategory(category) {
|
|
53689
57048
|
return SPECS_BY_CATEGORY[category] ?? [];
|
|
53690
57049
|
}
|
|
@@ -53697,7 +57056,6 @@ function getSpecsByCategory(category) {
|
|
|
53697
57056
|
SPEC_SLUGS,
|
|
53698
57057
|
SpecCategory,
|
|
53699
57058
|
SpecSlug,
|
|
53700
|
-
getSpec,
|
|
53701
57059
|
getSpecJson,
|
|
53702
57060
|
getSpecYaml,
|
|
53703
57061
|
getSpecsByCategory
|