SalesOS

Accounts

Account/company management

List accounts

GET
/v1/accounts

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Query Parameters

typestring
industrystring
parentAccountIdstring
searchstring
pagestring
limitstring
sortBystring
sortOrderstring
ownerstring
createdAfterstring
idsstring
customFieldsstring
withCustomFieldsstring
curl -X GET "https://api.salesos.org/v1/accounts?type=%3Cstring%3E&industry=%3Cstring%3E&parentAccountId=%3Cstring%3E&search=%3Cstring%3E&page=%3Cstring%3E&limit=%3Cstring%3E&sortBy=%3Cstring%3E&sortOrder=%3Cstring%3E&owner=%3Cstring%3E&createdAfter=%3Cstring%3E&ids=%3Cstring%3E&customFields=%3Cstring%3E&withCustomFields=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

AccountList

{
  "data": [
    {
      "id": "string",
      "ownerId": "string",
      "organizationId": "string",
      "salesforceId": "string",
      "parentAccountId": "string",
      "name": "string",
      "website": "string",
      "domain": "string",
      "phone": "string",
      "fax": "string",
      "industry": "string",
      "type": "PROSPECT",
      "numberOfEmployees": 0,
      "annualRevenue": 0,
      "description": "string",
      "billingStreet": "string",
      "billingCity": "string",
      "billingState": "string",
      "billingPostalCode": "string",
      "billingCountry": "string",
      "shippingStreet": "string",
      "shippingCity": "string",
      "shippingState": "string",
      "shippingPostalCode": "string",
      "shippingCountry": "string",
      "accountStatus": "ACTIVE",
      "rating": "HOT",
      "healthScore": 0,
      "lifetimeValue": 0,
      "churnRisk": "HIGH",
      "painPoints": [
        "string"
      ],
      "techStack": [
        "string"
      ],
      "competitors": [
        "string"
      ],
      "isStrategic": true,
      "tier": "string",
      "region": "string",
      "externalId": "string",
      "tags": [
        "string"
      ],
      "lastActivityDate": "2019-08-24T14:15:22Z",
      "nextActivityDate": "2019-08-24T14:15:22Z",
      "metadata": null,
      "createdAt": "2019-08-24T14:15:22Z",
      "updatedAt": "2019-08-24T14:15:22Z"
    }
  ],
  "page": 1,
  "limit": 50,
  "total": 0,
  "totalPages": 0,
  "hasMore": true
}

Create account

POST
/v1/accounts

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
nameRequiredstring
typestring
Value in: "PROSPECT" | "CUSTOMER" | "PARTNER" | "RESELLER" | "COMPETITOR" | "OTHER"
industrystring
phonestring
faxstring
websitestring
domainstring
billingStreetstring
billingCitystring
billingStatestring
billingPostalCodestring
billingCountrystring
shippingStreetstring
shippingCitystring
shippingStatestring
shippingPostalCodestring
shippingCountrystring
numberOfEmployeesnumber
annualRevenuenumber
descriptionstring
accountStatusstring
Value in: "ACTIVE" | "INACTIVE" | "PENDING" | "CHURNED"
ratingstring
Value in: "HOT" | "WARM" | "COLD"
healthScorenumber
churnRiskstring
Value in: "HIGH" | "MEDIUM" | "LOW" | "NONE"
painPointsarray<string>
techStackarray<string>
competitorsarray<string>
parentAccountIdstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/accounts" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "type": "PROSPECT",
    "industry": "string",
    "phone": "string",
    "fax": "string",
    "website": "string",
    "domain": "string",
    "billingStreet": "string",
    "billingCity": "string",
    "billingState": "string",
    "billingPostalCode": "string",
    "billingCountry": "string",
    "shippingStreet": "string",
    "shippingCity": "string",
    "shippingState": "string",
    "shippingPostalCode": "string",
    "shippingCountry": "string",
    "numberOfEmployees": 0,
    "annualRevenue": 0,
    "description": "string",
    "accountStatus": "ACTIVE",
    "rating": "HOT",
    "healthScore": 0,
    "churnRisk": "HIGH",
    "painPoints": [
      "string"
    ],
    "techStack": [
      "string"
    ],
    "competitors": [
      "string"
    ],
    "parentAccountId": "string"
  }'

Account

{
  "id": "string",
  "ownerId": "string",
  "organizationId": "string",
  "salesforceId": "string",
  "parentAccountId": "string",
  "name": "string",
  "website": "string",
  "domain": "string",
  "phone": "string",
  "fax": "string",
  "industry": "string",
  "type": "PROSPECT",
  "numberOfEmployees": 0,
  "annualRevenue": 0,
  "description": "string",
  "billingStreet": "string",
  "billingCity": "string",
  "billingState": "string",
  "billingPostalCode": "string",
  "billingCountry": "string",
  "shippingStreet": "string",
  "shippingCity": "string",
  "shippingState": "string",
  "shippingPostalCode": "string",
  "shippingCountry": "string",
  "accountStatus": "ACTIVE",
  "rating": "HOT",
  "healthScore": 0,
  "lifetimeValue": 0,
  "churnRisk": "HIGH",
  "painPoints": [
    "string"
  ],
  "techStack": [
    "string"
  ],
  "competitors": [
    "string"
  ],
  "isStrategic": true,
  "tier": "string",
  "region": "string",
  "externalId": "string",
  "tags": [
    "string"
  ],
  "lastActivityDate": "2019-08-24T14:15:22Z",
  "nextActivityDate": "2019-08-24T14:15:22Z",
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Get account stats

GET
/v1/accounts/stats

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/accounts/stats" \
  -H "Authorization: Bearer <token>"

List deleted

GET
/v1/accounts/deleted

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/accounts/deleted" \
  -H "Authorization: Bearer <token>"

AccountArray

[
  {
    "id": "string",
    "ownerId": "string",
    "organizationId": "string",
    "salesforceId": "string",
    "parentAccountId": "string",
    "name": "string",
    "website": "string",
    "domain": "string",
    "phone": "string",
    "fax": "string",
    "industry": "string",
    "type": "PROSPECT",
    "numberOfEmployees": 0,
    "annualRevenue": 0,
    "description": "string",
    "billingStreet": "string",
    "billingCity": "string",
    "billingState": "string",
    "billingPostalCode": "string",
    "billingCountry": "string",
    "shippingStreet": "string",
    "shippingCity": "string",
    "shippingState": "string",
    "shippingPostalCode": "string",
    "shippingCountry": "string",
    "accountStatus": "ACTIVE",
    "rating": "HOT",
    "healthScore": 0,
    "lifetimeValue": 0,
    "churnRisk": "HIGH",
    "painPoints": [
      "string"
    ],
    "techStack": [
      "string"
    ],
    "competitors": [
      "string"
    ],
    "isStrategic": true,
    "tier": "string",
    "region": "string",
    "externalId": "string",
    "tags": [
      "string"
    ],
    "lastActivityDate": "2019-08-24T14:15:22Z",
    "nextActivityDate": "2019-08-24T14:15:22Z",
    "metadata": null,
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z"
  }
]

Get account

GET
/v1/accounts/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/accounts/<string>" \
  -H "Authorization: Bearer <token>"

Account

{
  "id": "string",
  "ownerId": "string",
  "organizationId": "string",
  "salesforceId": "string",
  "parentAccountId": "string",
  "name": "string",
  "website": "string",
  "domain": "string",
  "phone": "string",
  "fax": "string",
  "industry": "string",
  "type": "PROSPECT",
  "numberOfEmployees": 0,
  "annualRevenue": 0,
  "description": "string",
  "billingStreet": "string",
  "billingCity": "string",
  "billingState": "string",
  "billingPostalCode": "string",
  "billingCountry": "string",
  "shippingStreet": "string",
  "shippingCity": "string",
  "shippingState": "string",
  "shippingPostalCode": "string",
  "shippingCountry": "string",
  "accountStatus": "ACTIVE",
  "rating": "HOT",
  "healthScore": 0,
  "lifetimeValue": 0,
  "churnRisk": "HIGH",
  "painPoints": [
    "string"
  ],
  "techStack": [
    "string"
  ],
  "competitors": [
    "string"
  ],
  "isStrategic": true,
  "tier": "string",
  "region": "string",
  "externalId": "string",
  "tags": [
    "string"
  ],
  "lastActivityDate": "2019-08-24T14:15:22Z",
  "nextActivityDate": "2019-08-24T14:15:22Z",
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Update account

PATCH
/v1/accounts/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X PATCH "https://api.salesos.org/v1/accounts/<string>" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

Account

{
  "id": "string",
  "ownerId": "string",
  "organizationId": "string",
  "salesforceId": "string",
  "parentAccountId": "string",
  "name": "string",
  "website": "string",
  "domain": "string",
  "phone": "string",
  "fax": "string",
  "industry": "string",
  "type": "PROSPECT",
  "numberOfEmployees": 0,
  "annualRevenue": 0,
  "description": "string",
  "billingStreet": "string",
  "billingCity": "string",
  "billingState": "string",
  "billingPostalCode": "string",
  "billingCountry": "string",
  "shippingStreet": "string",
  "shippingCity": "string",
  "shippingState": "string",
  "shippingPostalCode": "string",
  "shippingCountry": "string",
  "accountStatus": "ACTIVE",
  "rating": "HOT",
  "healthScore": 0,
  "lifetimeValue": 0,
  "churnRisk": "HIGH",
  "painPoints": [
    "string"
  ],
  "techStack": [
    "string"
  ],
  "competitors": [
    "string"
  ],
  "isStrategic": true,
  "tier": "string",
  "region": "string",
  "externalId": "string",
  "tags": [
    "string"
  ],
  "lastActivityDate": "2019-08-24T14:15:22Z",
  "nextActivityDate": "2019-08-24T14:15:22Z",
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Delete account

DELETE
/v1/accounts/{id}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X DELETE "https://api.salesos.org/v1/accounts/<string>" \
  -H "Authorization: Bearer <token>"

No response body.

Restore

POST
/v1/accounts/{id}/restore

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/accounts/<string>/restore" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

Account

{
  "id": "string",
  "ownerId": "string",
  "organizationId": "string",
  "salesforceId": "string",
  "parentAccountId": "string",
  "name": "string",
  "website": "string",
  "domain": "string",
  "phone": "string",
  "fax": "string",
  "industry": "string",
  "type": "PROSPECT",
  "numberOfEmployees": 0,
  "annualRevenue": 0,
  "description": "string",
  "billingStreet": "string",
  "billingCity": "string",
  "billingState": "string",
  "billingPostalCode": "string",
  "billingCountry": "string",
  "shippingStreet": "string",
  "shippingCity": "string",
  "shippingState": "string",
  "shippingPostalCode": "string",
  "shippingCountry": "string",
  "accountStatus": "ACTIVE",
  "rating": "HOT",
  "healthScore": 0,
  "lifetimeValue": 0,
  "churnRisk": "HIGH",
  "painPoints": [
    "string"
  ],
  "techStack": [
    "string"
  ],
  "competitors": [
    "string"
  ],
  "isStrategic": true,
  "tier": "string",
  "region": "string",
  "externalId": "string",
  "tags": [
    "string"
  ],
  "lastActivityDate": "2019-08-24T14:15:22Z",
  "nextActivityDate": "2019-08-24T14:15:22Z",
  "metadata": null,
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z"
}

Cached AI brief (null until generated).

GET
/v1/accounts/{id}/ai-brief

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/accounts/<string>/ai-brief" \
  -H "Authorization: Bearer <token>"

{}

Generate (or regenerate) the AI brief — a real LLM call, never automatic.

POST
/v1/accounts/{id}/ai-brief

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/accounts/<string>/ai-brief" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>"

{}

Get account hierarchy

GET
/v1/accounts/{id}/hierarchy

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/accounts/<string>/hierarchy" \
  -H "Authorization: Bearer <token>"

Get account revenue

GET
/v1/accounts/{id}/revenue

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

idRequiredstring
curl -X GET "https://api.salesos.org/v1/accounts/<string>/revenue" \
  -H "Authorization: Bearer <token>"

Bulk update

POST
/v1/accounts/bulk/update

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/accounts/bulk/update" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

BulkActionResult

{
  "message": "string",
  "count": 0,
  "unchanged": 0,
  "failed": [
    {
      "id": "string",
      "error": "string"
    }
  ]
}

Bulk delete

POST
/v1/accounts/bulk/delete

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/accounts/bulk/delete" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

BulkActionResult

{
  "message": "string",
  "count": 0,
  "unchanged": 0,
  "failed": [
    {
      "id": "string",
      "error": "string"
    }
  ]
}

Bulk assign

POST
/v1/accounts/bulk/assign

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/accounts/bulk/assign" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{}'

BulkActionResult

{
  "message": "string",
  "count": 0,
  "unchanged": 0,
  "failed": [
    {
      "id": "string",
      "error": "string"
    }
  ]
}