> ## Documentation Index
> Fetch the complete documentation index at: https://docs.astral.global/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /verify/v0/plugins

> List available verification plugins

<Warning>
  **Research Preview** — This API is under development.
</Warning>

# List plugins

List the verification plugins available on the service. Each plugin represents a proof-of-location system that can produce [LocationStamps](/api-reference/types#locationstamp).

```
GET /verify/v0/plugins
```

## Example request

<CodeGroup>
  ```bash cURL theme={null}
  curl https://staging-api.astral.global/verify/v0/plugins \
    -H "X-API-Key: your-api-key"
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch('https://staging-api.astral.global/verify/v0/plugins', {
    headers: { 'X-API-Key': 'your-api-key' }
  });

  const { plugins } = await response.json();
  ```
</CodeGroup>

## Response

<ResponseField name="plugins" type="Plugin[]" required>
  Array of available plugins.
</ResponseField>

### Plugin object

| Field          | Type       | Description                                               |
| -------------- | ---------- | --------------------------------------------------------- |
| `name`         | `string`   | Plugin identifier (e.g., `"proofmode"`, `"witnesschain"`) |
| `version`      | `string`   | Semver version string                                     |
| `environments` | `string[]` | Runtime environments the plugin supports                  |
| `description`  | `string`   | Human-readable description                                |

<Note>
  **ProofMode is working today** — the Verify service implements ProofMode stamp verification. The other plugins listed (`witnesschain`, `gpsd`, `geoclue`, `wifi-mls`, `ip-geolocation`) are **experimental**: their interfaces are defined and early verification logic exists, but they aren't production yet. We're keen to develop new proof-of-location plugins with partners — [get in touch](mailto:contact@astral.global). On the client side, the SDK bundles `MockPlugin` for development; ProofMode evidence comes from the ProofMode app.
</Note>

## Example response

```json theme={null}
{
  "plugins": [
    {
      "name": "proofmode",
      "version": "0.1.0",
      "environments": ["mobile", "server"],
      "description": "Device attestation with hardware-backed cryptographic signatures"
    },
    {
      "name": "witnesschain",
      "version": "0.1.0",
      "environments": ["server", "node"],
      "description": "WitnessChain proof-of-location via network latency triangulation"
    },
    {
      "name": "gpsd",
      "version": "0.1.0",
      "environments": ["server", "node"],
      "description": "GPS daemon (gpsd) location readings"
    },
    {
      "name": "geoclue",
      "version": "0.1.0",
      "environments": ["server", "node"],
      "description": "GeoClue geolocation service"
    },
    {
      "name": "wifi-mls",
      "version": "0.1.0",
      "environments": ["server", "node"],
      "description": "Wi-Fi positioning via Mozilla Location Service"
    },
    {
      "name": "ip-geolocation",
      "version": "0.1.0",
      "environments": ["server", "node"],
      "description": "IP-based geolocation lookup"
    }
  ]
}
```

## Errors

| Type           | Status | Description                    |
| -------------- | ------ | ------------------------------ |
| `internal`     | 500    | Failed to retrieve plugin list |
| `rate-limited` | 429    | Too many requests              |
| `unauthorized` | 401    | Invalid or missing API key     |

<Card title="SDK: Location proofs" icon="code" href="/sdk/location-proofs">
  See the SDK documentation for client-side usage
</Card>
