Find communities

Find clusters of closely linked entities.

POST/api/v2.0-preview/atlas/analysis/communities

Authorizations

Bearer
Authorizationstringrequiredheader

Required Bearer API key: your NOSIBLE API key from the API Dashboard.

Example: Bearer nos_sk_...

Body

application/json
graphobjectrequiredbody

The graph to analyse: the same object as the By entity body (entities, hops 1 to 3 defaulting to 2, and the filters). as_of and from go at the top level, not inside graph. Scope is capped at 100,000 entities.

Example: {"entities":[{"type":"ORG","name":"Nvidia"},{"type":"ORG","name":"AMD"},{"type":"ORG","name":"Intel"},{"type":"ORG","name":"TSMC"}],"hops":1,"exclude_types":["GPE","LOC"],"min_support":5}

resolutionnumberbody

Above 1 gives more, smaller communities; below 1 fewer, larger ones. Defaults to 1.0.

Example: 1.0

limitintegerbody

Communities returned, largest first. Defaults to 20, maximum 100.

Example: 3

membersintegerbody

Members listed per community. Defaults to 10, maximum 50.

Example: 4

as_ofdatebody

Point in time (YYYY-MM-DD). Only events dated on or before it count. Defaults to the latest date in the release. `to` is accepted as the same parameter, as in the World API.

Example: 2024-12-31

fromdatebody

Optional start of the evidence window (YYYY-MM-DD, inclusive).

Example: 2020-01-01

How to use this endpoint

guidance

Use Find communities to split a graph into groups that are more connected inside than out (Louvain). top_predicates says what holds each group together. A graph around a single entity is one star, so start from two or more entities. The example splits the graph around Nvidia, AMD, Intel and TSMC; each of its three largest communities forms around one of the chipmakers, with its people and partners.

Response body

application/json

These are the fields you can build against. Nested names use dot notation; optional sections are called out in their descriptions.

communitiesobject[]

[{id, size, relationships, members, top_predicates}], largest first.

modularitynumber

How well the graph divides at the requested resolution. At resolution 1 it is the classic modularity, from 0 (no structure) towards 1; values at different resolutions are not comparable.

scopeobject

{nodes, edges, truncated}: the size of the graph analysed.

approximateboolean

Always true: community detection (Louvain) finds a good division, not a provably best one. The same request always returns the same communities.

schemastring

Response schema name.

as_ofdate

The point in time the answer is computed for.

date_windowobject

The evidence window: from, to, archive_cutoff and include_live (always false).

releasestring

Immutable id of the graph release that answered. The same request against the same release returns identical bytes.

took_msinteger

Server time in milliseconds.

Responses and errors

HTTP
200Request succeeded. The response body is shown in the panel on the right.
400invalid_request — A parameter is missing, malformed or out of range; the message names it.
400invalid_entity_type — The entity type is not one Atlas holds. TICKER is refused: send the company as an ORG.
400unknown_predicate — A relationship type is not in the graph; list them with Relationship types.
401api_key_required — No API key was sent. Send it as Authorization: Bearer <key> or the api-key header.
401invalid_api_key — The API key is invalid or has been revoked.
404unknown_entity — No entity of that type has that name in this release. When the name exists under another type, the message says which.
404not_found — No endpoint matches this method and path.
410cursor_expired — The cursor belongs to another release or request; restart from the first page.
422unprocessable_request — Each value is valid but not together, such as from after as_of.
422request_too_broad — The request ran out of its work budget before it could answer; narrow it.
429rate_limited — Too many requests for this key; wait for Retry-After.
501backend_not_configured — The Atlas backend is not configured for this deployment.
502backend_error — The Atlas backend could not be reached; retry shortly.
503unavailable — The service is busy or starting; retry after Retry-After.
503api_key_auth_unavailable — API key authentication is temporarily unavailable; retry shortly.
504request_timeout — The request took longer than 25 seconds; narrow it.
504backend_timeout — The Atlas backend did not answer before the deadline; retry.