Companies API
The Companies API lets you manage company (account) records in your CRM. Create individual companies, upsert by domain for deduplication, bulk import up to 100 at a time, and associate contacts with their organizations.
Endpoints
GET
/api/v1/companiesList companiesPOST
/api/v1/companiesCreate a companyGET
/api/v1/companies/{id}Get company by IDPUT
/api/v1/companies/{id}Update a companyDELETE
/api/v1/companies/{id}Delete a companyPUT
/api/v1/companies/upsertCreate or update by domainPOST
/api/v1/companies/bulkBulk create (max 100)List endpoints support ?limit, ?offset, ?updatedSince, and ?fields query parameters. See the API Overview for details.
Create Company Request
Request body for POST /api/v1/companies and PUT /api/v1/companies/upsert.
CreateCompanyRequest
| Property | Type | Required | Description |
|---|---|---|---|
name | string | ✓ | Company name |
domain | string? | — | Website domain (used for upsert matching) |
industry | string? | — | Industry sector |
description | string? | — | Company description |
employeeCount | int? | — | Number of employees |
annualRevenue | decimal? | — | Annual revenue |
phone | string? | — | Phone number |
website | string? | — | Website URL |
linkedInUrl | string? | — | LinkedIn page |
address | string? | — | Street address |
city | string? | — | City |
state | string? | — | State |
country | string? | — | Country |
postalCode | string? | — | Postal code |
tags | List<string> | — | Tags |
notes | string? | — | Notes |
ownerId | Guid? | — | Owner |
Company Response
Returned by all GET, POST, and PUT endpoints.
CompanyResponse
| Property | Type | Required | Description |
|---|---|---|---|
id | Guid | ✓ | Unique identifier |
tenantId | Guid | ✓ | Tenant identifier |
name | string | ✓ | Company name |
domain | string? | — | Website domain |
industry | string? | — | Industry sector |
description | string? | — | Company description |
employeeCount | int? | — | Number of employees |
annualRevenue | decimal? | — | Annual revenue |
phone | string? | — | Phone number |
website | string? | — | Website URL |
linkedInUrl | string? | — | LinkedIn page |
address | string? | — | Street address |
city | string? | — | City |
state | string? | — | State |
country | string? | — | Country |
postalCode | string? | — | Postal code |
tags | List<string> | — | Tags |
notes | string? | — | Notes |
ownerId | Guid? | — | Owner |
createdAt | DateTime | ✓ | Creation timestamp |
updatedAt | DateTime | ✓ | Last update timestamp |
Code Examples
List Companies
curl "https://your-tenant.rallycrm.io/api/v1/companies?limit=25" \
-H "X-Api-Key: rk_live_your_api_key_here"Create a Company
curl -X POST "https://your-tenant.rallycrm.io/api/v1/companies" \
-H "X-Api-Key: rk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corporation",
"domain": "acme.com",
"industry": "Technology",
"employeeCount": 250,
"annualRevenue": 45000000,
"website": "https://acme.com",
"city": "San Francisco",
"state": "CA",
"country": "US"
}'Upsert by Domain
Creates a new company or updates an existing one matched by the domain field. The response includes an action field indicating whether the record was created or updated.
curl -X PUT "https://your-tenant.rallycrm.io/api/v1/companies/upsert" \
-H "X-Api-Key: rk_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corporation",
"domain": "acme.com",
"industry": "Technology",
"employeeCount": 300
}'Example Responses
List Companies
[
{
"id": "b5c7e1a2-3d4f-5678-9abc-def012345678",
"tenantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Acme Corporation",
"domain": "acme.com",
"industry": "Technology",
"description": "Enterprise software solutions provider",
"employeeCount": 250,
"annualRevenue": 45000000,
"phone": "+1-555-0100",
"website": "https://acme.com",
"linkedInUrl": "https://linkedin.com/company/acme",
"address": "100 Market Street",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postalCode": "94105",
"tags": [
"enterprise",
"technology"
],
"notes": null,
"ownerId": "e4d909c2-90d0-4b2b-88c5-8e9a0fa1e4b1",
"createdAt": "2025-02-01T10:00:00Z",
"updatedAt": "2025-06-12T08:45:00Z"
}
]Upsert Response
{
"action": "updated",
"id": "b5c7e1a2-3d4f-5678-9abc-def012345678"
}Bulk Create Response
{
"created": 2,
"updated": 0,
"failed": 1,
"createdIds": [
"b5c7e1a2-3d4f-5678-9abc-def012345678",
"c6d8f2b3-4e5a-6789-bcde-f01234567890"
],
"errors": [
{
"index": 2,
"error": "Company name is required"
}
]
}