7AZZANI API Documentation

Powerful security scanning, performance testing, and web tools API for developers

Overview

The 7AZZANI API provides programmatic access to our suite of security scanning, performance testing, and web utility tools. Build powerful integrations, automate security checks, and monitor website performance at scale.

Security Scanner

Detect vulnerabilities, malware, and security issues in websites

Performance Testing

Analyze Core Web Vitals, page speed, and optimization opportunities

Web Utilities

Speed tests, URL shortener, domain lookup, and more tools

Why Choose 7AZZANI API?

  • Enterprise-Grade Security: Advanced vulnerability detection and threat analysis
  • Real-Time Analysis: Get instant results with our high-performance infrastructure
  • Comprehensive Reporting: Detailed reports with actionable recommendations
  • Open Source & Free: Community-driven platform with unlimited free access for developers

Getting Started

πŸŽ‰

API Access is FREE!

Create a free account and get unlimited API access. No credit card required.

1

Create an Account

Sign up for a free 7AZZANI account to access the API:

New User

  1. Visit the signup page
  2. Enter your email and create a password
  3. Verify your email (optional but recommended)
  4. You're ready to create API keys!

Existing User

Already have an account?

Login to Dashboard
2

Generate API Key

After logging in, visit your API dashboard to create an API key:

  1. Go to API Dashboard
  2. Click "Create New Key"
  3. Give your key a descriptive name (e.g., "Production App", "Development")
  4. Optionally add IP restrictions for enhanced security
  5. Copy your API key (starts with 7AZ_)

Important Security Notice:

  • β€’ Store your API key securely - it won't be shown again
  • β€’ Never commit API keys to version control
  • β€’ Use environment variables in production
  • β€’ Rotate keys regularly for security
3

Make Your First Request

Use your API key to authenticate requests:

curl -H "Authorization: Bearer 7AZ_YOUR_API_KEY" \
     https://7azzani.com/api/scans/statistics/

All requests must include the Authorization header with your API key.

βœ“ Success Response (200 OK):

{
  "total_scans": 42,
  "completed_scans": 38,
  "vulnerabilities_found": 156,
  "critical_issues": 12
}

What You Get

πŸ›‘οΈ

Security Scanner

Scan websites for vulnerabilities

⚑

Speed Test

Network bandwidth testing

πŸ”—

URL Shortener

Create and track short links

🌐

Domain Lookup

WHOIS and DNS analysis

πŸ“±

QR Codes

Generate QR codes with tracking

πŸ“Š

Analytics

Usage tracking and insights

API Endpoints

OpenAPI Specification

Import into Swagger, Postman, or other tools

Download YAML

Base URL: https://7azzani.com

All endpoints require Authorization: Bearer YOUR_API_KEY header

πŸ›‘οΈ Security Scanner

Scan websites for vulnerabilities, security issues, and misconfigurations.

GET /api/scans/

List all your security scans

POST /api/scans/quick_scan/

Perform a quick security scan

View Request/Response

Request Body:

{
  "url": "https://example.com",
  "scan_type": "quick"  // Options: "quick", "standard", "deep"
}

Response (201 Created):

{
  "scan_id": "abc123-def456",
  "url": "https://example.com",
  "status": "scanning",
  "status_url": "/api/scans/abc123-def456/status/"
}
GET /api/scans/{id}/status/

Check scan status and progress

GET /api/scans/{id}/report/

Get detailed vulnerability report

GET /api/scans/statistics/

Get overall scanning statistics

⚑ Speed Test

Run network speed tests and measure bandwidth, latency, and jitter.

POST /speedtest/api/v1/run/

Run a network speed test

View Request/Response

Response (200 OK):

{
  "test_id": "speed-789xyz",
  "download_speed": 95.4,
  "upload_speed": 45.2,
  "ping": 12,
  "jitter": 3.2,
  "server_location": "New York, US"
}
GET /speedtest/api/v1/history/

Get your speed test history

GET /speedtest/api/analytics/

Get speed test analytics and trends

πŸ”— URL Shortener (ShrinkIt)

Create shortened URLs with analytics and tracking.

POST /shrinkit/api/shorten/

Create a shortened URL

View Request/Response

Request Body:

{
  "url": "https://example.com/very/long/url/here",
  "custom_code": "mylink"  // Optional
}

Response (201 Created):

{
  "short_url": "https://7azzani.com/s/mylink",
  "short_code": "mylink",
  "original_url": "https://example.com/very/long/url/here",
  "created_at": "2024-01-15T10:30:00Z"
}
POST /shrinkit/api/toggle/{url_id}/

Enable/disable a URL

DELETE /shrinkit/api/delete/{url_id}/

Delete a shortened URL

GET /shrinkit/{short_code}/stats/

Get click statistics for a URL

🌐 Domain Lookup

Perform WHOIS lookups and DNS record analysis.

POST /lookup/api/lookup/

Perform domain/IP lookup

View Request/Response

Request Body:

{
  "domain": "example.com",
  "lookup_type": "all"  // Options: "whois", "dns", "all"
}

Response (200 OK):

{
  "domain": "example.com",
  "registrar": "Example Registrar Inc.",
  "created_date": "1995-08-14",
  "expiry_date": "2024-08-13",
  "dns_records": {
    "A": ["93.184.216.34"],
    "MX": ["mail.example.com"]
  }
}
GET /lookup/history/

Get your lookup history

πŸ“± QR Code Generator

Generate customizable QR codes with tracking and analytics.

POST /qr/api/preview/

Generate QR code preview

View Request/Response

Request Body:

{
  "qr_type": "url",
  "content": "https://example.com",
  "style": {
    "color": "#000000",
    "background": "#FFFFFF"
  }
}

Response (200 OK):

{
  "preview_url": "/media/qr/preview_abc123.png",
  "qr_code_base64": "data:image/png;base64,..."
}
GET /qr/api/content-form/{qr_type}/

Get form fields for QR code type

Types: url, text, email, phone, wifi, vcard

⚠️ Error Responses

Common error responses across all endpoints:

401 Unauthorized
{
  "error": "Authentication required",
  "message": "Please provide a valid API key"
}
429 Too Many Requests
{
  "error": "Rate limit exceeded",
  "message": "Maximum 10 requests per second",
  "retry_after": 1
}
400 Bad Request
{
  "error": "Invalid request",
  "message": "URL is required"
}

Rate Limits & Quotas

Understanding Rate Limits

Rate limits prevent API abuse and ensure fair usage for all customers. Limits are applied per API key and reset automatically.

Limit Type Quota Description
Per Second 10 requests Maximum burst rate for short-term traffic
Per Minute 100 requests Sustained traffic limit
Daily/Monthly Unlimited No caps on total usage volume

Rate Limit Headers

Every API response includes headers with your current rate limit status:

  • X-RateLimit-Limit Your rate limit
  • X-RateLimit-Remaining Calls remaining
  • X-RateLimit-Reset Reset time (Unix timestamp)

Handling Rate Limits

When you exceed a rate limit:

  • β€’ You'll receive a 429 Too Many Requests response
  • β€’ Check the Retry-After header for wait time
  • β€’ Implement exponential backoff in your code

Pro Tip: Monitor your usage in real-time from your API Dashboard to avoid hitting rate limits unexpectedly.

Code Examples

cURL Examples

Quick Security Scan:

curl -X POST https://7azzani.com/api/scans/quick_scan/ \
     -H "Authorization: Bearer 7AZ_YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{"url": "https://example.com"}'

Check Scan Status:

curl -H "Authorization: Bearer 7AZ_YOUR_API_KEY" \
     https://7azzani.com/api/scans/{scan_id}/status/

Developer Guide

SDK Examples

Ready-to-use code snippets for popular languages:

# Install: pip install requests

import requests

API_KEY = "7AZ_your_api_key_here"
BASE_URL = "https://7azzani.com"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

# Security Scan
def run_security_scan(url):
    response = requests.post(
        f"{BASE_URL}/api/scans/quick_scan/",
        headers=headers,
        json={"url": url, "scan_type": "quick"}
    )
    return response.json()

# URL Shortener
def shorten_url(long_url):
    response = requests.post(
        f"{BASE_URL}/shrinkit/api/shorten/",
        headers=headers,
        json={"url": long_url}
    )
    return response.json()

# Domain Lookup
def lookup_domain(domain):
    response = requests.post(
        f"{BASE_URL}/lookup/api/lookup/",
        headers=headers,
        json={"domain": domain, "lookup_type": "all"}
    )
    return response.json()

# Usage example
result = run_security_scan("https://example.com")
print(f"Scan ID: {result['scan_id']}")

Best Practices

Security

  • β€’ Store API keys in environment variables
  • β€’ Never expose keys in client-side code
  • β€’ Use IP restrictions when possible
  • β€’ Rotate keys periodically

Performance

  • β€’ Implement request caching
  • β€’ Use async/await for parallel requests
  • β€’ Handle rate limits gracefully
  • β€’ Use polling for long operations

Error Handling

  • β€’ Always check response status codes
  • β€’ Implement retry logic with backoff
  • β€’ Log errors for debugging
  • β€’ Gracefully handle 429 errors

Polling Pattern

  • β€’ Start scan/test operation
  • β€’ Poll status endpoint at intervals
  • β€’ Use exponential backoff
  • β€’ Stop when status is "completed"

Handling Rate Limits

Example of implementing retry logic with exponential backoff:

import time
import requests

def make_request_with_retry(url, headers, data, max_retries=3):
    for attempt in range(max_retries):
        response = requests.post(url, headers=headers, json=data)
        
        if response.status_code == 429:
            retry_after = int(response.headers.get('Retry-After', 2 ** attempt))
            print(f"Rate limited. Waiting {retry_after} seconds...")
            time.sleep(retry_after)
            continue
        
        return response
    
    raise Exception("Max retries exceeded")

Frequently Asked Questions

API Terms of Use

Last updated: May 19, 2026

1. Acceptable Use

By using the 7AZZANI API, you agree to:

  • Only scan websites you own or have explicit permission to test
  • Not use the API for illegal, harmful, or malicious purposes
  • Not attempt to disrupt, damage, or gain unauthorized access to our services
  • Comply with all applicable laws and regulations
  • Not reverse engineer or attempt to derive the source code of our API

2. Rate Limits & Fair Use

To ensure quality service for all users:

  • You must respect the global rate limits
  • Systematic attempts to circumvent rate limits may result in suspension
  • We reserve the right to throttle or block excessive usage

3. API Key Security

You are responsible for maintaining the security of your API keys:

  • Keep your API keys confidential and secure
  • Do not share API keys publicly or commit them to version control
  • Immediately notify us if you suspect unauthorized use
  • You are liable for all usage under your API keys
  • We may revoke compromised keys without notice

4. Data & Privacy

How we handle data:

  • Scan results are retained for 90 days for your reference
  • We do not sell or share your scan data with third parties
  • You retain ownership of your scan targets and results
  • We may collect anonymized usage statistics for service improvement
  • Full privacy policy available at 7azzani.com/privacy

5. Service Level & Availability

Our service commitments:

  • We strive for 99.9% uptime but do not guarantee uninterrupted service
  • Scheduled maintenance will be announced 24 hours in advance
  • We are not liable for issues beyond our reasonable control

6. Prohibited Activities

The following activities are strictly prohibited:

  • Scanning government or military websites without authorization
  • Testing for vulnerabilities to exploit rather than report
  • Automated scanning of third-party websites without permission
  • Using scan results to harm, defame, or harass others
  • Reselling or redistributing API access
  • Creating derivative works based on our API

7. Limitation of Liability

THE API IS PROVIDED "AS IS" WITHOUT WARRANTIES OF ANY KIND. IN NO EVENT SHALL 7AZZANI BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OF THE API, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

8. Termination

We may terminate or suspend your access:

  • For violation of these terms
  • For suspected fraudulent or illegal activity
  • Upon your request

Upon termination, your API keys will be revoked and you must cease all use of the API.

9. Changes to Terms

We may update these terms at any time. Continued use of the API after changes constitutes acceptance of the new terms. Material changes will be notified via email or dashboard announcement.

Questions?

For questions about these terms or the API, contact us at: