Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

akamai-api

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

akamai-api

Utilities to detect and analyze Akamai CDN usage and integrate with Akamai APIs.

pipPyPI
Version
1.0
Maintainers
1

Akamai API

Official Python package for detecting Akamai CDN usage, analyzing HTTP headers, performing network scans, and interacting with Akamai APIs.

Features

  • Detection Utilities

    • is_akamai_ip(ip: str) -> bool – Check if an IP belongs to Akamai via ASN lookup.
    • has_akamai_cname(hostname: str) -> bool – Determine if a domain CNAMEs to an Akamai edge hostname.
  • Header Analysis

    • analyze_cache_headers(headers: dict) -> dict – Extract cache status, cacheability, and true cache key from response headers.
    • detect_bot_manager(headers: dict) -> bool – Identify Akamai Bot Manager markers.
    • detect_akamai_waf(status_code: int, headers: dict) -> bool – Detect WAF blocks by status code and server header.
  • Scanning Utilities

    • dns_lookup(name: str, record_type: str = 'A') -> list – Perform DNS queries for various record types.
    • identify_cdn_provider(hostname: str) -> str – Infer CDN provider via DNS resolution and WHOIS.
    • whois_lookup(query: str) -> dict – Retrieve WHOIS/RDAP data for a domain or IP.
  • Akamai API Integrations

    • purge_cache(identifiers: list, by: str = 'url', network: str = 'production') -> dict – Invalidate Akamai edge cache.
    • list_property_hostnames(property_name: str, version: int) -> list – List hostnames in a Property Manager configuration.
    • list_edns_zones() -> list – Retrieve configured Edge DNS zones.
    • list_cps_certificates() -> list – List SSL certificates managed by CPS.

Installation

Install via PyPI:

pip install akamai-api

Install from Git:

pip install git+https://github.com/akamai-packages/akamai-api.git

Quickstart Examples

Place your credentials in an EdgeGrid resource file, .edgerc, under a heading of [default] at your local home directory.

 [default]
 client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=
 host = akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net
 access_token = akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij
 client_token = akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj

1. Detection and Header Analysis

from akamai_api import (
    is_akamai_ip,
    has_akamai_cname,
    analyze_cache_headers,
    detect_bot_manager,
    detect_akamai_waf
)
import requests

# Check if an IP belongs to Akamai
print(is_akamai_ip('104.81.0.1'))  # True or False

# Check if a hostname CNAMEs to Akamai
print(has_akamai_cname('www.example.com'))

# Fetch a URL and analyze Akamai-related headers
resp = requests.get('https://www.example.com')
cache_info = analyze_cache_headers(resp.headers)
bot_managed = detect_bot_manager(resp.headers)
waf_blocked = detect_akamai_waf(resp.status_code, resp.headers)

print('Cache Info:', cache_info)
print('Bot Manager Detected:', bot_managed)
print('WAF Blocked:', waf_blocked)

2. Network Scanning

from akamai_api import dns_lookup, identify_cdn_provider, whois_lookup

# DNS lookup for CNAME records
print(dns_lookup('www.example.com', 'CNAME'))

# Identify CDN provider via DNS + WHOIS
print(identify_cdn_provider('www.reddit.com'))

# WHOIS data for an IP
info = whois_lookup('8.8.8.8')
print('Organization:', info.get('org'))

3. Akamai API Usage

from akamai_api import purge_cache, list_property_hostnames, list_edns_zones, list_cps_certificates

# Purge URLs from the Akamai production network
result = purge_cache(['https://www.example.com/style.css'], by='url', network='production')
print('Purge Result:', result)

# List hostnames under a Property Manager property version
hostnames = list_property_hostnames('example_property', 5)
print('Property Hostnames:', hostnames)

# List Edge DNS zones
zones = list_edns_zones()
print('EDNS Zones:', zones)

# List CPS-managed SSL certificates
certs = list_cps_certificates()
print('CPS Certificates:', certs)

CLI Usage

# Detect if an IP is on Akamai
akamai-api detect-ip 104.81.0.1

# Purge a URL from Akamai
akamai-api purge --url https://www.example.com/logo.png --network production

# List property hostnames
akamai-api list-property --name example_property --version 5

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts