#Authentication and target
Use a workspace secret API key: Authorization: Bearer sk_your_api_key. Public write keys and channel keys cannot read frameworks. The key determines the workspace. The CRM must be connected and the record must be available in that workspace's synced CRM data.
Both endpoints require query parameters objectType (deal or account, singular) and objectId (the CRM record ID). URL-encode IDs. Use the normalized object type, not a provider-specific name such as Opportunity.
#Applicable definitions
GET https://api.bigmind.ai/v1/frameworks/applicable?objectType=deal&objectId=deal-123
curl --get 'https://api.bigmind.ai/v1/frameworks/applicable' \
-H 'Authorization: Bearer sk_your_api_key' \
--data-urlencode 'objectType=deal' \
--data-urlencode 'objectId=deal-123'
The response is {"success":true,"data":[...]}. Each item is a framework definition, including id, name, description, target_type, components, applicability, display and scoring configuration, and configuration version. Component IDs identify answers in the values endpoint.
Only active frameworks for the requested target type whose current applicability conditions match are returned. Deal conditions may include conditions on the associated account; requesting a deal does not also return that account's frameworks. To read account frameworks, make a separate request with objectType=account and the account's ID. Definitions do not include saved assessments.
Example definition response
This complete example uses illustrative IDs and a single yes/no component. Both responses below refer to the same deal and framework.
{
"success": true,
"data": [
{
"id": "f6d7adba-9562-4fe7-87ba-ef072a10eaf2",
"name": "Deal qualification",
"description": "Confirm that the buyer has approved a budget.",
"status": "active",
"target_type": "deal",
"applicability": {},
"evaluation_policy": {
"cadence": "none",
"triggers": [
"meeting",
"inbound_email",
"outbound_email",
"signal",
"crm_change",
"crm_note",
"activity",
"checkpoint"
]
},
"skill_slugs": [],
"display_mode": "score",
"final_score": "calculated",
"final_score_weights": [
{
"component_id": "budget-approved",
"weight": 1,
"required": true
}
],
"percentage_label_sets": [
{
"id": "qualification",
"name": "Qualification",
"labels": [
{
"min_percent": 0,
"max_percent": 99,
"label": "Needs work",
"color": "red"
},
{
"min_percent": 100,
"max_percent": 100,
"label": "Qualified",
"color": "green"
}
]
}
],
"final_score_label_set_id": "qualification",
"configuration_version": 1,
"components": [
{
"id": "budget-approved",
"name": "Budget approved",
"description": "Has the buyer approved budget for this purchase?",
"sort_order": 0,
"method": {
"type": "agentic"
},
"data": {
"type": "yes_no"
}
}
],
"is_predefined": false,
"created_at": "2026-10-16T10:00:00.000Z",
"updated_at": "2026-10-16T10:00:00.000Z"
}
]
}
#Filled-in values
GET https://api.bigmind.ai/v1/frameworks/values?objectType=deal&objectId=deal-123
This endpoint returns one item per currently applicable framework, with framework_id, target, values, and assessment. The values array contains saved component answers. Each value includes component_id, typed answer_value, textual component_value, component_status, reasoning, outcome, normalized_score, evidence_refs, source, evaluation ID, target identifiers, and timestamps. Preserve boolean false and numeric zero as valid answers.
assessment contains the saved assessment, including its values, state, score, band, coverage, evaluation time, stale flag, and error information. These GET requests do not trigger evaluation or write answers. Current applicability can differ from the saved assessment state; check stale and evaluated_at when interpreting saved results.
Example filled-in response
{
"success": true,
"data": [
{
"framework_id": "f6d7adba-9562-4fe7-87ba-ef072a10eaf2",
"target": {
"type": "deal",
"id": "deal-123"
},
"values": [
{
"framework_id": "f6d7adba-9562-4fe7-87ba-ef072a10eaf2",
"component_id": "budget-approved",
"component_value": "true",
"component_status": "completed",
"answer_value": true,
"reasoning": "The buyer confirmed the purchase budget during the discovery call.",
"outcome": "Budget approved",
"normalized_score": 1,
"evidence_refs": [
{
"type": "meeting",
"id": "meeting-456",
"label": "Discovery call",
"occurred_at": "2026-10-16T10:00:00.000Z"
}
],
"source": "meeting",
"evaluation_id": "87db4a51-2958-45b5-9e21-20f247d52709",
"target_type": "deal",
"target_object_name": "Opportunity",
"target_object_id": "deal-123",
"target_table": "salesforce_Opportunity",
"created_at": "2026-10-16T10:00:00.000Z",
"updated_at": "2026-10-16T10:00:00.000Z"
}
],
"assessment": {
"framework_id": "f6d7adba-9562-4fe7-87ba-ef072a10eaf2",
"target": {
"type": "deal",
"id": "deal-123"
},
"state": "applicable",
"state_reason": null,
"score": 100,
"band": {
"min_percent": 100,
"max_percent": 100,
"label": "Qualified",
"color": "green"
},
"coverage": {
"answered": 1,
"total": 1,
"required_answered": 1,
"required_total": 1
},
"values": [
{
"framework_id": "f6d7adba-9562-4fe7-87ba-ef072a10eaf2",
"component_id": "budget-approved",
"component_value": "true",
"component_status": "completed",
"answer_value": true,
"reasoning": "The buyer confirmed the purchase budget during the discovery call.",
"outcome": "Budget approved",
"normalized_score": 1,
"evidence_refs": [
{
"type": "meeting",
"id": "meeting-456",
"label": "Discovery call",
"occurred_at": "2026-10-16T10:00:00.000Z"
}
],
"source": "meeting",
"evaluation_id": "87db4a51-2958-45b5-9e21-20f247d52709",
"target_type": "deal",
"target_object_name": "Opportunity",
"target_object_id": "deal-123",
"target_table": "salesforce_Opportunity",
"created_at": "2026-10-16T10:00:00.000Z",
"updated_at": "2026-10-16T10:00:00.000Z"
}
],
"evaluation_id": "87db4a51-2958-45b5-9e21-20f247d52709",
"evaluated_at": "2026-10-16T10:00:00.000Z",
"stale": false,
"error": null,
"created_at": "2026-10-16T10:00:00.000Z",
"updated_at": "2026-10-16T10:00:00.000Z"
}
}
]
}
The top-level values array repeats assessment.values for convenience. Here answer_value is a JSON boolean, normalized_score is on a 0–1 scale, and the aggregate score is on a 0–100 scale. CRM object and table names vary by provider; clients should identify the requested record using target.
Account with no saved assessment
GET https://api.bigmind.ai/v1/frameworks/values?objectType=account&objectId=account-123
If an applicable framework has no saved assessment, it is still returned with an empty values array and a null assessment:
{
"success": true,
"data": [{
"framework_id": "framework-123",
"target": { "type": "account", "id": "account-123" },
"values": [],
"assessment": null
}]
}
Both endpoints return {"success":true,"data":[]} when no frameworks apply. The values endpoint excludes historical assessments for frameworks that are inactive or no longer applicable.
#Errors
Errors use {"success":false,"error":"..."}.
| Status | Meaning |
|---|---|
| 400 | Missing or invalid query parameters, or CRM not connected. |
| 401 | Missing or invalid secret API key, or a channel key was used. |
| 403 | A public write key was used. |
| 404 | The CRM record is not available in the key's workspace. |
| 429 | Workspace API rate limit exceeded. |
| 500 | Framework loading or applicability evaluation failed. No partial list is returned. |
Retry temporary failures and rate limits with backoff. If a CRM record was just created, allow it to sync before retrying a 404.
