Management API
Configures DiligenceID resources. Base path /management, date-versioned, API-key authenticated.
Use it to set things up. Use the Product API to run transactions.
Resources
| Resource | Type | ETag |
|---|---|---|
| Organisation | DiligenceID/organisations |
Yes |
| Issuer | DiligenceID/issuers |
Yes |
| Credential configuration | DiligenceID/credentialConfigurations |
No |
| Verification policy | DiligenceID/verificationPolicies |
No |
The resource envelope
Every single resource comes back in the same shape:
{
"id": "/management/issuers/workforce",
"name": "workforce",
"type": "DiligenceID/issuers",
"etag": "\"AAAAAAAAB9E=\"",
"properties": { },
"systemData": { "createdAt": "...", "lastModifiedAt": "..." }
}
| Field | What it is |
|---|---|
id |
The canonical path to this resource |
name |
Its logical identifier — what you pass to other calls |
type |
The resource type |
etag |
Concurrency token, or null where the resource has no version |
properties |
The resource's own fields |
systemData |
Lifecycle timestamps |
Separating identity from payload is what lets a client, an SDK and a documentation generator treat every resource the same way without knowing what any of them are.
id is built from the canonical path and the resource's own name. It carries no database identity, no Azure
subscription, resource group or deployment stamp — so it survives a migration and discloses nothing about the
infrastructure serving it.
systemData has timestamps and no actor attribution, because DiligenceID does not currently record who made a
change. Those fields are absent rather than guessed: an audit field that is wrong is worse than one that is
missing. Some resources report only lastModifiedAt, because they genuinely have no recorded creation time.
Collections
{ "value": [ ], "nextLink": null }
nextLink is currently always null — nothing paginates yet. It is in the contract so a client written today
already has the loop, and so adding pagination later is additive rather than breaking.
Do not construct a nextLink yourself. When it becomes non-null, follow it as an opaque URL.
There is no $filter, $select, $expand or $count. Those will appear when they are implemented and
tested, not before.
Concurrency
Issuers and organisations return an ETag. Quote it in If-Match on an update, and a stale tag returns 412
rather than overwriting someone else's change. See concurrency.
Versioning
Every request needs ?api-version=2026-08-30. See API versioning.
Reference
Every Management operation, generated from the contract.