API Documentation

Complete reference for the Lynk API Platform. Base URL: https://api.lynk.run

Authentication

Authenticate your requests using your API key. You can pass it in two ways:

Option 1: Bearer Token (recommended)

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.lynk.run/bgp/v1/asn/34309

Option 2: URL Parameter

bash
curl "https://api.lynk.run/bgp/v1/asn/34309?key=YOUR_API_KEY"

Public Access

You can also make unauthenticated requests using the public key openusage, limited to 5 requests per day per IP address.

bash
curl "https://api.lynk.run/bgp/v1/asn/34309?key=openusage"
BGP ASN Lookup API1 token

Look up BGP routing data for any ASN. Returns upstreams, peers, customers with IPv4/IPv6 breakdown, powered by CAIDA data.

Endpoint

GET /bgp/v1/asn/:asn

Parameters

ParameterTypeDescription
asnintegerThe Autonomous System Number to look up (1-4294967295)

Example Request

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.lynk.run/bgp/v1/asn/34309

Example Response

json
{
  "asn": 34309,
  "name": "LINK11",
  "description": "Link11 GmbH",
  "country": "DE",
  "upstreams": {
    "ipv4": [
      { "asn": 1299, "name": "TWELVE99", "description": "Arelion Sweden AB" },
      { "asn": 174, "name": "COGENT-174", "description": "Cogent Communications" }
    ],
    "ipv6": [
      { "asn": 6939, "name": "HURRICANE", "description": "Hurricane Electric LLC" }
    ]
  },
  "peers": { "ipv4": [...], "ipv6": [...] },
  "customers": { "ipv4": [...], "ipv6": [...] },
  "upstream_count": { "ipv4": 4, "ipv6": 4 },
  "peer_count": { "ipv4": 67, "ipv6": 67 },
  "customer_count": { "ipv4": 56, "ipv6": 56 },
  "queried_at": "2026-03-30T10:00:00Z",
  "source": "CAIDA AS Relationships",
  "provider": "local-caida"
}
IP & Domain Intelligence APIAuth Required

Comprehensive IP and domain intelligence. Aggregates 15+ data sources: geo-location (7 providers), ASN, privacy detection, 73 DNSBL blacklists, WHOIS, SSL certificates, DNS records, and mail provider detection.

Endpoints

GET /ip/v1/lookup/:targetGET /ip/v1/lookup/me

Parameters

ParameterTypeDescription
targetstringIPv4/IPv6 address or domain name (or me for own IP)
modestringlite (~10-50ms, local MMDB only) or full (~1-5s, all sources incl. DNSBL, WHOIS, SSL). Default: full

Example: IP Lookup

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.lynk.run/ip/v1/lookup/8.8.8.8"

Example: Domain Lookup

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.lynk.run/ip/v1/lookup/github.com"

Example Response (IP)

json
{
  "query": "8.8.8.8",
  "type": "ip",
  "ip": "8.8.8.8",
  "ip_version": "IPv4",
  "bogon": false,
  "rdns": "dns.google",
  "sources": {
    "provider_a": {
      "geo": { "city": null, "country": "US", "country_name": "United States" },
      "network": { "asn": 15169, "org": "GOOGLE", "network": "8.8.8.0/24" }
    },
    "provider_b": { "..." : "..." },
    "provider_c": { "..." : "..." }
  },
  "privacy": {
    "vpn": false, "proxy": false, "tor": false,
    "hosting": true, "cloud_provider": "GCP"
  },
  "risk": {
    "ip_blacklisted": false,
    "ip_blacklist_count": 0,
    "ip_blacklists": []
  }
}

Example Response (Domain)

json
{
  "query": "github.com",
  "type": "domain",
  "ip": "140.82.121.3",
  "resolved_ips": { "a": ["140.82.121.3"], "aaaa": [] },
  "dns": { "mx": [...], "ns": [...], "txt": [...] },
  "mail": { "provider": "Google Workspace", "mx_records": [...] },
  "whois": { "registrar": "MarkMonitor", "created": "2007-10-09" },
  "ssl": { "issuer": "DigiCert", "days_remaining": 215, "sans": [...] },
  "risk": {
    "ip_blacklisted": false,
    "domain_blacklisted": false,
    "mx_blacklisted": false
  }
}

Rate Limits

30 lookups per minute per IP.

File Sharing APIAuth Required

Upload files (up to 500 MB), get shareable download links, and optionally protect them with a password or send the link via email. Download links are public and don't require authentication.

Upload a File

POST /api/files

Form Fields (multipart/form-data)

FieldTypeRequiredDescription
filefileYesThe file to upload (max 500 MB)
passwordstringNoPassword to protect the download link
emailstringNoEmail address to send the download link to
expires_in_daysstringNoNumber of days until expiry, or "evergreen" for permanent (default: evergreen)

Example: Upload with curl

bash
curl -X POST https://api.lynk.run/api/files \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@report.pdf" \
  -F "password=secret123" \
  -F "email=recipient@example.com" \
  -F "expires_in_days=30"

Response

json
{
  "success": true,
  "id": "a1b2c3d4e5f6...",
  "url": "https://lynk.run/dl/a1b2c3d4e5f6..."
}

List Your Files

GET /api/files

Example

bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.lynk.run/api/files

Response

json
[
  {
    "id": "a1b2c3d4e5f6...",
    "original_name": "report.pdf",
    "size": 2457600,
    "mime_type": "application/pdf",
    "has_password": true,
    "download_count": 5,
    "created_at": "2026-03-22 10:30:00",
    "expires_at": "2026-04-21 10:30:00",
    "download_url": "https://lynk.run/dl/a1b2c3d4e5f6..."
  }
]

Delete a File

DELETE /api/files/:id

Example

bash
curl -X DELETE -H "Authorization: Bearer YOUR_API_KEY" \
  https://api.lynk.run/api/files/a1b2c3d4e5f6...

Download (Public)

GET https://lynk.run/dl/:id

Download links are public — no API key required. If the file is password-protected, a password form is shown in the browser. For programmatic access, POST the password:

bash
# Password-protected download via curl
curl -X POST https://lynk.run/dl/a1b2c3d4e5f6... \
  -d "password=secret123" \
  -o report.pdf
Rate Limits & Error Codes
EndpointRate LimitAuth Required
/bgp/v1/asn/:asn5/day (public) or unlimited (API key)Optional
/bgp/v1/company/search10/min per IPNo
/bgp/v1/search30/min per IPNo
/ip/v1/lookup/:target30/min per IPYes
/api/filesStandardYes

Error Codes

CodeDescription
200Success
401Invalid or missing API key
402Insufficient tokens
404Resource not found (e.g. unknown ASN)
429Rate limit exceeded

⚔ Lynk — A Link11 Initiative