---
title: "List AI tools in use."
method: GET
path: "/tools"
---

# List AI tools in use.

`GET /tools`

## Query parameters

- `period` 'last_7d' | 'last_30d' | 'last_90d'
- `status` 'shadow' | 'approved'
- `sort` '-users' | 'users' | '-sessions' | 'sessions'
- `limit` integer
- `cursor` string

## Headers

- `Oximy-Version` '2026-06-29'

## Response `200`

Tools list.

- object
  - `object` 'list', required
  - `request_id` string, required
  - `as_of` string, date-time, required
  - `data` Tool[], required
    - `id` string, required
    - `object` 'tool', required
    - `name` string, required
    - `domain` string, nullable
    - `vendor` string, nullable
    - `category` string
    - `status` string, required
    - `lifecycle` string
    - `users` number, required
    - `active_users_7d` number
    - `sessions` number, required
    - `sessions_7d` number
    - `sessions_per_user` number
    - `first_seen` string, date-time
    - `last_active` string, date-time
    - `sources` string[], required
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required

## Other responses

- `304` — Not modified. Conditional GET responses do not consume rate-limit quota.
- `400` — Invalid parameters.
- `401` — Missing or invalid API key.
- `403` — The API key does not have the required scope.
- `404` — The requested resource was not found in the calling key's workspace scope.
- `409` — Conflict or idempotency replay conflict.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error.

---

[API](https://skmtc.net/oximy/apis/oximy-public-api.md) · [All operations](https://skmtc.net/oximy/apis/oximy-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oximy/oximy-public-api/revisions/36cc62fb2aaf/schema)
