Scoring
List all scoring profiles for the authenticated organisation.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/scoring/profiles"[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "organizationId": "string", "type": "company", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }]Create a named, org-scoped scoring profile. A profile groups scoring rules for a
single object type (company or contact) and produces fit/urgency scores
for any object assigned to it. A single object can be assigned to multiple
profiles of the matching type.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Object type this profile will score
Value in
- "company"
- "contact"
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/scoring/profiles" \ -H "Content-Type: application/json" \ -d '{ "profileType": "company", "name": "string" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "organizationId": "string", "type": "company", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Scoring profile UUID
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v1/scoring/profiles/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "organizationId": "string", "type": "company", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}Deletes the profile and cascades to its rules, assignments, and score results.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Scoring profile UUID
uuidResponse Body
application/json
curl -X DELETE "https://example.com/v1/scoring/profiles/497f6eca-6276-4993-bfeb-53cbbbba6f08"Rename or re-describe a profile. Profile type is immutable.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Scoring profile UUID
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/scoring/profiles/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "organizationId": "string", "type": "company", "name": "string", "description": "string", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z"}Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Scoring profile UUID
uuidResponse Body
application/json
application/json
curl -X GET "https://example.com/v1/scoring/profiles/497f6eca-6276-4993-bfeb-53cbbbba6f08/rules"[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "signalTemplateId": "string", "dimension": "fit", "selector": "string", "pointValues": { "true": 0, "false": 0, "ranges": [ { "min": 0, "max": 0, "points": 0 } ], "choices": { "property1": 0, "property2": 0 }, "mode": "additive" }, "createdAt": "2019-08-24T14:15:22Z" }]Create or replace the rule for (profileId, signalTemplateId, dimension). Triggers
a recompute of every object assigned to the profile so existing scores reflect
the new rule immediately.
The shape of pointValues depends on the answer type of the referenced
signal template:
- boolean —
{ "true": 20, "false": -5 } - number / percentage / currency —
{ "ranges": [{ "min": 0, "max": 500, "points": 15 }] }(upper bound is exclusive) - list —
{ "choices": { "Salesforce": 10, "HubSpot": 8 }, "mode": "additive" }—modeis optional; supported values areadditive(default),best-match,contains-all,contains-none, andexact-match.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Scoring profile UUID
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Value in
- "fit"
- "urgency"
Drives shape validation for pointValues. Must match the referenced
signal template's answer type — mismatch surfaces as an
INVALID_POINT_VALUES 422 at write time rather than a silent
compute failure later.
Value in
- "boolean"
- "number"
- "percentage"
- "currency"
- "list"
Point-value mapping for one rule. The shape varies by the answer type of the
referenced signal template — exactly one of true/false, ranges, or choices
is populated.
Response Body
application/json
application/json
application/json
curl -X PUT "https://example.com/v1/scoring/profiles/497f6eca-6276-4993-bfeb-53cbbbba6f08/rules" \ -H "Content-Type: application/json" \ -d '{ "signalTemplateId": "string", "dimension": "fit", "answerType": "boolean", "pointValues": {} }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "signalTemplateId": "string", "dimension": "fit", "selector": "string", "pointValues": { "true": 0, "false": 0, "ranges": [ { "min": 0, "max": 0, "points": 0 } ], "choices": { "property1": 0, "property2": 0 }, "mode": "additive" }, "createdAt": "2019-08-24T14:15:22Z"}Removes the rule and triggers a recompute of every object assigned to the profile so scores never silently go stale.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Scoring profile UUID
uuidScoring rule UUID
uuidResponse Body
application/json
curl -X DELETE "https://example.com/v1/scoring/profiles/497f6eca-6276-4993-bfeb-53cbbbba6f08/rules/497f6eca-6276-4993-bfeb-53cbbbba6f08"Returns every profile a given object is assigned to.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Query Parameters
Object type (company or contact)
Value in
- "company"
- "contact"
For company use the domain (e.g. acme.com); for contact use the LinkedIn profile URL
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/scoring/assignments?objectType=company&objectId=string"[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "organizationId": "string", "objectType": "company", "objectId": "string", "assignedAt": "2019-08-24T14:15:22Z" }]Links one company or contact to a scoring profile. Triggers immediate score computation so the score appears without waiting for the next signal run. Returns 422 if the object type does not match the profile's configured type.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
uuidValue in
- "company"
- "contact"
For company, the domain; for contact, the LinkedIn profile URL.
1 <= length <= 500Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/scoring/assignments" \ -H "Content-Type: application/json" \ -d '{ "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "objectType": "company", "objectId": "string" }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "organizationId": "string", "objectType": "company", "objectId": "string", "assignedAt": "2019-08-24T14:15:22Z"}Links many company or contact IDs to a single profile in one call. Skips duplicates (returns only newly created rows) and triggers an immediate score computation per newly assigned object.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
uuidValue in
- "company"
- "contact"
Capped at 500 per request. Paginate larger lists by issuing multiple requests.
1 <= items <= 500Response Body
application/json
application/json
curl -X POST "https://example.com/v1/scoring/assignments/bulk" \ -H "Content-Type: application/json" \ -d '{ "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "objectType": "company", "objectIds": [ "string" ] }'[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "organizationId": "string", "objectType": "company", "objectId": "string", "assignedAt": "2019-08-24T14:15:22Z" }]Removes the assignment and cleans up any score results computed for this
(profile, object) pair.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Path Parameters
Profile assignment UUID
uuidResponse Body
application/json
curl -X DELETE "https://example.com/v1/scoring/assignments/497f6eca-6276-4993-bfeb-53cbbbba6f08"Returns one row per (profile, object, dimension) triple. Pass objectId
multiple times to read scores for several objects in a single call. The
response includes the per-rule contribution breakdown so the score is always
explainable.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Query Parameters
Value in
- "company"
- "contact"
Repeatable. For company use the domain; for contact use the LinkedIn profile URL.
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/scoring/scores?objectType=company&objectId=string"[ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a", "organizationId": "string", "objectType": "company", "objectId": "string", "dimension": "fit", "score": 0, "previousScore": 0, "contributions": [ { "ruleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "signalTemplateId": "string", "matchedValue": "string", "pointsEarned": 0, "maxPoints": 0 } ], "previousContributions": [ { "ruleId": "70af3071-65d9-4ec3-b3cb-5283e8d55dac", "signalTemplateId": "string", "matchedValue": "string", "pointsEarned": 0, "maxPoints": 0 } ], "signalCoverage": 0, "totalRules": 0, "computedAt": "2019-08-24T14:15:22Z", "version": 0 }]Triggers score recomputation for the given objects against the latest signal data. Idempotent — duplicate triggers for the same object are deduplicated automatically.
Returns 202 Accepted with {queued, failed} counts as soon as
dispatches finish (recomputation runs asynchronously; results become
available via GET /v1/scoring/scores). A non-zero failed means
some dispatches failed; if every dispatch fails the endpoint
returns 502 instead.
Authorization
ApiKeyAuth API key authentication using Bearer token. Format: sk_live_ followed by a secure random string.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Value in
- "company"
- "contact"
For company, domains; for contact, LinkedIn profile URLs.
Capped at 500 per request — paginate larger lists.
1 <= items <= 500Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/v1/scoring/compute" \ -H "Content-Type: application/json" \ -d '{ "objectType": "company", "objectIds": [ "string" ] }'{ "queued": 0, "failed": 0}