---
title: "Find organizations with observed app adoption"
method: GET
path: "/v1/admin/opportunities"
tags: ["Admin"]
---

# Find organizations with observed app adoption

`GET /v1/admin/opportunities`

## Request

- Base URL: `https://api.openworklabs.com`
- URL: `https://api.openworklabs.com/v1/admin/opportunities`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Platform-admin-only, server-paginated organization signals. Defaults to two joined human users and observed organization-scoped telemetry in the last 30 days, most recent first. Company-email signals use verified addresses excluding known personal providers; they do not establish employment. Cloud setup counts active, non-deleted skill and MCP metadata. Missing telemetry does not imply inactivity. No content, credentials, billing lookups or external enrichment.

## Query parameters

- `days` '7' | '30' | '90'
- `minMembers` '1' | '2' | '5' | '10'
- `companyEmail` '0' | '1'
- `setup` 'any' | 'skills' | 'mcp' | 'both'
- `sort` 'recent' | 'active' | 'members'
- `search` string
- `limit` integer
- `cursor` string
- `offset` string

## Response `200`

Organization opportunities returned.

- AdminOpportunities
  - `from` string, date-time, required
  - `to` string, date-time, required
  - `generatedAt` string, date-time, required
  - `nextCursor` string, nullable, required: Pass as cursor with the same filters and sort to continue; null on the last page.
  - `organizations` object[], required
    - `id` string, required
    - `name` string, required
    - `slug` string, required
    - `members` integer, required
    - `activeMembers` integer, required
    - `lastActiveAt` string, date-time, required
    - `companyEmailMembers` integer, required
    - `companyDomain` string, nullable, required
    - `companyDomainCount` integer, required
    - `skills` integer, required
    - `mcpConnections` integer, required
  - `page` object, required
    - `limit` integer, required
    - `total` integer, required
    - `returned` integer, required
    - `hasMore` boolean, required

## Other responses

- `400`: Invalid report filters.
- `401`: Authentication required.
- `403`: Platform admin access required.

## Changes

- **2026-10-20** `4466ec930cde`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openworklabs/apis/den-api/changes/v1/admin/opportunities/get.md)

---

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