API Access for Free Tools

12 min read
Updated Jan 25, 2026
Version 1.0+
Advanced
Quick Answer

Access free tool functionality via API for programmatic use, with rate limits and authentication requirements.

NitroShock provides programmatic access to select free tool functionality through a REST API. This allows you to integrate rank checking, keyword research, and other SEO data into your own applications, scripts, or workflows without using the web interface. The free tools API uses token-based authentication and includes rate limits to ensure fair access for all users.

API Availability

The NitroShock free tools API provides programmatic access to a subset of features available through the web interface. This API is designed for developers who need to automate SEO tasks, integrate SEO data into external systems, or build custom applications on top of NitroShock's infrastructure.

Available Endpoints

The following free tools are accessible via API:

  • Keyword Research - Query search volume, difficulty, CPC, and related keywords
  • SERP Analysis - Retrieve current search engine results for any keyword
  • Domain Authority Check - Get authority metrics for any domain
  • Backlink Counter - Check referring domain counts
  • Page Speed Analysis - Run Lighthouse audits programmatically
  • Meta Tag Extractor - Pull meta information from any URL

These endpoints mirror the functionality available in the web-based free tools but return structured JSON responses suitable for programmatic consumption.

What's Not Available

The API does not currently provide access to:

  • Project-specific data from your account
  • Rank tracking history or scheduled checks
  • Site audit reports or crawl data
  • AI content generation features
  • Report generation or PDF exports
  • Team or branding management

For project-based features, you'll need to use the web interface at your Account Dashboard or individual Project Dashboards.

API vs. Web Interface

The free tools API serves different use cases than the main NitroShock platform:

Use the API when you need to:

  • Automate repetitive SEO research tasks
  • Integrate SEO data into existing applications
  • Build custom dashboards or reporting tools
  • Process large datasets programmatically
  • Chain multiple SEO checks in automated workflows

Use the web interface when you need to:

  • Track keyword rankings over time
  • Manage SEO projects for clients
  • Generate branded PDF reports
  • Collaborate with team members
  • Access full site audit capabilities with historical tracking

Many users leverage both - using the web interface for day-to-day project management while employing the API for specialized automation tasks.

Authentication

All API requests require authentication using an API key generated from your NitroShock account. The API uses bearer token authentication following industry-standard OAuth 2.0 patterns.

Generating an API Key

To create an API key for free tools access:

  1. Log in to your NitroShock account at nitroshock.ai
  2. Navigate to Account DashboardSettings tab
  3. Scroll to the API Access section
  4. Click Generate New API Key
  5. Enter a descriptive name for the key (e.g., "Production Server" or "Analytics Integration")
  6. Select Free Tools as the access scope
  7. Click Create Key
  8. Copy the generated key immediately - it won't be shown again

Store your API key securely. Treat it like a password - never commit it to version control or expose it in client-side code.

Using Your API Key

Include your API key in the Authorization header of every request:

Authorization: Bearer YOUR_API_KEY_HERE

Example using curl:

curl -H "Authorization: Bearer ns_live_abc123xyz789" 
     https://api.nitroshock.ai/v1/free-tools/keyword-research?keyword=wordpress+seo

Example using Python with the requests library:

import requests

headers = {
'Authorization': 'Bearer ns_live_abc123xyz789',
'Content-Type': 'application/json'
}

 

response = requests.get(
'https://api.nitroshock.ai/v1/free-tools/keyword-research',
headers=headers,
params={'keyword': 'wordpress seo'}
)

 

data = response.json()

Key Management Best Practices

Rotate keys regularly: Generate new API keys every 90 days and deactivate old ones. You can create multiple keys and rotate them without service interruption.

Use environment variables: Store keys in environment variables rather than hardcoding them in your application:

import os
api_key = os.environ.get('NITROSHOCK_API_KEY')

Limit key scope: Create separate keys for different applications or environments (development, staging, production). This makes it easier to revoke access if a key is compromised.

Monitor key usage: Check the API Access section in your Settings tab regularly to review which keys are active and when they were last used.

Revoking API Keys

If a key is compromised or no longer needed:

  1. Navigate to Account DashboardSettingsAPI Access
  2. Find the key in your active keys list
  3. Click Revoke next to the key name
  4. Confirm the revocation

Revoked keys stop working immediately. Any applications using the revoked key will receive 401 Unauthorized responses.

Authentication Errors

Common authentication error responses:

401 Unauthorized - Invalid or missing API key. Check that your Authorization header is correctly formatted and the key hasn't been revoked.

403 Forbidden - Valid key but insufficient permissions for the requested endpoint. Ensure your key has the Free Tools scope enabled.

429 Too Many Requests - You've exceeded rate limits (see Rate Limits section below).

Endpoints

The free tools API uses RESTful principles with predictable resource-oriented URLs. All endpoints return JSON responses and use standard HTTP response codes.

Base URL

All API requests use the base URL:

https://api.nitroshock.ai/v1/free-tools/

Keyword Research

Endpoint: GET /keyword-research

Retrieve search volume, keyword difficulty, CPC data, and related keywords for any search term.

Parameters:

  • keyword (required) - The keyword to analyze
  • location (optional) - Country code for localized data (default: US)
  • language (optional) - Language code (default: en)

Example Request:

GET /v1/free-tools/keyword-research?keyword=content+marketing&location=US

Example Response:

{
  "keyword": "content marketing",
  "volume": 33100,
  "difficulty": 67,
  "cpc": 8.42,
  "competition": "high",
  "trend": [27100, 29000, 31200, 33100],
  "related_keywords": [
    {
      "keyword": "content marketing strategy",
      "volume": 8100,
      "difficulty": 62
    },
    {
      "keyword": "what is content marketing",
      "volume": 5400,
      "difficulty": 58
    }
  ]
}

SERP Analysis

Endpoint: GET /serp-analysis

Get current search engine results for any keyword, including rankings, SERP features, and domain information.

Parameters:

  • keyword (required) - The search term
  • engine (optional) - Search engine: google, bing, yahoo (default: google)
  • location (optional) - Geographic location for results
  • device (optional) - desktop or mobile (default: desktop)

Example Request:

GET /v1/free-tools/serp-analysis?keyword=seo+tools&engine=google&device=desktop

Example Response:

{
  "keyword": "seo tools",
  "engine": "google",
  "device": "desktop",
  "results": [
    {
      "position": 1,
      "url": "https://example.com/best-seo-tools",
      "title": "10 Best SEO Tools for 2024",
      "domain": "example.com",
      "description": "Comprehensive guide to SEO tools..."
    }
  ],
  "serp_features": [
    "featured_snippet",
    "people_also_ask",
    "related_searches"
  ]
}

Domain Authority Check

Endpoint: GET /domain-authority

Retrieve authority metrics for any domain, including domain rating, page authority, and trust scores.

Parameters:

  • domain (required) - The domain to analyze (without protocol)

Example Request:

GET /v1/free-tools/domain-authority?domain=example.com

Example Response:

{
  "domain": "example.com",
  "domain_rating": 78,
  "page_authority": 82,
  "trust_score": 76,
  "referring_domains": 15420,
  "total_backlinks": 284567
}

Backlink Counter

Endpoint: GET /backlink-count

Get a quick count of referring domains and total backlinks for any domain.

Parameters:

  • domain (required) - The domain to check

Example Request:

GET /v1/free-tools/backlink-count?domain=example.com

Example Response:

{
  "domain": "example.com",
  "referring_domains": 15420,
  "total_backlinks": 284567,
  "last_updated": "2024-01-15T10:30:00Z"
}

Page Speed Analysis

Endpoint: POST /page-speed

Run a Lighthouse audit on any URL to get performance, SEO, accessibility, and best practices scores.

Parameters:

  • url (required) - The URL to audit
  • device (optional) - desktop or mobile (default: mobile)
  • categories (optional) - Array of categories: performance, seo, accessibility, best-practices

Example Request:

POST /v1/free-tools/page-speed
Content-Type: application/json

{
"url": "https://example.com",
"device": "mobile",
"categories": ["performance", "seo"]
}

Example Response:

{
  "url": "https://example.com",
  "device": "mobile",
  "scores": {
    "performance": 87,
    "seo": 92
  },
  "metrics": {
    "first_contentful_paint": 1.2,
    "largest_contentful_paint": 2.1,
    "cumulative_layout_shift": 0.05,
    "total_blocking_time": 180
  }
}

Meta Tag Extractor

Endpoint: GET /meta-tags

Extract meta information, Open Graph tags, and Schema markup from any URL.

Parameters:

  • url (required) - The URL to analyze

Example Request:

GET /v1/free-tools/meta-tags?url=https://example.com/blog-post

Example Response:

{
  "url": "https://example.com/blog-post",
  "title": "Complete Guide to SEO",
  "meta_description": "Learn everything about SEO...",
  "canonical": "https://example.com/blog-post",
  "og_title": "Complete Guide to SEO",
  "og_description": "Learn everything about SEO...",
  "og_image": "https://example.com/images/seo-guide.jpg",
  "schema_types": ["Article", "BreadcrumbList"]
}

Error Handling

All endpoints use standard HTTP status codes:

  • 200 OK - Request successful
  • 400 Bad Request - Invalid parameters
  • 401 Unauthorized - Missing or invalid API key
  • 403 Forbidden - Insufficient permissions
  • 404 Not Found - Endpoint doesn't exist
  • 429 Too Many Requests - Rate limit exceeded
  • 500 Internal Server Error - Server-side error

Error responses include a JSON body with details:

{
  "error": {
    "code": "invalid_parameter",
    "message": "The 'keyword' parameter is required",
    "param": "keyword"
  }
}

Rate Limits

The free tools API implements rate limiting to ensure fair access and system stability. Rate limits apply per API key and reset on a rolling window basis.

Default Rate Limits

Free tools API requests are limited to:

  • 100 requests per hour per API key
  • 1,000 requests per day per API key
  • 10 concurrent requests per API key

These limits apply across all free tools endpoints combined. If you make 50 keyword research requests and 30 SERP analysis requests in an hour, you've used 80 of your 100 hourly requests.

Rate Limit Headers

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

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 73
X-RateLimit-Reset: 1642345678

X-RateLimit-Limit: Your total request quota for the current window

X-RateLimit-Remaining: How many requests you have left in the current window

X-RateLimit-Reset: Unix timestamp when your quota resets

Monitor these headers in your application to avoid hitting rate limits unexpectedly.

Handling Rate Limit Errors

When you exceed rate limits, the API returns a 429 Too Many Requests response:

{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "You have exceeded your hourly rate limit of 100 requests",
    "retry_after": 1847
  }
}

The retry_after value indicates how many seconds to wait before making another request.

Best practice: Implement exponential backoff when you receive 429 responses:

import time
import requests

def make_api_request(url, headers, max_retries=3):
for attempt in range(max_retries):
response = requests.get(url, headers=headers)

if response.status_code == 429:
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue

return response

raise Exception("Max retries exceeded")

Optimizing API Usage

Batch requests when possible: Instead of making separate requests for each keyword, collect multiple keywords and process them in batches during off-peak hours.

Cache responses: Many SEO metrics don't change frequently. Cache keyword research data, domain authority scores, and SERP results for reasonable periods (1-7 days depending on your needs).

Use conditional requests: The API supports If-Modified-Since headers for some endpoints. This allows you to avoid consuming rate limit quota when data hasn't changed.

Implement request queuing: Build a queue system in your application to control request flow and stay within rate limits:

from queue import Queue
import time

request_queue = Queue()
requests_per_hour = 100
delay_between_requests = 3600 / requests_per_hour # 36 seconds

 

def process_queue():
while not request_queue.empty():
request = request_queue.get()
# Make API request
time.sleep(delay_between_requests)

Monitor your usage: Regularly check the SettingsAPI Access section in your account dashboard to review your API usage patterns and identify optimization opportunities.

Increasing Rate Limits

If your use case requires higher rate limits:

  1. Navigate to Account DashboardSettingsAPI Access
  2. Click Request Rate Limit Increase
  3. Describe your use case and expected request volume
  4. Submit the request for review

Rate limit increases are evaluated based on:

  • Account age and history
  • Legitimate business need
  • Technical implementation quality
  • Fair use considerations

Approval typically takes 2-3 business days. Premium accounts receive higher default rate limits and priority consideration for increase requests.

Per-Endpoint Limits

Some resource-intensive endpoints have additional specific limits:

Page Speed Analysis: Maximum 20 requests per hour (counts toward your overall limit)

SERP Analysis: Maximum 500 requests per day for mobile device parameter

These endpoint-specific limits prevent abuse of computationally expensive operations while still allowing generous access for legitimate use cases.

Common Questions

**Can I use the free tools API without a NitroSh

Was this article helpful?