RankWiser
RankWiserGet $100 free

Setup guide

Domain DR snapshot: a monthly setup for your BI tool

A step-by-step setup that turns one API call into a trusted time series, from the first key to the chart.

Setup, in order

  1. 1

    Create the key

    Sign in with Google at /auth/google.php. Your account opens with $100, which is 1,000,000 credits. Copy the key that starts with sk_.

  2. 2

    Make the table

    Columns: domain, dr, ref_domains, pulled_on, source. Primary key on domain plus pulled_on, so a rerun cannot double a month.

  3. 3

    Schedule one call

    Run it on the 5th of each month. Our index refreshes about monthly, so more often adds rows, not information.

  4. 4

    Parse and insert

    Read the JSON, check ok is true, and insert each row with the pull date.

  5. 5

    Flag changes

    Compute month-over-month deltas and mark anything above 3 points. Smaller moves are mostly noise.

  6. 6

    Chart it

    One line per domain, your own domain in a heavy colour, a rival band in grey.

The one request

Cron entry, run on the 5th at 06:00. The cost per run is a single credit.

bash
0 6 5 * * curl -s -X POST "https://rankwiser.app/api.php?action=bulk_dr&key=$RW_KEY" \
  -d "domains=$(paste -sd, /etc/rw/domains.txt)" > /var/rw/dr_$(date +%F).json

Choosing what a domain dr number is allowed to answer

Domain DR is a count in disguise. Plain. It rises when more distinct sites link to a domain, and the log scale makes each new point harder than the last. Keep that sentence in the chart notes.

A good tile answers one trend question per domain set: are we closing on the three rivals, are partners growing, did a campaign move anything. A bad tile mixes in traffic or revenue and invites a causal story the data cannot carry.

Store the raw referring-domain count as well. If the score changes by a point, you can see whether that was 40 new domains or 4,000, and that tells you whether to worry.

Run costs, worked at three list sizes

Calculated from the credit prices above. Examples, not measurements.
Tracked domainsCalls per monthCreditsDollars
5011$0.0001
50011$0.0001
5,00033$0.0003
When the run fails

A 401 means a missing or wrong key. A 402 means the credit has run out, so top up with USDT from the account page. Alert on any response where ok is not true, rather than writing zeros into the chart.

Guardrails worth adding on day one

Keep a second table of pulls that failed. A row with the HTTP status, the time and the response body beats a silent gap in the chart. Alert on anything but ok true.

Pin the domain list in version control. Short diffs help. When someone adds a rival, the diff shows who added it and when, and the chart gets a note. Otherwise the line for that rival appears from nowhere and people ask why it started in March.

Plan for the change of source, too. If you later add Ahrefs or Moz numbers, give them their own source value in the table, as discussed when we compared Ahrefs and Majestic.

A note on rate and rhythm

Nothing here needs speed. A monthly run is a handful of requests, even for large lists, and each response arrives as one JSON document. If your scheduler retries on failure, make the retry idempotent, which the primary key on domain and pull date already gives you.

Resist the urge to run the job daily just because it is cheap. Don't. Our index refreshes roughly once a month. Daily pulls return the same rows for weeks, and your chart fills with flat lines that look like stability but only reflect the crawl calendar. Read the Majestic alternative recipes for other pulls worth scheduling, such as anchors and intersections.