Update a company
As a Reseller you can update a customer company's details, license (type, target user limit, expiry), or other settings. Get the company's resourceId from the companies list, then call PUT /api/companies/{resourceId} with the fields you want to change. Use a credential with Client Role = Reseller.
POST /api/companies/search
Get the company's resourceId by calling this endpoint; use it in the next step as {resourceId}.
Retrieves a paginated list of all companies you manage with license details. Each item includes
resourceId— use it as the Company ID. Test it: Authorize with Client ID/Secret, then Send — request body is pre-filled.
- : API
Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.
110CreateTimefalseIf true, only companies exceeding license limit are returned
falseOK
POST /api/companies/search HTTP/1.1
Host: api.keepnetlabs.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json-patch+json
Accept: */*
Content-Length: 126
{
"pageNumber": 1,
"pageSize": 10,
"orderBy": "CreateTime",
"ascending": false,
"filter": {
"Condition": "AND",
"SearchInputTextValue": ""
}
}OK
{
"data": {
"limitExceededCompanyCount": 1,
"pageNumber": 1,
"pageSize": 1,
"totalNumberOfPages": 1,
"totalNumberOfRecords": 1,
"results": [
{
"companyName": "text",
"companyResourceId": "text",
"resellerName": "text",
"industryName": "text",
"industryResourceId": "text",
"licenseTypeName": "text",
"licenseTypeResourceId": "text",
"isNumberOfUsersLimited": true,
"numberOfUsers": "text",
"privacyDurationId": 1,
"licenceExpired": true,
"licenseEndDate": "2026-01-01T00:00:00.000Z",
"createTime": "2026-01-01T00:00:00.000Z",
"targetUserCount": 1,
"children": [
{
"companyName": "text",
"companyResourceId": "text",
"resellerName": "text",
"industryName": "text",
"industryResourceId": "text",
"licenseTypeName": "text",
"licenseTypeResourceId": "text",
"isNumberOfUsersLimited": true,
"numberOfUsers": "text",
"privacyDurationId": 1,
"licenceExpired": true,
"licenseEndDate": "2026-01-01T00:00:00.000Z",
"createTime": "2026-01-01T00:00:00.000Z",
"targetUserCount": 1,
"children": "[Circular Reference]",
"tags": [
"text"
],
"deletedTargetUserCount": 1,
"inactiveTargetUserCount": 1,
"monthlyActiveUserCount": 1
}
],
"tags": [
"text"
],
"deletedTargetUserCount": 1,
"inactiveTargetUserCount": 1,
"monthlyActiveUserCount": 1
}
]
},
"status": "text",
"message": "text",
"validationMessages": [
"text"
]
}From the response, pick the company and note its resourceId. Example: "resourceId": "xC5kfGz7w2Nz" → use in PUT /api/companies/xC5kfGz7w2Nz.
PUT /api/companies/{resourceId}
Updates company details, license (type, target user limit, expiry), or other settings. Replace {resourceId} with the company ID. Request body depends on what you change — see Endpoints → Company → Updates a company for the full schema.
Updates an existing company. Test it: Endpoints → Company → Updates a company — use dummy/placeholder values (H8d).
- : API
Client ID and Client Secret from Company → Company Settings → REST API. Enter credentials to auto-fetch token.
OK
PUT /api/companies/{resourceId} HTTP/1.1
Host: api.keepnetlabs.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 809
{
"File": "binary",
"LogoUrl": "text",
"Name": "text",
"Description": "text",
"IndustryResourceId": "text",
"CountryResourceId": "text",
"Address": "text",
"WebsiteUrl": "text",
"LicenseTypeResourceId": "text",
"LicenseModuleResourceIdArray": [
"text"
],
"LicensePeriodTypeResourceId": "text",
"LicenseStartDate": "2026-01-01T00:00:00.000Z",
"LicenseEndDate": "2026-01-01T00:00:00.000Z",
"IsNumberOfUsersLimited": true,
"NumberOfUsers": 1,
"NotificationTemplateTypeResourceId": "text",
"TrainingContentTypeResourceId": "text",
"SmtpConfigurationTypeResourceId": "text",
"PreferredLanguageTypeResourceId": "text",
"IsVersionVisible": true,
"IsReleaseNotesVisible": true,
"ReleaseNotesUrl": "text",
"CompanyGroupResourceIdArray": [
"text"
],
"StatusId": 1,
"TimeZoneId": "text",
"DateFormat": "text",
"TimeFormat": "text",
"CallBackNumberBookingCount": 1,
"Tags": [
"text"
]
}OK
{
"data": {
"resourceId": "text"
},
"status": "text",
"message": "text",
"validationMessages": [
"text"
]
}Common errors
403 Forbidden — Credential is not Reseller, or company is not one you manage. Set Client Role = Reseller. Roles and permissions →
401 Unauthorized — Missing or invalid token. Request a new token via
POST /connect/token.404 Not Found / 400 Bad Request — Invalid company ID or invalid request body. Verify company ID from
POST /api/companies/searchand check Endpoints → Company for the request schema.
Related: Scope API requests to a customer →. Get a company →. To add or update the company in a group: List and manage company groups → (PUT participants).
Last updated