Skip to main content
The risk score endpoints describe one organization’s exposure in numbers. DarknetSearch calculates them in the background from leak data and passive infrastructure data. You read them. The only thing you write is the list of competitor domains you compare against. Every score runs from 0 to 100, and a higher score means more risk. Availability: Risk Score, included in every plan. The endpoints need a license in force and no other plan feature. Cost: no metered allowance. Each request made with an API key uses one unit of your monthly API Calls allowance, refunded when the response is not 2xx. See Rate limits. Without a license in force, every endpoint on this page returns 403:
No allowance or capacity slot applies, so these endpoints never return the allowance 429 or the capacity 409.

What you can read

Read the risk score

get_organization_risk_score returns nine factor scores, score_a to score_i, and three averages of them.
The example shows two of the nine factors. The response carries score_*, score_*_message and score_*_last_update for every factor from a to i, and a factor_descriptions entry for each.
  • score_a to score_i — one score per factor, from 0 to 100, rounded to two decimals. Higher means more risk.
  • score_*_message — the count behind the factor, in plain text.
  • score_*_last_update — when the factor was last calculated. null means it has not been calculated yet, and its score reads 0 until it is.
  • factor_descriptions — fixed text on what each factor measures: title, description, data_sources and risk_logic. It is the same for every organization, and the example shortens it. Where it differs from How each factor is scored, the table describes the actual calculation. Its keys use a hyphen (score-a), the score fields an underscore (score_a).
  • leak_risk_score — the plain average of the six leak factors, a to f.
  • infra_risk_score — the plain average of the three infrastructure factors, g to i.
  • total_score — the plain average of all nine factors. No factor is weighted.
  • id, organization and creation_date — the score record, your organization’s ID, and when the record was created.
To see where exposure concentrates, sort the factors by score, highest first, and read each one’s message.

How each factor is scored

The three infrastructure factors use one scale. 1 flagged system scores 30, each further one adds 10, and 8 or more score 100. That score is then multiplied by the square root of the flagged share of all systems found. 3 flagged systems out of 41 score 50 × √(3/41) = 13.53.

Compare your leak count with peers

get_organization_stats returns your leak count and two numbers that describe a group of similar organizations.
  • leak_count — your organization’s all-time count of leak records. It is the same measure as a competitor’s leak_count.
  • average_leak_count and median_leak_count — the leak counts of the peer group, not your own. The average is rounded to a whole number. The median can end in .5. Both are 0 when no peer matches.
The peer group is every other active DarknetSearch customer with your size range, industry and country, plus up to 30 reference organizations that match the same filters. Size range, industry and country come from your organization profile. When the profile has no industry or country, that filter is dropped. Compare leak_count with median_leak_count first. An average well above the median means a few peers have very large counts. To compare against a different group, pass either override:
  • industry — an industry name exactly as industry_type_list returns it.
  • country — an ISO 3166-1 alpha-2 code such as CH, or an English country name. An unknown value returns 400 with {"error": "Invalid country."}.

Follow the score over time

get_organization_risk_score_history returns one point per week with the leak and infrastructure scores.
Every weekly endpoint on this page works the same way:
  • weeks sets how far back to go: 1 to 260, default 12. A value outside that range returns 400 with {"error": "weeks must be between 1 and 260"}.
  • Newest first. Each point is dated on the Saturday that ends its week.
  • Up to one point per week. A week with no recorded value is missing from the list.
On the score history, infra_risk_score can be null for a week in which the infrastructure factors were not calculated. leak_risk_score always has a value. Plot both lines to see which side moves the total.

Leak counts over time

Three series count leak records per week. All three take weeks and return date and leak_count.
A spike in your weekly series marks the week a large set of records landed. The global series shows whether the same week was busy everywhere.

Benchmark against similar organizations

get_organization_benchmark_weekly_leak_count_history returns the average weekly leak count of up to 10 reference organizations with your size range and industry. Country is not used. Overlay it on your weekly series.
The average is rounded to a whole number. The list ends at the most recent completed Saturday. It is empty when no reference organization matches your size range and industry.

Three ways to compare

Reference organizations are a benchmark set that DarknetSearch keeps for each size range and industry. They are not your competitors, and you cannot change them.

Competitors

Competitors are domains you track next to your own. Each one carries its own all-time leak_count, the same measure as your leak_count in get_organization_stats. Competitors do not feed the risk score or the benchmark.

List competitors

list_organization_competitors returns your competitors.
  • ordering takes id, -id, leak_count or -leak_count. The default is id.
  • page is 1-based. size defaults to 10, max 100. An organization has at most 5 competitors, so one page holds them all.
  • last_update is when the domain’s leak count was last calculated. A count is recalculated once it is 30 days old.

Add a competitor

add_organization_competitor takes one domain. The leak count is calculated before the call returns.
The call returns 201 with the new competitor:
The rules for domain:
  • A bare domain or subdomain. acme-login.com and shop.acme-login.com are accepted. A protocol or a path, such as https://acme-login.com/, is refused.
  • Up to 100 characters.
  • Stored trimmed and in lowercase, so ACME-LOGIN.com and acme-login.com are the same domain.
  • At most 5 competitors. Remove one to add another.

Remove a competitor

remove_organization_competitor takes the competitor’s id as the competitor_id query parameter and returns 204.

Errors

Errors explains how to handle each status.

Endpoints