Companies Overview

Companies (Clients in the awork UI) are the contacts or organizations that you work with. Projects are usually connected to Companies.

Most company integrations follow the same pattern: create or find the company, store its id in your system, then add contact information and link projects to it. Company endpoints require the company-master-data permission (or an administrator role).

Creating a company

Creating a company is easy. The only required field for creating a company is the name.

curl -X POST "https://api.awork.com/api/v1/companies" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json" \
     -d '{
           "name": "Northstar Creative",
           "description": "Brand and product design partner",
           "industry": "Design agency"
         }'

Save the returned company id for subsequent requests:

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "name": "Northstar Creative",
  "description": "Brand and product design partner",
  "industry": "Design agency",
  "projectsCount": 0,
  "projectsInProgressCount": 0
}

Finding and updating a company

Use the list endpoint to find companies by name or another field with the standard filtering and pagination parameters:

curl 'https://api.awork.com/api/v1/companies?page=1&pageSize=25&filterby=name%20eq%20%22Northstar%20Creative%22' \
     -H "Authorization: Bearer {token}"

Update only the fields you want to change. The name remains required on the update form:

curl -X PUT "https://api.awork.com/api/v1/companies/123e4567-e89b-12d3-a456-426614174000" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json" \
     -d '{
           "name": "Northstar Creative GmbH",
           "industry": "Brand agency"
         }'

Adding contact information

Contact information is managed separately from the company. For example, add a billing address and then retrieve all contact records with GET /companies/{companyId}/contactinfo:

curl -X POST "https://api.awork.com/api/v1/companies/123e4567-e89b-12d3-a456-426614174000/contactinfo" \
     -H "Authorization: Bearer {token}" \
     -H "Content-Type: application/json" \
     -d '{
           "type": "address",
           "subType": "invoice",
           "addressLine1": "Torstraße 140",
           "zipCode": "10119",
           "city": "Berlin",
           "country": "DE",
           "isAddress": true
         }'

See the Companies API reference for contact-info update and delete operations.

Search documentation