Create a company
Changed onCreates a new company under the caller's agency. The endpoint:
- Requires at least one of websiteUrl or linkedinUrl — companies created without any identity become unreachable via GET /companies lookup. Submitting both is allowed; both are stored as separate identities.
- Stores websiteUrl and linkedinUrl as CompanyIdentity rows of type website / linkedin (the identities array is read-only output).
- Returns 409 Conflict when an existing company in the same agency already owns the supplied websiteUrl, linkedinUrl, or LinkedIn id — the underlying create service silently dedups, REST surfaces the conflict.
- Does not accept a caller-supplied logo URL — any logo field in the body is silently stripped. The logo is populated downstream by automated enrichment (the create endpoint does not dereference caller URLs to avoid SSRF risk). Triggers enrichment / geolocation jobs in the background; PDL-derived fields (industry, ticker, location subfields) may continue to populate after the response is returned.
relationship and list visibility. An omitted relationship defaults to none, and GET /api/v1/companies excludes none companies by default — so a company created without an explicit relationship is not returned by the default list, even though the create returned 201. Send relationship: "client" or "target" on create to have the company appear in the default list, or query it with ?relationship=none (or ?relationship=client,target,none). GET /api/v1/companies/{id} always returns it regardless of relationship.
Response shape matches GET /api/v1/companies/{id} minus logo. Read logo via GET /companies/{id} once enrichment finishes.
Request
- Base URLhttps://api.recruitwithatlas.com
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Request body
Example request
{
"name": "Acme Corp",
"websiteUrl": "https://acme.com",
"linkedinUrl": "https://linkedin.com/company/acme",
"summary": "B2B SaaS",
"size": "51-200",
"industry": [
"Information Technology & Services"
],
"relationship": "client",
"employeeCount": 150,
"ticker": "AAPL",
"location": {
"name": "London, UK",
"locality": "London",
"region": "England",
"metro": "new york, new york",
"country": "United Kingdom",
"streetAddress": "123 Baker Street",
"addressLine2": "Suite 200",
"postalCode": "NW1 6XE",
"raw": "123 Baker Street, London NW1 6XE, United Kingdom",
"latitude": 51.523767,
"longitude": -0.158519
}
}Response
Company created
Example response
{
"data": {
"name": "Acme Corp",
"websiteUrl": "https://acme.com",
"linkedinUrl": "https://linkedin.com/company/acme",
"relationship": "client",
"industry": [
"Technology"
],
"employeeCount": 150,
"ticker": "AAPL",
"location": {
"formattedAddress": "San Francisco, California, United States",
"city": "San Francisco",
"region": "California",
"country": "United States",
"metro": "San Francisco Bay Area",
"raw": "London, England, United Kingdom",
"latitude": 37.7749,
"longitude": -122.4194
},
"identities": [
{
"type": "linkedin",
"value": "linkedin.com/company/acme"
}
],
"owners": [
{
"name": "Jane Smith",
"email": "jane@agency.com"
}
]
}
}Changes
- warning
added the new
undefinedenum value to the///response property for the response status - warning
added the new
undefinedenum value to the/response property for the response status - warning
added the new
undefinedenum value to the/response property for the response status - info
added the new
undefinedenum value to the request property - info
added the new
undefinedenum value to the request property
- warning
- info
added the optional property
to the response with the status
- info