---
title: "The data explorer's query (the page /explore): the open layer of every product we drove (CC BY 4.0), filtered: each product's level, where our agent stopped (the first checkpoint it didn't pass on its own) with the stop's one evidence line and links, its date and method release, its derived tags, and the bot checks it met; with the set's levels and checkpoint funnel (\"n of N\", a share only from 10 products), the coverage line and the source. Filters combine; area, category, level and tag repeat (any area, category or level; every tag). format=csv: the same rows as CSV (also GET /api/explore.csv). Observation-level history is licensed: layer=history answers 403 licence_required. 300 requests per 10 minutes per IP; cached 60 seconds"
method: GET
path: "/api/explore"
tags: ["Directory"]
---

# The data explorer's query (the page /explore): the open layer of every product we drove (CC BY 4.0), filtered: each product's level, where our agent stopped (the first checkpoint it didn't pass on its own) with the stop's one evidence line and links, its date and method release, its derived tags, and the bot checks it met; with the set's levels and checkpoint funnel ("n of N", a share only from 10 products), the coverage line and the source. Filters combine; area, category, level and tag repeat (any area, category or level; every tag). format=csv: the same rows as CSV (also GET /api/explore.csv). Observation-level history is licensed: layer=history answers 403 licence_required. 300 requests per 10 minutes per IP; cached 60 seconds

`GET /api/explore`

## Request

- Base URL: `https://agentdrives.com`
- URL: `https://agentdrives.com/api/explore`
- Auth: none required

## Query parameters

- `area` string[]
- `category` string[]
- `capability` string
- `capability_state` 'done' | 'partial' | 'blocked' | 'untried'
- `tag` string[]
- `level` Level[]
- `stop` 'docs' | 'signup' | 'verify' | 'credentials' | 'first_call' | 'first_action' | 'pay' | 'cancel' | 'delete' | 'none'
- `checkpoint` 'docs' | 'signup' | 'verify' | 'credentials' | 'first_call' | 'first_action' | 'pay' | 'cancel' | 'delete'
- `outcome` 'passed' | 'help' | 'stopped' | 'na' | 'unreached' | 'untried'
- `vendor` string
- `vendor_outcome` 'stopped' | 'let_in'
- `from` string, date
- `to` string, date
- `release` string
- `sort` 'name' | 'level' | 'date' | 'category'
- `order` 'asc' | 'desc'
- `limit` integer
- `offset` integer
- `format` 'json' | 'csv'
- `layer` 'open'

## Response `200`

The matching products and their aggregates

- Explore
  - `layer` 'open'
  - `licence` string
  - `as_of` string, date, nullable: The newest publication in the open layer
  - `query` object
  - `of` integer: Every product in the open layer
  - `n` integer: The products that match
  - `coverage` string
  - `from` string, date, nullable
  - `to` string, date, nullable
  - `releases` string[]
  - `levels` object[]
    - `level` integer
    - `name` string
    - `n` integer
  - `funnel` object[]
    - `checkpoint` string
    - `name` string
    - `of` integer
    - `passed` integer
    - `help` integer
    - `stopped` integer
    - `na` integer
    - `unreached` integer
    - `untried` integer
    - `passed_share` integer, nullable: A percentage, from 10 products up
    - `line` string
  - `offset` integer
  - `limit` integer
  - `next_offset` integer, nullable
  - `rows` ExploreRow[]
    - `id` string, nullable: Its stable id (prd_…)
    - `slug` string
    - `name` string
    - `category` string, nullable
    - `category_name` string, nullable
    - `area` string
    - `area_name` string
    - `level` integer, nullable
    - `level_name` string, nullable
    - `entry` string, nullable: How an agent gets in: self-start, setup or closed
    - `entry_name` string, nullable
    - `stopped_at` string, nullable: Where it stopped, as its product page says (else the first checkpoint not passed on its own); null: none
    - `stopped_at_name` string, nullable
    - `stop_state` 'help' | 'stopped' | 'unreached' | 'untried' | 'na' | 'passed' | 'null', nullable: What happened at that checkpoint: help (a person did it), stopped, unreached, untried
    - `stop_state_name` string, nullable
    - `door` object: How often the agent got in on its own across the product's drives, when the row needs it (the drives disagree, or this drive and the level do)
      - `passed` integer
      - `tries` integer
      - `line` string
    - `tested_at` string, date
    - `release` string, nullable
    - `methodology` integer, nullable
    - `checkpoints` object
    - `tags` string[]
    - `tag_names` string[]
    - `routes` string[]
    - `bot` object[]
      - `vendor` string
      - `vendor_name` string
      - `outcome` 'stopped' | 'let_in'
      - `checkpoint` string, nullable
    - `capability_state` string, nullable: With a capability filter: done, partial, blocked or untried
    - `disclosure` string: Owner-paid drive, when the owner paid for it
    - `evidence` object, nullable
      - `checkpoint` string, nullable
      - `checkpoint_name` string, nullable
      - `line` string: One plain sentence; "" when stop_state says it all (not tried, nothing more known)
      - `date` string, nullable
      - `url` string
    - `url` string
    - `json` string
  - `source` string
  - `page` string

## Other responses

- `400`: unknown_parameter, invalid_value, too_many_values, invalid_arguments: the fix says which
- `403`: licence_required: a layer that isn't open
- `429`: rate_limited: wait Retry-After seconds
- `503`: unavailable: the store didn't answer

---

[API](https://skmtc.dev/agentdrives/apis/agentdrives-api.md) · [All operations](https://skmtc.dev/agentdrives/apis/agentdrives-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agentdrives/apis/agentdrives-api/revisions/ae3f2c04ff72?raw)
