> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.defdex.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.defdex.io/_mcp/server.

# Organizations

Organizations include companies, subsidiaries, government agencies, investors,
research labs and other published organizations. They share the `organizations`
collection. A commercial company and a government agency are different `type`
values, not separate identifier namespaces.

| Operation                    | HTTP request                                     |
| ---------------------------- | ------------------------------------------------ |
| Find organizations           | `GET /api/v1/datasets/organizations`             |
| Read a returned record       | `GET /api/v1/datasets/organizations/{record_id}` |
| Discover exact output fields | `GET /api/v1/datasets` → `organizations.fields`  |

## Find companies

```sh
curl --fail-with-body --get \
  'https://app.defdex.io/api/v1/datasets/organizations' \
  --header "Authorization: Bearer $DEFDEX_API_KEY" \
  --data-urlencode 'filters={"type":"company"}' \
  --data-urlencode 'limit=25'
```

`type` values include `company`, `subsidiary`, `agency`, `investor`, `research_lab`
and `other`. A `company` equality filter excludes subsidiaries. Query subsidiaries
separately if your workflow needs both; the API does not support an OR predicate.
Use `q` for name/description substring matching, or `filters` for exact `slug`, `id`,
`country`, `parent_id` and other published fields. Multiple filters use AND.

```javascript
import { DefDexClient } from '@defdex/sdk';
const api = new DefDexClient();
const matches = await api.list('organizations', {
  filters: { type: 'company', country: 'US' }, limit: 25
});
for (const record of matches.data) {
  console.log(record.attributes.id, record.attributes.name);
}
```

## Resolve identifiers

Keep `attributes.id` as the organization UUID for joins. An exact slug lookup uses
`filters={"slug":"EXACT_PUBLISHED_SLUG"}`. A UEI or other external identifier is
resolved through `organization-identifiers` using exact `scheme` and `value` values
from published data. Use its `organization_id` to query organizations by `id`.
Never infer identity or ownership from a similar name.

## Follow relationships

| Question                                   | Dataset and exact filter                                    |
| ------------------------------------------ | ----------------------------------------------------------- |
| Which programs involve this organization?  | `program-participants`, `organization_id`                   |
| Which technologies are associated with it? | `organization-technologies`, `organization_id`              |
| Which products or systems does it build?   | `systems`, `organization_id`                                |
| What external identifiers are published?   | `organization-identifiers`, `organization_id`               |
| Which sources support a field?             | `citations`, `subject_id` and, where needed, `subject_type` |
| Which subsidiaries report this parent?     | `organizations`, `parent_id` or `ultimate_parent_id`        |

Read the exact field schemas in the resource reference before filtering. Related
rows are not embedded automatically; each list/detail call uses one API request.

`parent_id`, `ultimate_parent_id` and `navigation_parent_id` have different purposes.
Do not treat navigation hierarchy as legal ownership. For award attribution, retain
the published basis and time period; see [awards](/awards).