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

# Panels and external-panel integrations

> Feasibility tools, paid panel guidance, and a customer-supplied panel bridge for BYOP studies.

| Tool | Description |
| - | - |
| `submit_feasibility_request` | Submit a low-incidence or specialized audience for manual review |
| `list_feasibility_requests` | List the account's feasibility requests newest-first |
| `get_feasibility_request` | Fetch one request and its status or estimate |
| `cancel_feasibility_request` | Withdraw a request that is still pending |

## Bring Your Own Panel

This is a provider integration for a **BYOP study**, distinct from adding individual participants with `create_participants`. The external provider sends respondents through an entry URL with its respondent ID. User Intuition records each session and redirects the respondent to the provider's completion or screen-out URL when the interview ends. It does not launch or charge for User Intuition's paid panel.

| Tool | Description |
| - | - |
| `get_external_panel` | Read the configured entry URL, ID parameter mapping, and outcome redirects |
| `configure_external_panel` | Create or replace the configuration for one BYOP study |
| `regenerate_external_panel_token` | Issue a new entry URL and immediately invalidate the old one |
| `delete_external_panel` | Disable the entry URL; existing interviews remain |

Create and customize a study with `recruiting_method: "byop"`, then use `get_study` to confirm it is provisioned and review the current plan. `configure_external_panel` requires absolute HTTP(S) completion and screen-out redirect URLs. You can also set the provider's respondent ID query parameter and placeholder, session and external study ID mappings, and quota-full or technical-failure redirects. The response includes `entry_url`; have the human verify the plan, parameter mapping, and redirects before giving that link to the provider. Changing the configuration with the same PUT keeps the entry token. Token regeneration changes the URL, so the provider must receive the replacement link before the old one is used again. Use a fresh `idempotency_key` for each regeneration and reuse it if its result is uncertain.

For the same operations over REST, see [External panels](/api-reference/external-panels).

## Before a panel launch

1. Call `get_study` and confirm `recruiting_method` is `panel`.
2. Return the complete persisted plan, audience, and screeners from `get_study`; obtain explicit approval of that exact version.
3. Ask the user to choose the launch country explicitly. One `launch_panel` call fields exactly one country; it cannot field a region or a list of countries.
4. Read `userintuition://catalog/panel-countries` and verify that the country supports the study's language. If your client cannot read MCP resources, use the authenticated `GET /api/public/v1/panel-countries/` endpoint.
5. Call `estimate_panel` with that `country_code`; show the resolved country, language, cost, and heuristic timeline.
6. Launch with the returned `estimate_id` using the same country only after explicit approval of the current plan and complete estimate. Supply a new `idempotency_key` for this approved launch and reuse that key with identical inputs if the call times out. Expired estimates and changes to relevant study, pricing, balance, or launch inputs require a fresh estimate. Client tool permissions and approval of an earlier plan version do not count.

For a brief that names multiple countries, ask the user to select one country or create separately approved country-specific studies or launches. Never allow an omitted country to silently become a different market.

Direct launch requires `incident_rate >= 10`. Use `submit_feasibility_request` for lower-incidence or specialized audiences. A feasibility request is a persistent manual-review record; use `cancel_feasibility_request` to withdraw it while pending.

Feasibility request status is `received`, `responded`, or `cancelled`. Only a pending request can be cancelled. Panel country responses use uppercase country codes and lowercase language codes; use a lowercase code such as `en` to filter by language.

Describe audience criteria in ordinary language through `customize_study`. The backend matches suitable criteria such as age or household income to canonical targeting attributes and decides when a custom screener is needed. Targeting attributes are not accepted by `launch_panel` through MCP.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.