# GET /api/v2/

List the resources this API exposes

- MCP id: discovery
- Scope: api:read
- Permission: none, the record's own rules still apply
- Rate cost: 1 unit, read bucket.
- Cache-Control: private, max-age=300

Returns one entry per resource available to your organisation, with its collection URL, its templated item URL, its permission prefix, the OpenAPI schemas that describe it and the operations it registers.

Resources belonging to a feature your organisation does not have are omitted. Not every entry is an endpoint you can call: the list does not depend on your token's scope or your permissions, so a listed operation can still answer `403`, and a `null` `path` or `item_path` means the resource has no such URL. It needs a valid token but no permission.

## Parameters
- view (string, optional): Which field set to render.
- X-Request-Id (header, optional): A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.
- If-None-Match (header, optional): The ETag a read is conditional on. A match is answered 304 with no body.

## Response 200
- name (string, required): Human-readable name of the resource collection.
- path (string or null, required): Absolute URL of the collection endpoint, or `null` where this resource registers no flat collection and is reached only through a parent or by id.
- item_path (string or null, required): Templated absolute URL of the single-resource endpoint, with the path parameter left as a `{placeholder}`. Null where the resource has no flat route at all.
- permission_prefix (string, required): The permission prefix this resource is gated on. It is the value after the class in an `api:{class}:{prefix}` token ability.
- summary_schema (string, required): JSON pointer to the OpenAPI component describing this resource in the `summary` view, which is what a collection returns by default.
- detail_schema (string, required): JSON pointer to the OpenAPI component describing the `detail` view, which is what a single-resource read and every write return.
- operations (array of string, required): The operations this resource registers, as `index`, `store`, `show`, `update`, `destroy` and `actions.{verb}`. A nested operation keeps its full identifier, so `work-items.comments.index` appears verbatim.

## Errors
- 403 forbidden-by-policy | insufficient-permission | insufficient-token-scope: Forbidden.
- 304 : Not modified.
- 400 idempotency-key-required | invalid-cursor | invalid-query-parameter | malformed-request | unsupported-parameter: Bad request.
- 401 token-expired | unauthenticated: Unauthenticated.
- 404 endpoint-not-found | resource-not-found: Not found.
- 406 not-acceptable: Not acceptable.
- 429 rate-limit-exceeded: Too many requests.
- 500 internal-error: Server error.
- 503 tenant-unavailable: Service unavailable.

## Example
```bash
curl -X GET \
  'https://<your-url>/api/v2' \
  -H 'Authorization: Bearer <token>' \
  -H 'Accept: application/json'
```
