---
title: "Validate Icp"
method: POST
path: "/validate/icp"
---

# Validate Icp

`POST /validate/icp`

Validate domains against an ICP description.

Generates a validation prompt from the ICP text, then runs it through DiscoGen
with a fixed output schema: fit (yes/partial/no), confidence (high/medium/low), reasoning.

Returns an async task — poll GET /discogen/status/{task_id} for results.

## Request body

- ValidateIcpRequest — Request body for POST /validate/icp.
  - `icp_text` string, required — Ideal customer profile description to validate domains against
  - `domains` string[], required — Domains to validate
  - `context_mode` 'website' | 'profile' | 'domain'
  - `integration_id` string, nullable — LLM provider integration UUID (omit for org default)
  - `web_search` boolean
  - `search_provider_id` string, nullable — Search provider integration UUID (omit for org default)

## Response `200`

Successful Response

- DiscoGenTaskResponse — Initial response from /discogen/process endpoint (202 Accepted).
  - `task_id` string, required — Unique task identifier for polling status
  - `column_name` union, required — AI-generated or user-provided column name(s) for results
    - string
    - string[]
  - `status` 'in_progress', required — Task status: in_progress
  - `total_domains` integer, required — Total number of domains to process

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-30** `11d1e74d88c7` — 1 breaking
  - the `domains` request property's minItems was increased to `1`

[Change history](https://skmtc.dev/discolike/apis/discolike-api/changes/validate/icp/post.md)

---

[API](https://skmtc.dev/discolike/apis/discolike-api.md) · [All operations](https://skmtc.dev/discolike/apis/discolike-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/discolike/discolike-api/revisions/11d1e74d88c7/schema)
