Base URL
All ICP API requests use:Authentication
All endpoints require a valid 1eye API key.$API_KEY as the environment variable containing your API key.
For more information, see Authentication.
Endpoints
All endpoints return JSON responses, except DELETE, which returns no response body.
ICP Object
An Ideal Customer Profile defines the characteristics of companies that are a strong fit for your business. For example, Snowbricks, a fictional cloud data platform, might target cloud-native SaaS companies and data-intensive enterprises that need scalable analytics, data engineering, and AI infrastructure.Fields
Example ICP
System-Managed Fields
1eye automatically generates and maintains additional fields.
These fields are read-only and cannot be modified through Create or Update requests.
ICP identifiers use the
icp_ prefix.
Example:
1. List ICPs
GET /v1/kb/icps
Retrieve a paginated list of ICPs configured in your workspace.
Query Parameters
Example Request
Example Response
200 OKPagination
List ICPs uses cursor-based pagination. When additional results are available,pagination.next_cursor contains a continuation token.
Pass this token using the cursor parameter to retrieve the next page.
next_cursor is null, there are no additional results.
For more information, see Pagination.
Behavior
- Returns ICPs belonging to the authenticated workspace.
- Excludes soft-deleted ICPs.
- Supports cursor-based pagination.
- Returns an empty
dataarray when no ICPs exist. - Does not return ICPs belonging to other workspaces.
2. Retrieve an ICP
GET /v1/kb/icps/{icp_id}
Retrieve a specific ICP using its unique identifier.
Path Parameters
Example Request
Example Response
200 OKBehavior
- Returns the complete ICP record.
- Includes system-generated metadata.
- The ICP must belong to the authenticated workspace.
- Returns
404 Not Foundif the ICP does not exist, has been deleted, or belongs to another workspace.
3. Create an ICP
POST /v1/kb/icps
Create a new Ideal Customer Profile in your workspace.
New ICPs become available for future Buyer evaluations and matching.
Request Body
Example Request
Example Response
201 CreatedBehavior
When an ICP is created:- 1eye generates a unique ICP ID.
- The ICP is associated with your workspace.
- The ICP becomes visible in the Knowledge Base.
- The ICP becomes available for future Buyer evaluations.
- The ICP can immediately be retrieved or updated through the API.
Validation
namemust not be empty.short_namemust not be empty.descriptionmust not be empty.short_namemust be unique among active ICPs in the workspace.- System-managed fields cannot be supplied in the request.
4. Update an ICP
PATCH /v1/kb/icps/{icp_id}
Update an existing ICP using its unique identifier.
The API supports partial updates. You only need to provide the fields you want to change.
Path Parameters
Request Body
At least one editable field must be supplied.
Example Request
Update the description to further qualify Snowbricks’ ideal customers.Example Response
200 OKPartial Updates
Only the fields supplied in the request are updated. For example:short_name or description.
Behavior
- Updates the existing ICP.
- Preserves fields not included in the request.
- Preserves the original ICP ID.
- Updates the modification timestamp.
- Reflects changes in the 1eye Console.
- Uses the updated ICP definition for future Buyer evaluations.
5. Delete an ICP
DELETE /v1/kb/icps/{icp_id}
Delete an ICP from your workspace.
Deleting an ICP performs a soft delete. The ICP is removed from active use but is not permanently erased from 1eye.
Path Parameters
Example Request
Response
204 No Content The response body is empty.What Happens When an ICP Is Deleted?
- The ICP is removed from the active Knowledge Base.
- The ICP no longer appears in List ICPs results.
- Retrieving the deleted ICP returns
404 Not Found. - The ICP is excluded from future Buyer evaluations.
- The deleted ICP is removed from active Buyer ICP associations.
- Historical ICP information is preserved internally.
Impact on Existing Buyers
Deleting an ICP does not delete Buyers previously associated with that ICP. For example, a Buyer at a software company might match multiple ICPs. Before deletion:Important Considerations
Deleting an ICP does not:- Delete Buyers.
- Delete Signals.
- Permanently erase historical evaluations.
- Delete previously synchronized CRM contacts.
- Automatically trigger new Buyer evaluations.
6. Error Handling
All ICP endpoints use the standard 1eye API error format.Example Error
Attempting to retrieve an ICP that does not exist: 404 Not FoundValidation Errors
Invalid requests return an error identifying the issue. Examples include:- Missing ICP name.
- Missing short name.
- Empty description.
- Duplicate short name.
- Invalid ICP ID.
- Attempting to modify system-managed fields.
7. Pagination & Rate Limits
Pagination
List ICPs supports the existing 1eye cursor-based pagination mechanism.- Default page size: 100.
- Maximum page size: 1,000.
- Use
cursorto retrieve subsequent pages. - A
nullnext cursor indicates the end of the collection.
Rate Limits
ICP API requests count toward your workspace’s API rate limits. Rate limits are shared across all API keys belonging to the same workspace. If a limit is exceeded, the API returns: 429 Too Many Requests Follow theRetry-After header when provided.
See Rate Limits.
8. How ICP Changes Affect Buyer Intelligence
ICPs help 1eye determine which companies match your ideal customer profiles. The Knowledge Base is used by the REEM pipeline: Resolve → Enrich → Evaluate → MatchExisting Buyer Evaluations
Creating or updating an ICP does not automatically reevaluate existing Buyers. Existing evaluations are preserved until the normal REEM pipeline processes them again.Deleting an ICP
Deleting an ICP removes it from active Buyer matching without deleting underlying Buyer records or historical Signals.Console Synchronization
All changes are reflected in the 1eye Console.- ICPs created through the API appear in the Console.
- Console updates are reflected in API responses.
- Deleted ICPs no longer appear in active Knowledge Base views.
9. Best Practices
Use Descriptive ICP Names
Choose names that clearly identify the customer segment. For Snowbricks, examples include:- Cloud-Native SaaS Companies
- Data-Intensive Enterprises
- AI-Native Startups
- Financial Services Data Platforms
Use Consistent Short Names
Short names should be concise, descriptive, and unique within your workspace. Examples:Write Detailed Descriptions
ICP descriptions should explain what makes a company a strong potential customer. Useful information includes:- Industry and business model.
- Company size and geographic focus.
- Existing technology infrastructure.
- Business challenges and technical requirements.
- Relevant buying triggers.
- Characteristics that indicate strong product fit.