GET /v1/icps/{id}
| Call | GET /v1/icps/{id} |
| Price | free |
| Scope | decisions:write |
| Operation id | getIcp |
What it does
Section titled “What it does”One ICP profile with its segment, summary status and the current threshold of every decision. Call it to see what answer will apply. Free. Scope: decisions:write.
Example request
Section titled “Example request”Copy it as curl. Set VERDICT_API_KEY first; uuidgen makes a fresh Idempotency-Key.
curl -X GET 'https://api.askverdict.io/v1/icps/icp_01JC3Z4Y8R9K2M5N7P1Q3S5T7V' \ -H "Authorization: Bearer $VERDICT_API_KEY"Example response
Section titled “Example response”200: The profile.
{ "id": "icp_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "project_id": "prj_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "name": "RIAs under $1B", "description": "US registered investment advisers with under $1B in assets and fewer than 50 staff. We sell trade reconciliation software to their operations lead.", "filters": { "firm_types": [ "investment_adviser" ], "size_bands": [ "micro", "small" ], "countries": [ "US" ] }, "segment": { "industry_group": "asset_management", "size_band": "small" }, "summary_status": "ready", "thresholds": { "qualify_firm": { "value": 0.6, "source": "calibrated" }, "score_signal": { "value": 0.55, "source": "calibrated" }, "pick_person": { "value": 0.5, "source": "calibrated" }, "triage_reply": { "value": 0.65, "source": "calibrated" }, "right_person": { "value": 0.7, "source": "custom" }, "should_send": { "value": 0.6, "source": "calibrated" } }, "created_at": "2026-11-07T14:00:00Z", "updated_at": "2026-11-07T14:20:00Z"}Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
id |
path | string | yes | The ICP profile id. |
x-verdict-version |
header | string | no | API version to use, a date. Defaults to the version current when the key was created. The current version is 2026-11-01. |
Response fields (200)
Section titled “Response fields (200)”Schema Icp.
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | The ICP profile id. |
project_id |
string | yes | Project the profile belongs to. |
name |
string | yes | Name. |
description |
string | yes | Plain-text description. |
filters |
IcpFilters | yes | Optional structured filters that sharpen the plain-text profile. |
filters.firm_types |
array of enum: “operating_company”, “investment_adviser”, “broker_dealer”, “investment_fund”, “nonprofit”, “public_body”, “other”, “unknown” | no | Firm types to target. |
filters.size_bands |
array of enum: “micro”, “small”, “medium”, “large”, “enterprise”, “unknown” | no | Size bands to target. |
filters.countries |
array of string | no | Headquarters countries to target. |
filters.exclude_countries |
array of string | no | Headquarters countries to exclude. |
filters.exclude_domains |
array of string | no | Firms to exclude by domain (for example existing customers). |
filters.event_types |
array of enum: “filing”, “registration”, “officer_change”, “ownership_change”, “lei_change”, “address_change”, “fund_raise”, “insider_trade”, “patent_filing”, “litigation”, “news_mention”, “repo_activity”, “hiring_aggregate” | no | Event types that signal buying intent for this ICP. |
segment |
object | yes | Calibration segment of the profile (spec 6.4). |
segment.industry_group |
string or null | yes | Industry group assigned at summarization. |
segment.size_band |
enum: “micro”, “small”, “medium”, “large”, “enterprise”, “unknown”, null | yes | Size band assigned at summarization. |
summary_status |
enum: “pending”, “ready”, “failed” | yes | Status of the one-time summarization. |
thresholds |
Thresholds | yes | Decision thresholds, one per decision. |
thresholds.qualify_firm |
object | yes | Threshold for qualify_firm. |
thresholds.qualify_firm.value |
number | yes | The threshold answer applies to p. |
thresholds.qualify_firm.source |
enum: “calibrated”, “custom” | yes | Calibrated default or your own value. |
thresholds.score_signal |
object | yes | Threshold for score_signal. |
thresholds.score_signal.value |
number | yes | The threshold answer applies to p. |
thresholds.score_signal.source |
enum: “calibrated”, “custom” | yes | Calibrated default or your own value. |
thresholds.pick_person |
object | yes | Threshold for pick_person. |
thresholds.pick_person.value |
number | yes | The threshold answer applies to p. |
thresholds.pick_person.source |
enum: “calibrated”, “custom” | yes | Calibrated default or your own value. |
thresholds.triage_reply |
object | yes | Threshold for triage_reply. |
thresholds.triage_reply.value |
number | yes | The threshold answer applies to p. |
thresholds.triage_reply.source |
enum: “calibrated”, “custom” | yes | Calibrated default or your own value. |
thresholds.right_person |
object | yes | Threshold for right_person. |
thresholds.right_person.value |
number | yes | The threshold answer applies to p. |
thresholds.right_person.source |
enum: “calibrated”, “custom” | yes | Calibrated default or your own value. |
thresholds.should_send |
object | yes | Threshold for should_send. |
thresholds.should_send.value |
number | yes | The threshold answer applies to p. |
thresholds.should_send.source |
enum: “calibrated”, “custom” | yes | Calibrated default or your own value. |
created_at |
string (date-time) | yes | When the profile was created. |
updated_at |
string (date-time) | yes | When the profile last changed. |
Errors
Section titled “Errors”Errors are RFC 9457 problem details and are never billed. Branch on type. See Errors.
| Status | Meaning |
|---|---|
400 |
Invalid request: malformed JSON, an unknown field, a failed constraint or a size limit (invalid_request). |
401 |
Missing, malformed, revoked or expired API key, or a bad webhook signature (unauthorized). |
403 |
The key lacks the scope this operation needs (forbidden_scope). |
404 |
The resource does not exist in this organization (not_found). |
429 |
Rate limited (rate_limited). Wait Retry-After seconds. |
500 |
Unexpected server error (internal). Not billed; retry with the same Idempotency-Key. |
Try it
Section titled “Try it”Open the interactive reference to send this request from the browser. The full document is at /openapi.json.