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 companies
POST
/api/v1/companiesCreate a company
GET
/api/v1/companies/{id}Get company by ID
PUT
/api/v1/companies/{id}Update a company
DELETE
/api/v1/companies/{id}Delete a company
PUT
/api/v1/companies/upsertCreate or update by domain
POST
/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

PropertyTypeRequiredDescription
namestringCompany name
domainstring?Website domain (used for upsert matching)
industrystring?Industry sector
descriptionstring?Company description
employeeCountint?Number of employees
annualRevenuedecimal?Annual revenue
phonestring?Phone number
websitestring?Website URL
linkedInUrlstring?LinkedIn page
addressstring?Street address
citystring?City
statestring?State
countrystring?Country
postalCodestring?Postal code
tagsList<string>Tags
notesstring?Notes
ownerIdGuid?Owner

Company Response

Returned by all GET, POST, and PUT endpoints.

CompanyResponse

PropertyTypeRequiredDescription
idGuidUnique identifier
tenantIdGuidTenant identifier
namestringCompany name
domainstring?Website domain
industrystring?Industry sector
descriptionstring?Company description
employeeCountint?Number of employees
annualRevenuedecimal?Annual revenue
phonestring?Phone number
websitestring?Website URL
linkedInUrlstring?LinkedIn page
addressstring?Street address
citystring?City
statestring?State
countrystring?Country
postalCodestring?Postal code
tagsList<string>Tags
notesstring?Notes
ownerIdGuid?Owner
createdAtDateTimeCreation timestamp
updatedAtDateTimeLast 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"
    }
  ]
}

Next Steps

Rally Support

We typically reply in a few hours

Hi! 👋 How can we help you today?