InstaRank SEO

InstaRank SEO API

Programmatic access to all 19 SEO checks. Analyze any website with a single API call.

Base URL: https://instarankseo.com/api/v1Version: 1.0

Authentication

All API endpoints require authentication via the X-API-Key header.

Getting an API Key

  1. Sign in to your InstaRank SEO account
  2. Go to Settings > API Keys
  3. Generate a new API key
  4. Store it securely -- it won't be shown again

Using your API Key

curl -X POST https://instarankseo.com/api/v1/checks/robots-txt \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"url": "example.com"}'

Validate your key

GET/api/v1/auth
curl -H "X-API-Key: your-api-key-here" https://instarankseo.com/api/v1/auth

Rate Limits

Free Tier

  • 5 audits per month
  • 10 keyword research units per day
  • 1 backlink check per month

Pro Tier

  • 50 audits per month
  • 500 keyword research units per day
  • 10 backlink checks per month

Response Format

All responses are JSON. Successful responses include "success": true and the check results. Error responses include "success": false and an error message.

Success Response

{
  "success": true,
  "check": "robots-txt",
  "url": "https://example.com",
  "domain": "example.com",
  "score": 85,
  "issues": [
    {
      "id": "no-sitemap-reference",
      "title": "No sitemap reference",
      "description": "robots.txt does not reference a sitemap",
      "severity": "moderate",
      ...
    }
  ],
  "data": { ... },
  "checkedAt": "2026-03-16T12:00:00.000Z"
}

Error Response

{
  "success": false,
  "error": "url is required and must be a string",
  "errorType": "INVALID_URL"
}

SEO Check Endpoints

Each check analyzes the homepage of the provided URL. All endpoints accept a JSON body with a url field and return a score, issues, and detailed data.

Error Codes

HTTP StatusError TypeDescription
400INVALID_URL / INVALID_CHECK / INVALID_REQUESTBad request. Check your URL format, check name, or request body.
401AUTH_REQUIREDMissing or invalid API key.
429RATE_LIMITRate limit exceeded. Wait and try again.
500INTERNAL_ERRORServer error. The check failed unexpectedly.
502DNS_ERROR / CONNECTION_REFUSED / SSL_ERRORCould not reach the target website.
504TIMEOUTThe check timed out (target site too slow or unresponsive).

Quick Start Examples

Python

import requests

API_KEY = "your-api-key"
BASE_URL = "https://instarankseo.com/api/v1"

response = requests.post(
    f"{BASE_URL}/checks/meta-tags",
    headers={
        "X-API-Key": API_KEY,
        "Content-Type": "application/json",
    },
    json={"url": "example.com"},
)

data = response.json()
print(f"Score: {data['score']}/100")
print(f"Issues: {len(data.get('issues', []))}")
for issue in data.get("issues", []):
    print(f"  [{issue['severity']}] {issue['title']}")

JavaScript / Node.js

const API_KEY = "your-api-key";
const BASE_URL = "https://instarankseo.com/api/v1";

const response = await fetch(`${BASE_URL}/checks/robots-txt`, {
  method: "POST",
  headers: {
    "X-API-Key": API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ url: "example.com" }),
});

const data = await response.json();
console.log(`Score: ${data.score}/100`);
console.log(`Issues: ${data.issues?.length ?? 0}`);

Batch analysis (all checks)

# Run all 19 checks for a single URL
CHECKS=(robots-txt sitemap meta-tags canonical-url http-status url-structure \
  internal-links external-links outbound-links mixed-content x-robots-tag \
  keywords content-quality eeat page-speed backlinks llm-optimization \
  social-media spam-score)

for check in "${CHECKS[@]}"; do
  echo "Running $check..."
  curl -s -X POST "https://instarankseo.com/api/v1/checks/$check" \
    -H "X-API-Key: your-api-key" \
    -H "Content-Type: application/json" \
    -d '{"url": "example.com"}' | jq '{check: .check, score: .score}'
done