{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "majestic",
    "name": "Majestic API",
    "vendor": "Majestic (Majestic-12 Limited)",
    "vendorUrl": "https://majestic.com",
    "kind": "http-api",
    "category": "seo",
    "summary": "Majestic crawls the web and sells backlink data. Its HTTP API returns backlinks, referring domains, anchor text, Trust Flow and Citation Flow scores and keyword counts from a Fresh and a Historic index, as XML or JSON.",
    "url": "https://www.anchorterminal.com/tools/majestic",
    "markdownUrl": "https://www.anchorterminal.com/tools/majestic.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/majestic.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/majestic.json",
    "repo": "https://github.com/majestic/Python3-API-Connector",
    "license": "Proprietary service under Majestic's Terms and Conditions. The Python 3 connector on GitHub carries a BSD-style licence file",
    "transports": [
      "http"
    ],
    "remoteUrl": "https://api.majestic.com",
    "packages": [],
    "auth": "api-key",
    "authNotes": "An API key, sent as the `app_api_key` parameter by POST or GET, or as a cookie on GET requests. Keys are created under My Account, API Keys, and only on an API plan or the legacy Platinum plan. An account can hold several keys, each of which can be disabled and limited to IP addresses or CIDR ranges. Keys have no scopes. Third-party apps use OpenApps instead, where each user approves the app once and the app sends its private key with that user's access token. Resale of the data needs a reseller agreement through sales.",
    "pricing": "paid",
    "pricingNotes": "API access needs the API plan, $399.99 a month or $3,999.90 a year for 100 million analysis units, 20 million retrieval units and 500,000 index item units a month. The 300 million tier is $799.99 a month and the 1,000 million tier $1,599.99. Lite ($49.99) and Pro ($99.99) have no API access. No trial or free API key was found, and the 7-day refund covers Lite and Pro only. A sandbox endpoint costs no units but needs a key from a paid API plan. Prices exclude VAT (checked 2026-10-09).",
    "priceSummary": "$399.99 / mo",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the developer docs, either llms.txt or the pricing page (checked 2026-10-09).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 3,
      "npmWeekly": null,
      "pypiWeekly": null,
      "asOf": "2026-10-09"
    },
    "docsUrl": "https://developer-support.majestic.com/",
    "llmsTxt": "https://developer-support.majestic.com/llms.txt",
    "capabilities": [
      "seo.backlinks",
      "seo.keywords"
    ],
    "tags": [
      "official",
      "hosted",
      "api-key",
      "closed-source",
      "plan-only",
      "llms-txt",
      "xml",
      "sandbox",
      "ip-allowlist",
      "backlinks"
    ],
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 33.4,
      "grade": "F",
      "agentReady": false,
      "rank": 937,
      "ranked": true,
      "rankOf": 950,
      "categoryRank": 10,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 54,
        "maintenance": 22,
        "payments": 15,
        "reliability": 17,
        "schema": 44,
        "security": 32,
        "transparency": 53
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 17,
          "points": 3.4,
          "reason": "Graded on the hosted lines. No status page was found. None is linked from the site footer, the developer docs or either llms.txt (0 of 20), so there is no incident record to read (0 of 30). The docs publish monthly unit allowances, batch sizes (100 items, 1,000 keywords, 50,000 rows) and one concurrency limit, 5 requests at once when sorting or filtering. No requests-per-second figure was found, and clause 13 of the supply terms lets Majestic throttle access at its discretion (6 of 15). No 429 or overload guidance and no Retry-After were found. Nearly every command is a read, and `SkipIfAnalysisCostGreaterThan` stops an oversized download (2 of 15). No SLA was found, and the terms disclaim liability for unavailability (0). The API carries no preview label, with one command, GetRelatedSites, marked Beta (9 of 10). Total 17."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 44,
          "points": 7.15,
          "reason": "No OpenAPI file or other machine-readable contract was found (0 of 25). Both majestic.com and developer-support.majestic.com serve an llms.txt, and the developer one links an llms-full.txt of its 39 pages (10). Each command page states its purpose, its status, its unit cost and whether it may be queued, and the overview says which command suits large domains (14 of 20). Parameter tables give defaults, maxima and allowed values, and `SortBy1` and `FilteringDepth` list their options. `Filters` is a string expression language of its own (9 of 15). Every command page read has XML and JSON samples, dated 2017. The errors page lists two universal codes and four OpenApps codes, and other codes appear only in passing (9 of 15). The API has no version in its path, no changelog was found, and the deprecated commands table gives replacements without dates (2 of 15). Total 44."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 54,
          "points": 8.78,
          "reason": "`Count`, `From`, `MaxSourceURLsPerRefDomain` and `MaxSameSourceURLs` size a GetBackLinkData response. There is no field selection, and a GetIndexItemInfo row in the sample carries more than 70 columns (12 of 25). `Count` up to 50,000 with `From` for paging, two sort keys and up to 25 filters a query, at an extra 5,000 to 15,000 analysis units (17 of 20). Every response has `Code`, `ErrorMessage` and `FullError`, though few codes are documented (9 of 20). Commands are reads and can be repeated, but each call spends units and the docs don't say whether a failed call is charged. A sandbox host costs nothing (8 of 20). Most commands need only `cmd` and an item, with stated defaults. Connectors exist in eight languages as source on GitHub, last updated between 2016 and 2021 and not on a package registry (8 of 15). Total 54."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 32,
          "points": 5.6,
          "reason": "An account can hold several API keys, each of which can be disabled and limited to IP addresses or CIDR ranges. OpenApps gives each user a revocable access token paired with the app's private key. Keys have no scopes (22 of 30). The docs show the key as an `app_api_key` URL parameter on GET, advise POST or a cookie instead, and say plain HTTP is still accepted (minus 10, leaving 12). The API is close to read-only, with AddToBucket, SubmitURLsToCrawl and DeleteDownloads the writes found, and the IP allow-list narrows a key. No read-only key or approval step exists (8 of 20). Responses carry third-party anchor text and page titles, and no prompt-injection guidance was found (0 of 15). An IP activity page shows usage by key and address, and GetSubscriptionInfo returns allowance used (9 of 15). The developer security page gives key-handling advice. No security.txt (404), certification, bug bounty or disclosure policy was found (3 of 20). Total 32."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 15,
          "points": 1.88,
          "reason": "No x402, MPP or L402 (0 of 40). Plan prices are public in dollars, pounds and euros, each command's unit cost is published and the plan states its monthly units, so a cost per call can be worked out. There is no pay-as-you-go price (15 of 20). API access starts at the $399.99 API plan. No trial or free key was found, the sandbox needs a key from that plan, and the 7-day refund covers Lite and Pro only (0 of 20). A person buys a plan in a browser and creates a key in the account (0 of 20). Total 15."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 22,
          "points": 1.93,
          "reason": "No API changelog or release list was found, and the site updates page is behind the account login. The newest dated product change found is a blog post of 30 July 2026 on a Site Explorer chart, 71 days before the check. The newest dated change to the developer docs is the llms.txt of 26 January 2026, 256 days before. We scored between the two (10 of 30). No three dated API or product releases in the last 90 days (0 of 20). Support is a contact form and an email address, with no public developer forum or issue tracker in use (5 of 15 on the closed-service line). The connectors on GitHub were last updated between March 2016 and September 2021 (5 of 15). They have no CI and no package registry entry (2 of 10). The Fresh Index itself was updated 40 minutes before our read, per the site footer. Total 22."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 53,
          "points": 4.64,
          "note": "editorial 43, provenance 63",
          "reason": "Closed service with public Terms and Conditions released on 13 April 2026. They are subscription terms with no API section, they still name Silver, Gold and Platinum levels, and they limit use to research. The connectors carry a BSD-style licence (13 of 30). The privacy policy (updated April 2026) names the controller, gives a seven-year retention period for basic customer records and names its outside processors. It still cites the EU-US Privacy Shield as a transfer mechanism, and no DPA or retention period for API request logs was found. A separate GDPR statement covers personal data met in crawling (16 of 30). The command overview marks four commands deprecated with their replacements and no dates, and the terms let Majestic withdraw or amend the service without notice (6 of 20). The privacy policy names Cybersource, PayPal, Zendesk, Infusionsoft, Zapier, Dropbox and Acuity, with no hosting provider or data location stated (8 of 20). Total 43."
        }
      ],
      "assessment": {
        "date": "2026-10-09",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "`Count`, `From`, `MaxSourceURLsPerRefDomain` and `MaxSameSourceURLs` size a GetBackLinkData response. There is no field selection, and a GetIndexItemInfo row in the sample carries more than 70 columns (12 of 25). `Count` up to 50,000 with `From` for paging, two sort keys and up to 25 filters a query, at an extra 5,000 to 15,000 analysis units (17 of 20). Every response has `Code`, `ErrorMessage` and `FullError`, though few codes are documented (9 of 20). Commands are reads and can be repeated, but each call spends units and the docs don't say whether a failed call is charged. A sandbox host costs nothing (8 of 20). Most commands need only `cmd` and an item, with stated defaults. Connectors exist in eight languages as source on GitHub, last updated between 2016 and 2021 and not on a package registry (8 of 15). Total 54.",
          "maintenance": "No API changelog or release list was found, and the site updates page is behind the account login. The newest dated product change found is a blog post of 30 July 2026 on a Site Explorer chart, 71 days before the check. The newest dated change to the developer docs is the llms.txt of 26 January 2026, 256 days before. We scored between the two (10 of 30). No three dated API or product releases in the last 90 days (0 of 20). Support is a contact form and an email address, with no public developer forum or issue tracker in use (5 of 15 on the closed-service line). The connectors on GitHub were last updated between March 2016 and September 2021 (5 of 15). They have no CI and no package registry entry (2 of 10). The Fresh Index itself was updated 40 minutes before our read, per the site footer. Total 22.",
          "payments": "No x402, MPP or L402 (0 of 40). Plan prices are public in dollars, pounds and euros, each command's unit cost is published and the plan states its monthly units, so a cost per call can be worked out. There is no pay-as-you-go price (15 of 20). API access starts at the $399.99 API plan. No trial or free key was found, the sandbox needs a key from that plan, and the 7-day refund covers Lite and Pro only (0 of 20). A person buys a plan in a browser and creates a key in the account (0 of 20). Total 15.",
          "reliability": "Graded on the hosted lines. No status page was found. None is linked from the site footer, the developer docs or either llms.txt (0 of 20), so there is no incident record to read (0 of 30). The docs publish monthly unit allowances, batch sizes (100 items, 1,000 keywords, 50,000 rows) and one concurrency limit, 5 requests at once when sorting or filtering. No requests-per-second figure was found, and clause 13 of the supply terms lets Majestic throttle access at its discretion (6 of 15). No 429 or overload guidance and no Retry-After were found. Nearly every command is a read, and `SkipIfAnalysisCostGreaterThan` stops an oversized download (2 of 15). No SLA was found, and the terms disclaim liability for unavailability (0). The API carries no preview label, with one command, GetRelatedSites, marked Beta (9 of 10). Total 17.",
          "schema": "No OpenAPI file or other machine-readable contract was found (0 of 25). Both majestic.com and developer-support.majestic.com serve an llms.txt, and the developer one links an llms-full.txt of its 39 pages (10). Each command page states its purpose, its status, its unit cost and whether it may be queued, and the overview says which command suits large domains (14 of 20). Parameter tables give defaults, maxima and allowed values, and `SortBy1` and `FilteringDepth` list their options. `Filters` is a string expression language of its own (9 of 15). Every command page read has XML and JSON samples, dated 2017. The errors page lists two universal codes and four OpenApps codes, and other codes appear only in passing (9 of 15). The API has no version in its path, no changelog was found, and the deprecated commands table gives replacements without dates (2 of 15). Total 44.",
          "security": "An account can hold several API keys, each of which can be disabled and limited to IP addresses or CIDR ranges. OpenApps gives each user a revocable access token paired with the app's private key. Keys have no scopes (22 of 30). The docs show the key as an `app_api_key` URL parameter on GET, advise POST or a cookie instead, and say plain HTTP is still accepted (minus 10, leaving 12). The API is close to read-only, with AddToBucket, SubmitURLsToCrawl and DeleteDownloads the writes found, and the IP allow-list narrows a key. No read-only key or approval step exists (8 of 20). Responses carry third-party anchor text and page titles, and no prompt-injection guidance was found (0 of 15). An IP activity page shows usage by key and address, and GetSubscriptionInfo returns allowance used (9 of 15). The developer security page gives key-handling advice. No security.txt (404), certification, bug bounty or disclosure policy was found (3 of 20). Total 32.",
          "transparency": "Closed service with public Terms and Conditions released on 13 April 2026. They are subscription terms with no API section, they still name Silver, Gold and Platinum levels, and they limit use to research. The connectors carry a BSD-style licence (13 of 30). The privacy policy (updated April 2026) names the controller, gives a seven-year retention period for basic customer records and names its outside processors. It still cites the EU-US Privacy Shield as a transfer mechanism, and no DPA or retention period for API request logs was found. A separate GDPR statement covers personal data met in crawling (16 of 30). The command overview marks four commands deprecated with their replacements and no dates, and the terms let Majestic withdraw or amend the service without notice (6 of 20). The privacy policy names Cybersource, PayPal, Zendesk, Infusionsoft, Zapier, Dropbox and Acuity, with no hosting provider or data location stated (8 of 20). Total 43."
        },
        "sources": [
          {
            "what": "developer docs home",
            "url": "https://developer-support.majestic.com/",
            "seen": "2026-10-09"
          },
          {
            "what": "API reference guide",
            "url": "https://developer-support.majestic.com/api/",
            "seen": "2026-10-09"
          },
          {
            "what": "command overview and unit costs",
            "url": "https://developer-support.majestic.com/api/commands/",
            "seen": "2026-10-09"
          },
          {
            "what": "GetBackLinkData",
            "url": "https://developer-support.majestic.com/api/commands/get-back-link-data.shtml",
            "seen": "2026-10-09"
          },
          {
            "what": "GetIndexItemInfo",
            "url": "https://developer-support.majestic.com/api/commands/get-index-item-info.shtml",
            "seen": "2026-10-09"
          },
          {
            "what": "GetSubscriptionInfo",
            "url": "https://developer-support.majestic.com/api/commands/get-subscription-info.shtml",
            "seen": "2026-10-09"
          },
          {
            "what": "GetKeywordInfo",
            "url": "https://developer-support.majestic.com/api/commands/get-keyword-info.shtml",
            "seen": "2026-10-09"
          },
          {
            "what": "DownloadBackLinks",
            "url": "https://developer-support.majestic.com/api/commands/download-backlinks.shtml",
            "seen": "2026-10-09"
          },
          {
            "what": "API security page",
            "url": "https://developer-support.majestic.com/security/",
            "seen": "2026-10-09"
          },
          {
            "what": "common errors",
            "url": "https://developer-support.majestic.com/errors/",
            "seen": "2026-10-09"
          },
          {
            "what": "OpenApps guide",
            "url": "https://developer-support.majestic.com/openapps/",
            "seen": "2026-10-09"
          },
          {
            "what": "connectors",
            "url": "https://developer-support.majestic.com/connectors/index.shtml",
            "seen": "2026-10-09"
          },
          {
            "what": "developer llms.txt",
            "url": "https://developer-support.majestic.com/llms.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "majestic.com llms.txt",
            "url": "https://majestic.com/llms.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "plans and pricing (pounds by default, dollars through the page's currency selector)",
            "url": "https://majestic.com/plans-pricing",
            "seen": "2026-10-09"
          },
          {
            "what": "Terms and Conditions",
            "url": "https://majestic.com/company/terms",
            "seen": "2026-10-09"
          },
          {
            "what": "privacy policy",
            "url": "https://majestic.com/company/privacy-policy",
            "seen": "2026-10-09"
          },
          {
            "what": "GDPR compliance statement",
            "url": "https://majestic.com/company/gdpr",
            "seen": "2026-10-09"
          },
          {
            "what": "about page",
            "url": "https://majestic.com/company/about",
            "seen": "2026-10-09"
          },
          {
            "what": "FAQ",
            "url": "https://majestic.com/help/faq",
            "seen": "2026-10-09"
          },
          {
            "what": "security.txt (404)",
            "url": "https://majestic.com/.well-known/security.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "blog home and its Development and Updates categories",
            "url": "https://blog.majestic.com/",
            "seen": "2026-10-09"
          },
          {
            "what": "GitHub organisation page",
            "url": "https://github.com/majestic",
            "seen": "2026-10-09"
          },
          {
            "what": "Python 3 connector (shallow clone)",
            "url": "https://github.com/majestic/Python3-API-Connector",
            "seen": "2026-10-09"
          },
          {
            "what": "robots.txt",
            "url": "https://majestic.com/robots.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "domain registration",
            "url": "https://rdap.org/domain/majestic.com",
            "seen": "2026-10-09"
          }
        ],
        "openQuestions": [
          "Clause 14.1(f) of the Terms and Conditions of Supply says a subscriber shall not query Majestic's database or servers using any automated tools without prior permission. Recorded as a fact with no deduction. It matters before any probe is run, and whether an API plan counts as that permission is not stated",
          "unchecked: whether a status page exists. None is linked from the pages read, and we did not try guessed addresses",
          "unchecked: the site updates page at majestic.com/account/site-updates, which redirects to the login. Maintenance may be understated if it lists dated API changes",
          "unchecked: retrieval and index item allowances of the 300 million and 1,000 million tiers, which the page sets by script",
          "unchecked: the remaining command pages, the authentication page and llms-full.txt. Twelve of the 39 docs pages were read",
          "unchecked: the API's live behaviour. No request was sent to api.majestic.com or developer.majestic.com, so error bodies, HTTP status codes and rate limiting are as documented only",
          "unchecked: whether failed or empty calls spend analysis units",
          "The API reference names `http://enterprise.majestic.com/api_command` in its Response Types section and `https://api.majestic.com/api_command` elsewhere. We recorded api.majestic.com",
          "The supply terms name Free, Silver, Gold and Platinum levels. The pricing page sells Lite, Pro and API, and the docs call Platinum a legacy plan",
          "The pricing page showed our request pounds by default. Dollar prices came from the same page after its own currency selector, and they match the llms.txt",
          "`lastRelease` is null because no dated API release was found",
          "The lead was right about the vendor, the docs address and the commands. The API host is api.majestic.com, not the docs host"
        ]
      },
      "negative": 0,
      "verdict": "Each command's cost in units is published and a sandbox endpoint returns sample data without spending allowance. API access starts at $399.99 a month with no trial, and no OpenAPI file, status page, numeric rate limit, SLA or API changelog was found. The supply terms require permission before querying with automated tools.",
      "bestFor": "An agent that needs backlink, referring domain, anchor text and Trust Flow data in volume for an owner who already pays for the API plan.",
      "strengths": [
        "Every command page states its cost in analysis units, and `GetSubscriptionInfo` returns the remaining allowances at no cost",
        "A sandbox endpoint at `developer.majestic.com` answers the same commands from a reduced Historic data set without spending allowance",
        "Several API keys per account, each of which can be disabled and limited to IPv4 addresses or CIDR ranges, with an IP activity page per key",
        "`GetIndexItemInfo` takes up to 100 items a call and `GetKeywordInfo` up to 1,000 keywords, and `GetBackLinkData` has `Count`, `From`, sorting and a `Filters` expression",
        "Both docs hosts publish an `llms.txt`, and the developer one (dated 26 January 2026) links an `llms-full.txt` of all 39 pages"
      ],
      "weaknesses": [
        "Clause 14.1(f) of the supply terms forbids querying Majestic's database or servers with automated tools without prior permission. This matters before any probe is run",
        "API access needs the API plan, from $399.99 a month for 100 million analysis units. No trial or free key was found, and the 7-day refund covers Lite and Pro only",
        "No OpenAPI file, no API version and no API changelog were found. Sample responses in the docs carry 2017 index dates",
        "No status page, SLA or numeric rate limit was found. The terms allow throttling at Majestic's discretion and disclaim liability for unavailability",
        "The docs show the key as an `app_api_key` URL parameter and say plain HTTP is still accepted for legacy clients",
        "The connectors on GitHub were last updated between March 2016 and September 2021 and are not on a package registry"
      ],
      "agentNotes": [
        "Send requests by HTTPS POST with `app_api_key` in the body. The docs show GET URLs for demonstration only and plain HTTP still works",
        "Always set `datasource=fresh` or `datasource=historic`. Without it the Historic Index is used when the plan includes it",
        "Call `GetSubscriptionInfo` (no cost) before a large pull. `GetBackLinkData` spends 5,000 analysis units a call plus one retrieval unit a row",
        "Read columns by header name, not position. The docs say column order can change between requests and Majestic may vary rows and columns at any time",
        "Develop against `https://developer.majestic.com/api/json`, which costs no units, then switch the host to `api.majestic.com`",
        "Ask the owner to confirm Majestic's permission for automated querying first. Clause 14.1(f) of the terms requires it"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "F",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 33.4
        }
      ],
      "editorialScores": {
        "ergonomics": 54,
        "maintenance": 22,
        "payments": 15,
        "reliability": 17,
        "schema": 44,
        "security": 32,
        "transparency": 43
      },
      "provenanceScore": 63
    },
    "connect": {
      "http": "curl -X POST 'https://developer.majestic.com/api/json' -d 'app_api_key=API_KEY' -d 'cmd=GetIndexItemInfo' -d 'items=1' -d 'item0=majestic.com' -d 'datasource=fresh'"
    },
    "letme": {
      "capability": "https://letme.dev/seo.backlinks",
      "tool": "https://letme.dev/majestic"
    },
    "notable": [
      "The command overview lists 23 active commands with a minimum and maximum cost in AnalysisResUnits, and four deprecated commands kept for legacy customers (https://developer-support.majestic.com/api/commands/)",
      "`GetBackLinkData` costs 5,000 analysis units a call, or 10,000 to 20,000 with sorting and filtering, and returns up to 50,000 rows through `Count` and `From` (https://developer-support.majestic.com/api/commands/get-back-link-data.shtml)",
      "The live endpoint is `https://api.majestic.com/api_command` and the sandbox `https://developer.majestic.com/api_command`. The sandbox returns a subset of Historic data and spends no allowance (https://developer-support.majestic.com/api/)",
      "The security page says HTTP is supported for legacy reasons and should be considered deprecated, and that HTTPS GET is less safe than HTTPS POST (https://developer-support.majestic.com/security/)",
      "The API reference says column order is not guaranteed between requests and that Majestic may vary rows, columns and parameters of any message at any time (https://developer-support.majestic.com/api/)",
      "Clause 14.1 of the Terms and Conditions of Supply limits use to research, forbids querying with automated tools without prior permission, and forbids resale or derivative works without written consent (https://majestic.com/company/terms)",
      "The site footer on 9 October 2026 gave the Fresh Index range as 11 June to 9 October 2026, updated 40 minutes earlier, and the Historic Index range as 6 June 2006 to 26 March 2024, updated 3 May 2024 (https://majestic.com/company/terms)"
    ],
    "area": "web-data",
    "details": [
      {
        "label": "Surface graded",
        "value": "The public HTTP API at api.majestic.com, called with an account's own API key. Majestic publishes no MCP server that we found"
      },
      {
        "label": "Endpoints",
        "value": "Live `https://api.majestic.com/api_command` (XML) and `/api/json`. Sandbox `https://developer.majestic.com/api_command`, `/api/xml` and `/api/json`. One page of the reference names `enterprise.majestic.com` for the same paths"
      },
      {
        "label": "Commands",
        "value": "23 active, among them GetIndexItemInfo, GetBackLinkData, GetRefDomains, GetAnchorText, GetTopPages, GetTopics, GetNewLostBackLinks, GetBackLinksHistory, GetKeywordInfo, SearchByKeyword, DownloadBackLinks, SubmitURLsToCrawl and GetSubscriptionInfo. GetRelatedSites is marked Beta. Four are deprecated"
      },
      {
        "label": "Indexes",
        "value": "Fresh (about four months, updated through the day) and Historic (from June 2006), chosen with `datasource`. Historic is the default when the plan includes it"
      },
      {
        "label": "Credentials",
        "value": "API key in `app_api_key` by POST, GET or cookie. Several keys an account, each with enable and disable and an IP allow-list. OpenApps uses an app private key with a per-user access token. No scopes"
      },
      {
        "label": "Allowances",
        "value": "Three monthly meters. Analysis units (most commands), retrieval units (one a row returned) and index item units (GetIndexItemInfo, one an item). The API plan at 100 million analysis units includes 20 million retrieval and 500,000 index item units"
      },
      {
        "label": "Unit costs",
        "value": "GetBackLinkData 5,000 to 20,000 analysis units a call. GetRefDomains, GetAnchorText and GetTopics 1,000. GetBackLinksHistory and GetLinkProfile 500. GetKeywordInfo 500 plus 50 a keyword. GetSubscriptionInfo none"
      },
      {
        "label": "Plan prices",
        "value": "API plan $399.99 a month (100 million analysis units), $799.99 (300 million), $1,599.99 (1,000 million). Annual $3,999.90, $7,999.90 and $15,999.90. Five users. Custom volumes through sales. Prices exclude VAT"
      },
      {
        "label": "Limits",
        "value": "100 items a GetIndexItemInfo call, 1,000 keywords a GetKeywordInfo call, 50,000 rows a GetBackLinkData call, 25 filters a query, and 5 concurrent requests when sorting or filtering. No requests-per-second figure was found"
      },
      {
        "label": "Responses",
        "value": "XML with pipe-delimited rows, or JSON. Every response carries `Code`, `ErrorMessage` and `FullError`. Documented codes include AuthenticationFailed, NoSubscription, IllegalArgument and QueuedForProcessing"
      },
      {
        "label": "Bulk downloads",
        "value": "DownloadBackLinks always runs queued and writes a gzip CSV to downloads.majestic.com or the caller's FTP server, with an optional `NotifyURL` callback retried with exponential backoff"
      },
      {
        "label": "Connectors",
        "value": "Source on github.com/majestic for C#, Java, JavaScript, Perl, PHP, Python 2, Python 3 and Ruby, last updated between March 2016 and September 2021. Not published to a package registry"
      },
      {
        "label": "Agent docs",
        "value": "`llms.txt` on majestic.com and on developer-support.majestic.com (dated 26 January 2026), the second linking `llms-full.txt`"
      },
      {
        "label": "Contracting entity",
        "value": "Majestic-12 Limited, company number 05269210, iCentrum, Holt Street, Birmingham, B7 4BP, United Kingdom. English law"
      }
    ],
    "unitPrices": [
      {
        "item": "API plan, 100 million analysis units a month",
        "unit": "month",
        "usd": 399.99,
        "note": "with 20 million retrieval units and 500,000 index item units. $3,999.90 billed annually. Excludes VAT"
      },
      {
        "item": "API plan, 300 million analysis units a month",
        "unit": "month",
        "usd": 799.99,
        "note": "$7,999.90 billed annually. Excludes VAT"
      },
      {
        "item": "API plan, 1,000 million analysis units a month",
        "unit": "month",
        "usd": 1599.99,
        "note": "$15,999.90 billed annually. Excludes VAT"
      },
      {
        "item": "GetBackLinkData, per call",
        "unit": "call",
        "usd": 0.02,
        "note": "our arithmetic. 5,000 of the 100 million analysis units in the $399.99 plan, before retrieval units for rows returned"
      }
    ],
    "provenance": {
      "legalEntity": "Majestic-12 Limited",
      "domain": "majestic.com",
      "domainRegistered": "2001-05-03",
      "endpointOnVendorDomain": true,
      "terms": "https://majestic.com/company/terms",
      "privacy": "https://majestic.com/company/privacy-policy",
      "statusPage": "",
      "changelog": "",
      "securityTxt": "none",
      "checked": "2026-10-09",
      "notes": [
        "The Terms and Conditions (released 13 April 2026) are one page holding the Terms of Website Use, the Acceptable Use Policy and the Terms and Conditions of Supply. The last of these is the subscription contract and names Majestic-12 Limited, company number 05269210, of iCentrum, Holt Street, Birmingham.",
        "No API-specific terms were found. The supply terms still name Free, Silver, Gold and Platinum subscription levels, which are not the plans on the pricing page.",
        "The privacy policy applies from 3 May 2019 and says it was last updated in April 2026. It names Majestic-12 Limited as controller.",
        "The API answers at api.majestic.com and the sandbox at developer.majestic.com.",
        "majestic.com/.well-known/security.txt returned 404.",
        "No status page is linked from the site footer, the developer docs or either llms.txt. Site updates are behind the account login.",
        "RDAP for majestic.com gives a registration date of 2001-05-03.",
        "majestic.com/robots.txt disallows /business/ for unnamed agents and carries no Content-Signal line. developer-support.majestic.com has no robots.txt (404)."
      ],
      "score": 63,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Majestic-12 Limited",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "majestic.com, registered 2001-05-03 (25 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "api.majestic.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 4 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 3.4,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 7 of the 8 things a reader expects",
          "points": 9.3,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://majestic.com/company/terms",
          "state": "read",
          "readAt": "2026-10-09",
          "words": 7983,
          "points": 3.4,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": false
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "These terms of use and any dispute or claim arising out of or in connection with them or their subject matter or formation (including non-contractual disputes or claims) shall be governed by and construed in accordance with the law of England and Wales.",
              "says": "The law of England and Wales"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": false
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "If the need arises, we may suspend access to our sites, or close them indefinitely."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "If we revise these terms and conditions as they apply to your Subscription Contract, we will contact you to give you reasonable advance notice of the changes and let you know how to cancel your Subscription Contract if you are not happy with the changes.",
              "says": "Says it gives notice of a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "If you choose, or you are provided with, a user identification code, password or any other piece of information as part of our security procedures, you must treat such information as confidential, and you must not disclose it to any third party."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "terms.automated",
              "label": "Restricts automated access",
              "found": true,
              "quote": "(f)shall not query our database or servers using any automated tools without getting our prior permission to do so;",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "Access to our sites is permitted on a temporary basis, and we reserve the right to withdraw or amend the service we provide on our sites without notice (see below).",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "We shall be entitled to cancel your Subscription Contract forthwith at any time by notice in writing to you."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Subscribers may use the information and materials Majestic supplies only for research.",
              "quote": "(c)shall only use the information and materials provided by us to you for the purpose of research, including but not limited to the investigation of techniques and data to understand how to optimise your or your clients' websites; and"
            },
            {
              "date": "2026-10-08",
              "text": "Material uploaded to Majestic's sites is treated as non-confidential and Majestic may use, copy, distribute and disclose it to third parties for any purpose.",
              "quote": "Any material you upload to our sites will be considered non-confidential and non-proprietary, and we have the right to use, copy, distribute and disclose to third parties any such material for any purpose."
            },
            {
              "date": "2026-10-08",
              "text": "Notices from a customer to Majestic must be sent in writing to its Birmingham postal address, and notice by email or fax is not permitted.",
              "quote": "All notices given by you to us must be given sent in writing to Majestic-12 Limited at iCentrum, Holt Street, Birmingham, United Kingdom, B7 4BP (notice to us by you via email or fax is not permissible)."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://majestic.com/company/privacy-policy",
          "state": "read",
          "readAt": "2026-10-09",
          "statedDate": "2026-04-01",
          "words": 4983,
          "points": 9.3,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "We keep our privacy policy under regular review. This version was last updated in April 2026. Historic versions can be obtained by contacting us.",
              "says": "Last updated 2026-04-01"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "We may collect, use, store and transfer different kinds of personal data about you which we have grouped together as follows:"
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "By law we have to keep basic information about our customers (including Identity, Contact, Financial and Transaction Data) for 7 years after they cease being customers for tax purposes.",
              "says": "Names a period of 7 years"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "Clicking on those links or enabling those connections may allow third parties to collect or share data about you."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": false
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "You have the right to withdraw consent to marketing at any time by contacting us."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "DPO, Majestic-12 Ltd, iCentrum, Holt Street, Birmingham, B7 4BP",
              "says": "Names a data protection officer"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "Privacy Shield and transfer of personal data outside of the EEA, followed by the"
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/majestic.json",
    "live": {
      "slug": "majestic",
      "probe": {
        "target": "https://api.majestic.com",
        "method": "get",
        "lastAt": "2026-10-10T02:07:15.189722301Z",
        "lastOk": true,
        "lastStatus": 403,
        "lastMs": 96,
        "lastNote": "asks for credentials",
        "authRequired": true,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 35,
        "p95ms24h": 109,
        "samples24h": 107,
        "samples30d": 107,
        "days": [
          {
            "date": "2026-10-09",
            "probes": 85,
            "ok": 85
          },
          {
            "date": "2026-10-10",
            "probes": 22,
            "ok": 22
          }
        ]
      },
      "githubStars": 3,
      "pages": [
        {
          "url": "https://majestic.com/company/privacy-policy",
          "kind": "privacy",
          "status": 200,
          "checkedAt": "2026-10-09T18:41:42.95940596Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "1a06eaa10f9e"
        },
        {
          "url": "https://majestic.com/company/terms",
          "kind": "terms",
          "status": 200,
          "checkedAt": "2026-10-09T18:41:45.030991177Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "0812670ad36f"
        }
      ],
      "updatedAt": "2026-10-10T02:07:15.189722301Z"
    }
  }
}
