Use the Affinity CLI from KosmoKrator to call Affinity tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.
Affinity can be configured headlessly with `kosmokrator integrations:configure affinity`.
# Install KosmoKrator first if it is not available on PATH.curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash# Configure and verify this integration.kosmokrator integrations:configure affinity --set api_key="$AFFINITY_API_KEY" --enable --read allow --write ask --jsonkosmokrator integrations:doctor affinity --jsonkosmokrator integrations:status --json
Credentials
Authentication type: API keyapi_key. Configure credentials once, then use the same stored profile from
scripts, coding CLIs, Lua code mode, and the MCP gateway.
Key
Env var
Type
Required
Label
api_key
AFFINITY_API_KEY
Secret secret
yes
API Key
Call Affinity Headlessly
Use the generic call form when another coding CLI or script needs a stable universal interface.
Every function below can be called headlessly. The generic form is stable across all integrations;
the provider shortcut is shorter but specific to Affinity.
affinity.affinity_list_contacts
Read read
List contacts from Affinity CRM. Returns contact names, emails, phone numbers, and associated organizations. Use pagination to retrieve large result sets.
Get details for a specific contact in Affinity by its ID. Returns the contact's full profile including name, emails, phone numbers, organization, and custom fields.
Get details for a specific organization in Affinity by its ID. Returns the organization's full profile including name, domain, people, and custom fields.
Use these parameter tables when building CLI payloads without calling integrations:schema first.
affinity.affinity_list_contacts
List contacts from Affinity CRM. Returns contact names, emails, phone numbers, and associated organizations. Use pagination to retrieve large result sets.
Maximum number of contacts to return (default: 100, max: 500).
page
integer
no
Page number for pagination (starts at 1).
affinity.affinity_get_contact
Get details for a specific contact in Affinity by its ID. Returns the contact's full profile including name, emails, phone numbers, organization, and custom fields.
Maximum number of organizations to return (default: 100, max: 500).
page
integer
no
Page number for pagination (starts at 1).
affinity.affinity_get_organization
Get details for a specific organization in Affinity by its ID. Returns the organization's full profile including name, domain, people, and custom fields.
Headless calls still follow the integration read/write permission policy. Configure read/write defaults
with integrations:configure. Add --force only for trusted automation that should bypass that policy.