> ## Documentation Index
> Fetch the complete documentation index at: https://hs-df36fa00.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List All the Registered Providers — GET /v1/providers

> Retrieve all registered providers on this ServiceNet node. Returns an items array of ProviderRecord objects including status and DID.

Returns every provider record stored on this node, including active and revoked entries.

## Request

```bash theme={null}
curl http://your-node:8042/v1/providers
```

No path parameters, query parameters, or request body required.

## Response

Returns a JSON object with a single `items` array. Each element is a `ProviderRecord`.

<ResponseField name="items" type="ProviderRecord[]" required>
  Array of all registered provider records.

  <Expandable title="ProviderRecord fields">
    <ResponseField name="schema_version" type="integer">
      Protocol schema version. Currently `1`.
    </ResponseField>

    <ResponseField name="provider_id" type="string">
      Unique human-readable identifier for the provider (e.g. `"acme-labs"`).
    </ResponseField>

    <ResponseField name="provider_did" type="string">
      Decentralized Identifier (DID) controlling this provider (e.g. `"did:key:z6Mk…"`).
    </ResponseField>

    <ResponseField name="display_name" type="string">
      Optional human-readable display name for the provider.
    </ResponseField>

    <ResponseField name="status" type="string">
      Provider lifecycle status. One of `"active"` or `"revoked"`.
    </ResponseField>

    <ResponseField name="registered_at" type="string">
      ISO 8601 timestamp of when the provider was registered.
    </ResponseField>

    <ResponseField name="revoked_at" type="string">
      ISO 8601 timestamp of when the provider was revoked. Omitted if not revoked.
    </ResponseField>

    <ResponseField name="revoke_reason" type="string">
      Human-readable reason for revocation. Omitted if not revoked.
    </ResponseField>
  </Expandable>
</ResponseField>

## Status codes

| Code     | Meaning                                                                                             |
| -------- | --------------------------------------------------------------------------------------------------- |
| `200 OK` | Request succeeded. Returns `{ "items": [...] }`. The array is empty if no providers are registered. |

## Example response

```json theme={null}
{
  "items": [
    {
      "schema_version": 1,
      "provider_id": "acme-labs",
      "provider_did": "did:key:z6MkhaXgBZDvotD1X9gRrYkM5Xq9jYQqK6d8r8bQdE1mV2Xa",
      "display_name": "Acme Labs",
      "status": "active",
      "registered_at": "2025-01-15T10:00:00Z"
    },
    {
      "schema_version": 1,
      "provider_id": "old-provider",
      "provider_did": "did:key:z6MkpTHR8VNsBxYAAWHut2GeaddA1bbm8CLcfJ4pKzvmWwLp",
      "status": "revoked",
      "registered_at": "2024-11-01T09:00:00Z",
      "revoked_at": "2025-03-10T14:22:00Z",
      "revoke_reason": "Provider decommissioned"
    }
  ]
}
```
