🔒 Validation & Data Quality
12 endpoints — Email, Phone, IBAN, VAT, Credit Card, Domain, Password, SSN, Org, URL, List, IP
GET /email-verify?email=...
Validate email addresses with syntax checking, MX record lookup via DNS-over-HTTPS, disposable domain detection, role account detection, and typo correction. Checks syntax, MX records, and disposable/role/temporary patterns.
| Param | Type | Required | Description |
| email | string | yes | Email address to validate |
Example:
curl -H "x-api-key: ***" "https://apimcp.site/api/v1/email-verify?email=ola@gmail.com"
{
"success": true,
"data": {
"email": "ola@gmail.com",
"valid": true,
"checks": {
"has_syntax": true,
"has_mx": true,
"is_disposable": false,
"is_role": false,
"typo_suggestion": null
},
"score": 0.98
}
}
GET /phone?phone=...
Validate and format phone numbers worldwide. Detects country, carrier info, and provides E.164, national, and international formats.
| Param | Type | Required | Description |
| phone | string | yes | Phone number in any format |
{
"valid": true,
"country": { "code": "NO", "name": "Norway" },
"formats": {
"e164": "+4791234567",
"national": "912 34 567",
"international": "+47 912 34 567"
},
"carrier": "Telenor"
}
GET /iban-validator?iban=...
Validate International Bank Account Numbers using MOD-97 algorithm. Supports 20+ country-specific formats. Detects country, bank code, and branch info where available.
| Param | Type | Required | Description |
| iban | string | yes | IBAN to validate |
{
"valid": true,
"country": "DE",
"checksum": "89",
"bban": "370400440532013000",
"bank_code": "37040044"
}
GET /vat-validator?vat=...
Validate EU/EEA VAT numbers by country-specific format rules. Supports all 30 EU/EEA countries. Detects country, checksum validity, and format correctness.
| Param | Type | Required | Description |
| vat | string | yes | VAT number including country prefix |
{
"valid": true,
"country": "NO",
"country_name": "Norway",
"normalized": "NO123456789MVA",
"note": "Format validation only. Use VIES for live check."
}
GET /credit-card?card=...
Validate credit/debit card numbers with Luhn algorithm and detect brand, scheme, and card type. Supports Visa, Mastercard (including 2-series), American Express, Discover, JCB, Diners Club, UnionPay, and Dankort.
| Param | Type | Required | Description |
| card | string | yes | Card number (digits only, 13-19 chars) |
{
"valid": true,
"brand": "Visa",
"type": "Credit/Debit",
"masked": "4111 **** **** 1111",
"length": 16,
"luhn_valid": true
}
GET /domain-reputation?domain=...
Check domain reputation against known disposable providers (2800+ entries), suspicious pattern detection, and free email provider detection. Returns risk score and detailed reason.
| Param | Type | Required | Description |
| domain | string | yes | Domain name to check |
{
"domain": "mailinator.com",
"is_disposable": true,
"is_suspicious": false,
"risk_score": 80,
"reason": "Known disposable domain"
}
GET /password-strength?password=...
Entropy-based password strength scoring (zxcvbn-inspired). Evaluates length, character variety, common pattern detection, and provides time-to-crack estimates.
| Param | Type | Required | Description |
| password | string | yes | Password to evaluate |
{
"entropy": 72.4,
"score": 3,
"strength": "Strong",
"length": 14,
"has_upper": true,
"has_symbol": true,
"time_to_crack": "years"
}
GET /ssn-validator?ssn=...&country=NO
Validate social security / personnummer for Norway (11-digit MOD-11), Sweden (12-digit Luhn), and Denmark (10-digit format). Extracts birth date and gender from the number.
| Param | Type | Required | Description |
| ssn | string | yes | Social security number |
| country | string | opt | NO, SE, or DK (default: NO) |
{
"valid": true,
"country": "NO",
"gender": "Male",
"birth_date": "01.01.90",
"control_digit_1": 2,
"control_digit_2": 8
}
GET /org-enrichment?org=... / ?name=...
Enrich Norwegian organization numbers with full company data from Brreg (Bronnoysundregistrene). Returns name, address, industry code, employees, org type, and status. Also supports name search.
| Param | Type | Required | Description |
| org | string | opt | 9-digit Norwegian org number |
| name | string | opt | Company name to search |
{
"found": true,
"name": "APIMCP AS",
"org_number": "974760673",
"city": "OSLO",
"industry": "Utleie av arbeidskraft",
"employees": 12
}
GET /url-safety?url=...
Analyze URLs for phishing indicators, suspicious patterns, and security risks. Checks for IP-based URLs, suspicious TLDs, excessive length, and known attack patterns.
| Param | Type | Required | Description |
| url | string | yes | URL to check |
{
"parsed": { "has_https": true, "is_ip": false },
"risk_flags": { "suspicious_pattern": false },
"risk_score": 0
}
GET /list-cleaner?list=...&type=email
Deduplicate and validate bulk email or phone lists. Returns cleaned list with counts for invalid entries, duplicates removed, and unique items.
| Param | Type | Required | Description |
| list | string | yes | Newline-separated email/phone list |
| type | string | opt | email or phone (default: email) |
{
"total_input": 100,
"total_unique": 87,
"invalid_count": 2,
"duplicates_removed": 11,
"sample": ["user@example.com"]
}
GET /ip / /ip?ip=...
IP geolocation using Cloudflare's native edge data. Self-lookup is instant (no external API). Specific IP lookup via ip-api.com returns country, city, ISP, ASN, proxy/VPN detection, and timezone.
| Param | Type | Required | Description |
| ip | string | opt | IP to look up (omitted = self) |
curl "https://apimcp.site/api/v1/ip"
{
"ip": "84.208.xxx.xxx",
"country_code": "NO",
"city": "Oslo",
"isp": "Telenor Norge AS",
"proxy": false
}
📸 Image & Media
6 endpoints — QR Code, OG Image, Barcode, Image Optimizer, Watermark, Palette
GET /qr-code?text=...&size=200
Generate custom QR codes as SVG images. Configurable size, color, and error correction level. Returns raw SVG or JSON with data URL.
| Param | Type | Required | Description |
| text | string | yes | Data to encode |
| size | number | opt | Image size (default: 200) |
| format | string | opt | svg or json (default: svg) |
curl "https://apimcp.site/api/v1/qr-code?text=hello"
Content-Type: image/svg+xml
GET /og-image?title=...&site=...&format=json
Generate 1200x630 pixel OG social share images as SVG. Customizable title, site name, and accent color. Perfect for social media previews.
| Param | Type | Required | Description |
| title | string | yes | Main heading text |
| site | string | opt | Site/domain name |
| format | string | opt | svg or json (default: svg) |
{
"svg": "<svg...",
"width": 1200,
"height": 630
}
GET /barcode?text=...&type=code128
Generate barcodes in multiple formats: Code128, Code39, EAN-13, EAN-8, UPC-A, UPC-E, DataMatrix, PDF417, QR Code, and Aztec. Returns SVG or PNG as image or data URL.
| Param | Type | Required | Description |
| text | string | yes | Data to encode |
| type | string | opt | code128, code39, ean13, upca, qrcode, datamatrix, pdf417 (default: code128) |
| scale | number | opt | Scale factor (default: 3) |
| format | string | opt | svg or json (default: svg) |
{
"format": "svg",
"type": "code128",
"text": "TEST123",
"data_url": "data:image/svg+xml;base64,..."
}
GET /image-optimizer?url=...&format=webp
Optimize images via CF Images binding. Resize, convert format (WebP/AVIF/JPEG), and adjust quality. Requires IMAGES binding on the Cloudflare domain.
| Param | Type | Required | Description |
| url | string | yes | Source image URL |
| format | string | opt | webp, jpeg, avif (default: webp) |
| width | number | opt | Target width in pixels |
| quality | number | opt | 1-100 (default: 80) |
{
"note": "Returns optimized image or passthrough info"
}
GET /image-watermark?url=...&text=APImcp
Add text watermarks to images via SVG overlay. Customizable text, position (top-left, top-right, bottom-left, bottom-right, center), and opacity.
| Param | Type | Required | Description |
| url | string | yes | Source image URL |
| text | string | opt | Watermark text (default: APImcp.site) |
| position | string | opt | top-left, top-right, bottom-left, bottom-right, center |
| opacity | number | opt | 0-100 (default: 50) |
{
"watermarked_svg": "<svg...</svg>",
"position": "bottom-right"
}
GET /image-palette?url=...
Extract dominant color palette from images. Returns 5 dominant colors with hex values, RGB, human-friendly names, and relative weights.
| Param | Type | Required | Description |
| url | string | yes | Source image URL |
{
"palette": [
{ "hex": "#4A90D9", "name": "Steel Blue", "weight": 0.35 }
],
"dominant": "#4A90D9"
}
🔃 Data & Content
20 endpoints — Countries, Currency, JSON/CSV/YAML/XML, SQL, Schema, JSON to TS, CSS Inliner, Hash, JWT, UUID, Password, Case, Base, Unit, Text, Token, Lorem, Cron, Diff, Base64, URL, Regex, Color, HTML, SVG, Image
GET /countries?code=NO
Query 195 countries by code, name, or capital. Returns full country data including flag emoji, currency, calling code, region, subregion, and TLD.
| Param | Type | Required | Description |
| code | string | opt | ISO 3166-1 alpha-2 country code |
| search | string | opt | Search by name or capital |
{ "name": "Norway", "code": "NO", "capital": "Oslo", "flag": "🇳🇴", "currency": "NOK", "calling_code": "+47" }
GET /currency?from=USD&to=NOK&amount=100
Live currency conversion via frankfurter.dev. Supports 170+ currencies. Returns converted amount, exchange rate, and last update timestamp.
{ "from": "USD", "to": "NOK", "amount": 100, "result": 1050.42, "rate": 10.5042 }
GET /json-csv?action=json2csv&input=...
Bidirectional JSON to CSV conversion. Detects headers from JSON keys, handles nested objects, and produces properly quoted CSV output.
{ "csv": "a,b\n1,2\n", "headers": ["a","b"], "rows": 1 }
GET /yaml-json?action=yaml2json&input=...
Bidirectional YAML to JSON conversion via js-yaml. Supports all standard YAML types including anchors, aliases, and complex nested structures.
{ "json": { "key": "value" } }
GET /xml-json?action=xml2json&input=...
Bidirectional XML to JSON conversion via fast-xml-parser. Preserves XML attributes with @_ prefix. Handles nested elements, CDATA, and namespaces.
{ "json": { "root": { "x": "1" } } }
GET /json-schema?input=...
Infer JSON Schema from sample JSON data. Detects types, required fields, string formats (date, uri, email), and nested object structures.
{ "schema": { "type": "object", "properties": { "name": { "type": "string" } }, "required": ["name"] } }
GET /json-to-ts?input=...
Convert JSON data to TypeScript interface definitions. Handles nested objects, arrays, optional fields, and generates proper interface names.
{ "interface": "interface RootObject {\\n name: string;\\n}" }
GET /css-inliner?html=...&css=...
Inline CSS styles into HTML for email compatibility. Takes HTML and CSS separately and produces HTML with inline style attributes on matching elements.
{ "inlined_html": "..." }
GET /hash?input=...&algorithm=sha256
Generate cryptographic hashes. Supports SHA256, SHA512, SHA1, MD5. Returns hex, base64, and raw byte length.
{ "hex": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824", "length": 32 }
GET /jwt-decoder?token=...
Decode and inspect JWT tokens without validation. Returns header (alg, typ), payload (claims), signature, and metadata (subject, expiry, issuer, issued-at).
{ "header": { "alg": "HS256", "typ": "JWT" }, "payload": {}, "meta": { "algorithm": "HS256" } }
GET /uuid?count=3
Generate cryptographically random UUID v4 strings. Configurable count up to 100 per request.
{ "uuids": ["871ee315-27b9-4577-8644-62b5bce7aec9"], "count": 1 }
GET /password-generator?length=16&count=2
Generate cryptographically secure random passwords. Configurable length and count. Passwords include uppercase, lowercase, digits, and symbols.
{ "passwords": ["z8z2xH1OYArnyz2C"], "entropy_bits": 95 }
GET /case-converter?input=hello%20world
Convert text between multiple case formats: camelCase, PascalCase, snake_case, kebab-case, SCREAMING_SNAKE_CASE, Title Case, and more.
{ "camel": "helloWorld", "pascal": "HelloWorld", "snake": "hello_world" }
GET /base-converter?value=255&from=10&to=16
Convert numbers between bases 2-36. Returns output in hex, binary, octal, and the target base.
{ "output": { "hex": "FF", "binary": "11111111", "octal": "377" } }
GET /unit-converter?value=1&from=m&to=km
Convert between length, mass, temperature, volume, area, speed, time, and data units. Extensive unit database with SI and imperial systems.
{ "result": 0.001, "unit": "km" }
GET /text-summarizer?input=...&sentences=3
Extractive text summarization using frequency-based sentence scoring. Returns ranked summary with configurable sentence count.
{ "summary": "...", "original_length": 500, "summary_length": 80 }
GET /token-counter?input=...
Count tokens, words, characters, sentences, and estimated GPT tokens. Uses byte-pair encoding estimation for LLM token counts.
{ "word_count": 5, "char_count": 25, "sentence_count": 1, "estimated_gpt_tokens": 7 }
GET /lorem-ipsum?paragraphs=2&words=20
Generate Lorem Ipsum placeholder text. Configurable paragraphs, words per paragraph, and traditional or modern variants.
{ "paragraphs": ["Lorem ipsum..."], "total_words": 40 }
GET /cron-builder?expression=*/5%20*%20*%20*%20*
Parse and explain cron expressions in plain English. Supports standard 5-field cron syntax with nicknames (@hourly, @daily).
{ "explanation": "Every 5 minutes", "next_runs": ["12:05", "12:10"] }
GET /diff-checker?first=...&second=...
Compare two text strings and return line-level diffs. Detects added, removed, and unchanged lines with change statistics.
{ "stats": { "added": 1, "removed": 1, "unchanged": 2 } }
GET /base64?input=hello&action=encode
Encode or decode Base64 text. Supports UTF-8 input, URL-safe variants, and encoding detection on decode.
{ "output": "aGVsbG8=", "action": "encode" }
GET /url-encoder?input=hello&action=encode
Encode or decode URL components with proper percent-encoding/decoding. Handles special characters and Unicode.
{ "output": "hello", "action": "encode" }
GET /color-converter?color=#a855f7
Convert between HEX, RGB, HSL, HSV, CMYK, and named colors. Params: color (required)
{ "hex": "#a855f7", "rgb": "rgb(168,85,247)", "hsl": "hsl(274,91%,65%)" }
GET /html-preview?input=<h1>Hi</h1>
Render HTML snippets in a safe iframe preview. Returns rendered HTML with metadata. Params: input (required), format (opt, html|json)
GET /svg-optimizer?input=<svg>...</svg>
Optimize SVG markup by removing whitespace, redundant attributes, and comments. Params: input (required)
GET /image-to-webp?url=...&quality=80
Convert images to WebP format. Accepts URL or file upload. Params: url (required), quality (opt, 1-100)
🌐 Developer Infrastructure
10 endpoints — DNS, WHOIS, SSL, Fake Data, SQL Formatter, JSON Formatter, Regex, Cron, UUID, Token Counter
GET /dns-lookup?name=...&type=mx
Look up DNS records via Cloudflare DNS-over-HTTPS. Supports A, AAAA, MX, TXT, NS, CNAME, SOA, SRV, CAA, TLSA record types. Returns raw records with TTL.
| Param | Type | Required | Description |
| name | string | yes | Domain name |
| type | string | opt | a, aaaa, mx, txt, ns, cname, soa (default: a) |
curl "https://apimcp.site/api/v1/dns-lookup?name=google.com&type=mx"
{
"name": "google.com",
"type": "mx",
"answers": [
{ "name": "google.com", "type": 15, "ttl": 300, "data": "10 smtp.google.com" }
],
"count": 1
}
GET /whois?domain=...
Domain registration lookup via RDAP (Registrar Data Access Protocol). Returns registrar, creation/expiration dates, name servers, and domain status codes.
| Param | Type | Required | Description |
| domain | string | yes | Domain name |
{
"domain": "google.com",
"registrar": "MarkMonitor Inc.",
"created": "1997-09-15T04:00:00Z",
"expires": "2028-09-13T04:00:00Z",
"name_servers": ["ns1.google.com"]
}
GET /ssl-info?host=...
SSL/TLS certificate diagnostics for a domain. Provides links to external check tools: SSLLabs (deep scan), crt.sh (cert transparency), and Security Headers.
| Param | Type | Required | Description |
| host | string | yes | Hostname to check |
{
"hostname": "google.com",
"external_check_urls": {
"ssllabs": "https://www.ssllabs.com/ssltest/analyze.html?d=google.com"
}
}
GET /fake-data?locale=en&count=5&fields=name,email
Generate realistic fake data via @faker-js/faker. Supports 7 locales (en, nb_NO, sv, de, fr, es). 20+ field types: name, email, phone, company, address, job, IBAN, credit card, UUID, and more.
| Param | Type | Required | Description |
| locale | string | opt | en, nb_NO, sv, de, fr, es (default: en) |
| count | number | opt | 1-100 records (default: 1) |
| fields | string | opt | Comma-separated field names |
{
"count": 3,
"results": [{ "name": "Ola Nordmann", "email": "ola@example.com" }]
}