Summary and recommendation
6sense exposes a data enrichment and intelligence API - not an admin or identity API. There is no documented endpoint to create, read, update, or delete platform users programmatically. All user lifecycle management must be performed through the UI or JIT SSO.
The available API surface covers contact enrichment (POST https://api.6sense.com/v2/enrichment/people), bulk people search (POST https://api.6sense.com/v2/search/people), company firmographics, lead scoring, IP-to-account identification (https://epsilon.6sense.com/v3/company/details), and a partner-only Segments endpoint.
Authentication is via a 40-character Bearer token generated in Settings > API Token Management; tokens are org-scoped, not user-scoped, and must be copied immediately on generation as they are not shown again. The Segments API token cannot be self-generated and requires contacting 6sense support directly.
Stitchflow connects to 6sense through an MCP server with ~100 deep IT/identity integrations, which handles the manual provisioning gap until native SCIM is available.
API quick reference
| Has user API | No |
| Auth method | API Token (Bearer token in Authorization header: 'Token {your_api_token}') |
| Base URL | Official docs |
| SCIM available | No |
| SCIM plan required | Enterprise (when available) |
Authentication
Auth method: API Token (Bearer token in Authorization header: 'Token {your_api_token}')
Setup steps
- Log in to the 6sense platform as Primary Admin, Admin, or Operations user.
- Navigate to Settings > API Token Management.
- Click 'Generate New API Token'.
- Select the API group (e.g., Company Identification, Enrichment) and assign a token name (max 26 characters).
- Optionally select an integration platform from the partner ecosystem dropdown.
- For Company Identification API only: add an Allowed Domains allowlist to restrict client-side usage.
- Click Generate and copy the 40-character alphanumeric token immediately - it is not shown again.
- For Segments API tokens, contact 6sense support directly; self-service generation is not available.
- Pass the token in every API request header as: Authorization: Token {your_api_token}.
- Rotate tokens every 90 days per 6sense security best practice.
Required scopes
| Scope | Description | Required for |
|---|---|---|
| Company Identification API | Identifies anonymous website visitors by IP address and returns company firmographics, segments, and scores. | IP-to-account identification; requires 6sense RAIM Platform access and a dedicated token. |
| People Enrichment API | Enriches contact records with email, phone, title, seniority, job function, and company firmographics. | Contact-level enrichment in CRM/MAP; requires Enrichment API Credits. |
| People Search API | Bulk discovery of B2B contacts by job title, seniority, industry, domain, location, and other filters. | Outbound prospecting and buying-group discovery; does NOT deduct API credits. |
| Company Firmographics API | Returns firmographic data (industry, employee range, revenue range, location) for a given company. | Account enrichment; requires Enrichment API Credits. |
| Lead Scoring and Firmographics API | Returns predictive scores alongside firmographic data for a lead. | Lead scoring workflows; requires Enrichment API Credits. |
| Segments API | Returns segment membership for accounts; only accessible by authorized partners on behalf of customers. | Segment-based orchestration; token must be requested via 6sense support. |
User object / data model
| Field | Type | Description | On create | On update | Notes |
|---|---|---|---|---|---|
| id | string (UUID) | Unique 6sense internal identifier for the person record. | system-generated | immutable | Returned as 'peopleId' in People Search; used as input to People Enrichment API. |
| string | Work email address of the contact. | required input for enrichment lookup | read-only from API | Not returned by People Search API; must use People Enrichment API to retrieve. | |
| emailConfidence | string (grade: A+, A, B, etc.) | Confidence grade for the email address validity. | system-assigned | read-only | Returned by People Enrichment API. |
| fullName | string | Full name of the contact. | system-populated | read-only | |
| firstName | string | First name. | system-populated | read-only | Also the only SSO JIT-mapped attribute besides email and lastName. |
| lastName | string | Last name. | system-populated | read-only | Also the only SSO JIT-mapped attribute besides email and firstName. |
| title | string | Job title of the contact. | system-populated | read-only | |
| function | string | Job function / department category (e.g., Product Management, Engineering). | system-populated | read-only | Used as a filter in People Search. |
| level | string | Seniority level (e.g., Senior, Director, VP). | system-populated | read-only | Used as a filter in People Search. |
| division | string | Organizational division. | system-populated | read-only | |
| skills | array of strings | Professional skills associated with the contact. | system-populated | read-only | Returned by People Enrichment API. |
| education | array of objects | Educational background. | system-populated | read-only | Returned by People Enrichment API; may be empty array. |
| phone / mobilePhone | string | Company phone and mobile numbers. | system-populated | read-only | Only available via People Enrichment API, not People Search. |
| domain | string | Company domain used as a lookup/filter key. | required input for People Search | read-only | |
| country / state | string | Geographic location of the contact. | system-populated | read-only | Used as filters in People Search. |
| industryNAICS | string | NAICS industry code for the contact's company. | system-populated | read-only | Used as a filter in People Search. |
Core endpoints
People Enrichment (v2)
- Method: POST
- URL:
https://api.6sense.com/v2/enrichment/people - Watch out for: Deducts Enrichment API Credits per record. Never expose this token client-side; server-to-server only.
Request example
POST /v2/enrichment/people
Authorization: Token {your_api_token}
Content-Type: application/x-www-form-urlencoded
email=user%40domain.com
Response example
{
"person": {
"id": "d121d17f-fc27-4edc-9d19-ce83137c8213",
"email": "user@domain.com",
"emailConfidence": "A+",
"firstName": "Jane",
"lastName": "Doe",
"title": "VP Marketing",
"function": "Marketing",
"level": "VP"
}
}
People Enrichment (v1 legacy)
- Method: POST
- URL:
https://api.6sense.com/v1/enrichment/people - Watch out for: Legacy version; 6sense may deprecate older versions with advance notice. Check version support list in API portal.
Request example
POST /v1/enrichment/people
Authorization: Token {your_api_token}
Content-Type: application/x-www-form-urlencoded
email=user%40domain.com
Response example
{ "person": { "email": "user@domain.com", "firstName": "Jane" } }
People Search (bulk contact discovery)
- Method: POST
- URL:
https://api.6sense.com/v2/search/people - Watch out for: Does NOT return email or phone. Must pass peopleId to People Enrichment API to get contact details. Does not deduct API credits.
Request example
POST /v2/search/people
Authorization: Token {your_api_token}
Content-Type: application/json
{"domain":"acme.com","jobTitle":"VP","pageNumber":1,"pageSize":25}
Response example
{
"people": [
{ "peopleId": "abc123", "firstName": "John", "title": "VP Sales" }
],
"totalCount": 42
}
People Search (domain dictionary)
- Method: GET
- URL:
https://api.6sense.com/v1/dictionary/peopleSearch - Watch out for: Pagination via pageNumber/pageSize query params. Max pageSize not officially documented.
Request example
GET /v1/dictionary/peopleSearch?domainName=acme.com&pageNumber=1&pageSize=100
Authorization: Token {your_api_token}
Response example
{ "people": [ { "peopleId": "xyz789", "title": "Director" } ] }
Company Identification (IP-to-account)
- Method: GET/POST
- URL:
https://epsilon.6sense.com/v3/company/details - Watch out for: Client-side use allowed only for this endpoint (via Webtag config). Add domain allowlist to restrict token usage. Requires 6sense RAIM Platform.
Request example
GET /v3/company/details?ip=1.2.3.4
Authorization: Token {your_api_token}
Response example
{
"company": {
"name": "Acme Corp",
"industry": "Software",
"segments": ["Enterprise ABM"]
}
}
Company Firmographics / Lead Scoring
- Method: POST
- URL:
https://scribe.6sense.com/v2/people/Enrichment - Watch out for: Deducts Enrichment API Credits. Score and Segment data are hidden by default; must be enabled in API Token Settings in the platform.
Request example
POST /v2/people/Enrichment
Authorization: Token {your_api_token}
Content-Type: application/json
{"email":"user@domain.com"}
Response example
{ "company": { "industry": "Software", "employeeRange": "1000-5000" }, "scores": {} }
Lead Scoring and Firmographics (full)
- Method: POST
- URL:
https://scribe.6sense.com/v2/people/full - Watch out for: Requires 6sense Platform or Sales Intelligence package. Deducts Enrichment API Credits.
Request example
POST /v2/people/full
Authorization: Token {your_api_token}
Content-Type: application/json
{"email":"user@domain.com"}
Response example
{ "person": {}, "company": {}, "scores": { "buyingStage": "Decision" } }
Segments (partner-only)
- Method: POST
- URL:
https://scribe.6sense.com/v2/company/segments - Watch out for: Only accessible by authorized partners on behalf of customers. Token must be requested via 6sense support, not self-service.
Request example
POST /v2/company/segments
Authorization: Token {your_api_token}
X-6s-CustomID: {partner_name-partner_api_token}
Content-Type: application/json
{"domain":"acme.com"}
Response example
{ "segments": [ { "id": "seg_001", "name": "Enterprise ABM" } ] }
Rate limits, pagination, and events
- Rate limits: A single global rate limit applies across all 6sense APIs for a given token/org.
- Rate-limit headers: No
- Retry-After header: No
- Rate-limit notes: Throttled requests fail outright. Limit increases require contacting your CSM. There is also a credit-based consumption model: Enrichment APIs (People Enrichment, Company Firmographics, Lead Scoring) deduct API credits per record; People Search and Lead Scoring do not deduct credits. When credits are exhausted the API stops working unless 'Allow APIs to work when credits are exhausted' is toggled on, after which overages are billed monthly. No official rate-limit response headers documented publicly.
- Pagination method: offset
- Default page size: 0
- Max page size: 0
- Pagination pointer: pageNumber / pageSize (confirmed for People Search; e.g., /v1/dictionary/peopleSearch?domainName=6sense.com&pageNumber=1&pageSize=999)
| Plan | Limit | Concurrent |
|---|---|---|
| All plans (default) | 100 requests per minute | 0 |
- Webhooks available: No
- Webhook notes: No webhook capability is documented in official 6sense API documentation. The 6sense API is a pull-based (request/response) model only.
- Alternative event strategy: Poll the People Search or Company Identification APIs on a scheduled basis to detect changes. Use 6sense Orchestrations within the platform to trigger downstream actions (e.g., CRM field updates) based on intent signal changes.
SCIM API status
- SCIM available: No
- SCIM version: Not documented
- Plan required: Enterprise (when available)
- Endpoint: Not documented
Limitations:
- 6sense has officially paused all new SCIM enablement until Q4 2026 while building a more standardized SCIM solution.
- Only JIT (Just-in-Time) provisioning is currently available via SAML SSO - users are created on first login only.
- JIT attribute mapping is limited to email, first name, and last name only.
- No automated deprovisioning or role-change sync is possible without SCIM.
- SAML SSO is available now via Settings > Security & Compliance > Identity and Access > Authentication (SSO portal powered by Descope).
- Supported IdPs for guided SSO setup: Okta, Azure AD (Entra), OneLogin, and General SAML 2.0 for unsupported IdPs.
- IdP NameID must be sent in email address format for SSO to function correctly.
Common scenarios
Three integration patterns are well-supported by the current API.
First, CRM lead enrichment: POST an inbound lead's email to the v2 People Enrichment endpoint to retrieve title, seniority, function, phone, and company firmographics, then write results back to the CRM record - each call deducts one Enrichment API Credit, and the API stops responding if credits are exhausted and the overage toggle is disabled.
Second, buying-group discovery: POST domain and persona filters to the People Search endpoint (no credits consumed), paginate results via pageNumber/pageSize, collect peopleId values, then make a second Enrichment API call per contact to retrieve email and phone - this two-step pattern means credit consumption is proportional to the enrichment subset, not the full search result set.
Third, user onboarding and offboarding has no API path; the documented scenario requires manual UI steps in Settings > User Management, with JIT SSO as the only partial automation available, and full SCIM support deferred to Q4 2026.
Enrich a CRM lead with contact and firmographic data
- Generate an Enrichment API token in Settings > API Token Management (select Enrichment as the API group).
- When a new lead arrives in your CRM, extract the email address.
- POST the email to https://api.6sense.com/v2/enrichment/people with Authorization: Token {token} header.
- Parse the response for title, function, level, phone, and company firmographics.
- Write enriched fields back to the CRM lead/contact record.
Watch out for: Each enrichment call deducts one Enrichment API Credit. Monitor credit balance via Reports > Usage > API & SFF. If credits are exhausted and the overage toggle is off, the API returns an error.
Discover buying-group contacts for a target account
- Generate a People Search token (self-service, no credits consumed).
- POST to https://api.6sense.com/v2/search/people with domain, jobTitle, level, and function filters.
- Paginate results using pageNumber/pageSize parameters.
- Collect peopleId values from the response.
- For each peopleId requiring email/phone, POST to https://api.6sense.com/v2/enrichment/people - this step deducts Enrichment Credits.
- Load enriched contacts into your CRM or sequencing tool.
Watch out for: People Search does not return email or phone directly. A second Enrichment API call is required and will consume credits. Stay within the 100 req/min rate limit across both calls.
Onboard / offboard a 6sense platform user (no SCIM available)
- Onboarding: Log in as Primary Admin, navigate to Settings > User Management > Users, invite the user by email, and assign an RBAC role (Primary Admin, Admin, Operations, Marketing, View Only, Insights, or Sales).
- If SAML SSO is configured: the user will be JIT-provisioned on first login with email, first name, and last name mapped from the IdP assertion.
- Offboarding: Manually deactivate or remove the user in Settings > User Management. There is no automated deprovisioning via SCIM until Q4 2026.
- Deactivate any API tokens associated with the departing user's integrations in Settings > API Token Management.
Watch out for: SCIM is paused until Q4 2026. JIT provisioning only creates users on first login and does not handle role changes, department transfers, or deprovisioning. Manual offboarding is required for all users. The platform does not enforce license seat limits, so over-provisioning is possible without a system-level block.
Why building this yourself is a trap
The primary integration trap is assuming the 6sense API can manage platform users - it cannot. The API is strictly a B2B data layer.
A second trap is the split credit model: People Search and Lead Scoring do not deduct credits, but People Enrichment, Company Firmographics, and the full Lead Scoring endpoint do, and the deduction behavior is not surfaced in API response headers - teams must monitor credit balance separately via Reports > Usage > API & SFF.
Score and Segment fields are hidden by default in all API responses and must be explicitly enabled per token in Settings > Integrations > API Token > Score/Segment Settings; omitting this step produces silently incomplete responses.
The Company Identification API uses a different base host (epsilon.6sense.com) than enrichment endpoints (scribe.6sense.com / api.6sense.com), which breaks environment-level allowlisting if not accounted for. The global rate limit is 100 requests per minute with no retry-after headers documented, and throttled requests fail outright rather than queuing - callers must implement their own backoff logic.
Finally, Enrichment API tokens must never be exposed client-side; only the Company Identification endpoint is designed for client-side use via Webtag configuration.
Automate 6sense workflows without one-off scripts
Stitchflow builds and maintains identity workflows for your exact setup. We cover every app, including the ones without APIs, and run deterministic trigger-to-report workflows with human approvals where they matter.