Unless stated otherwise, this page refers to Ukrainian companies and individual entrepreneurs and uses identifiers from Ukrainian public registries.
This section describes requests used to work with enterprise permissions, licenses, declarations, and conclusions within a specific domain, together with related files. For brevity, the term permissions is used throughout this page.
Permission list
GET /api/v1/enterprises/{registry_id}/permissions/{domain}
This request returns enterprise permissions within a single domain. The response includes the main permission attributes, validity dates, status, links to related files, and coordinates of the related object if your API key allows them.
The registry_id and domain parameters in the request path are required. registry_id is the enterprise identifier.
Available domain values can be retrieved from the Data domains request.
Example request
$ ESG_API_TOKEN="your_api_token"
$ curl "https://esg.saveecobot.com/api/v1/enterprises/00178353/permissions/air?permission_type_id=1" \
-H "Authorization: Bearer $ESG_API_TOKEN" \
-H 'Accept: application/json'
Example response
{
"results": {
"enterprise": { "type": "company", "registry_id": "00178353" },
"domain": { "slug": "air", "label": "Повітря" },
"items": [
{
"id": 147,
"type_id": 1,
"type_name": "Дозвіл на викиди забруднюючих речовин в атмосферне повітря",
"registry_id": "123.45.67",
"authority_name": "Міндовкілля",
"name": "Дозвіл на викиди",
"subtypes": ["Стаціонарні джерела"],
"description_lines": ["Юридична адреса об'єкта"],
"address": "Україна, Київська область, місто Київ",
"region": "Київська область",
"status": "чинний",
"status_synced_at": "2026-05-10 08:00:00",
"notes": null,
"issued_at": "2024-05-01",
"valid_from": "2024-05-01",
"valid_to": "2029-05-01",
"is_active": true,
"files_count": 2,
"links": {
"details": "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-details/147",
"files": "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-files/147"
},
"coordinates": null
}
],
"pagination": {
"current_page": 1,
"per_page": 20,
"total": 3,
"last_page": 1
}
},
"stats": { "..." }
}
Pagination parameters
page: page number.
Filters
permission_type_id: permission type identifier. Available values can be retrieved from the Permission types request.
Response fields
results.items[]
id: permission identifier.type_id: permission type identifier.type_name: permission type name.registry_id: permit number or registration number. Returnsnullif no number is available.authority_name: issuing authority.name: permission name or industrial site name.subtypes[]: list of permission subtypes, if any.description_lines[]: short permission description split into lines.address: address related to the permission, for example the industrial site address.region: region the permission belongs to.status: textual permission status.status_synced_at: timestamp of the latest status update from the source or registry.notes: additional notes about the permission.issued_at: issue date, if available.valid_from: validity start date, if available.valid_to: validity end date, if available.is_active: indicates whether the permission is active.files_count: number of related files.links.details: link to permission details.links.files: link to the separate file list request.coordinates: address coordinates, if allowed for the API key.coordinates.latitude: latitude.coordinates.longitude: longitude.
Permission details
GET /api/v1/enterprises/{registry_id}/permission-details/{permission_id}
This request returns full data for a specific permission. The response contains the same fields as the permission list, plus the links block for navigating to related files.
The registry_id and permission_id parameters in the request path are required. registry_id is the enterprise identifier. permission_id is the permission identifier.
Example request
$ ESG_API_TOKEN="your_api_token"
$ curl "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-details/147" \
-H "Authorization: Bearer $ESG_API_TOKEN" \
-H 'Accept: application/json'
Example response
{
"results": {
"enterprise": { "type": "company", "registry_id": "00178353" },
"object": {
"id": 147,
"type_id": 1,
"type_name": "Дозвіл на викиди забруднюючих речовин в атмосферне повітря",
"registry_id": "123.45.67",
"authority_name": "Міндовкілля",
"name": "Дозвіл на викиди",
"subtypes": ["Стаціонарні джерела"],
"description_lines": ["Юридична адреса об'єкта"],
"address": "Україна, Київська область, місто Київ",
"region": "Київська область",
"status": "чинний",
"status_synced_at": "2026-05-10 08:00:00",
"notes": null,
"issued_at": "2024-05-01",
"valid_from": "2024-05-01",
"valid_to": "2029-05-01",
"is_active": true,
"files_count": 2,
"coordinates": null,
"links": {
"files": "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-files/147"
}
}
},
"stats": { "..." }
}
Response fields
results.object
The object fields are the same as in results.items[] in the permission list.
results.object.links
files: link to the separate permission files list, if files exist.
Permission files
GET /api/v1/enterprises/{registry_id}/permission-files/{permission_id}
This request returns files for a specific permission. Along with the file list in items, it also returns an object block with short information about the permission itself.
The registry_id and permission_id parameters in the request path are required. registry_id is the enterprise identifier. permission_id is the permission identifier.
Example request
$ ESG_API_TOKEN="your_api_token"
$ curl "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-files/147" \
-H "Authorization: Bearer $ESG_API_TOKEN" \
-H 'Accept: application/json'
Example response
{
"results": {
"enterprise": { "type": "company", "registry_id": "00178353" },
"object": {
"type": "permission",
"id": 147,
"registry_id": "123.45.67",
"type_id": 1,
"type_name": "Дозвіл на викиди забруднюючих речовин",
"name": "Дозвіл на викиди"
},
"items": [
{
"type_name": "PDF",
"name": "permit.pdf",
"description": "Основний файл дозволу",
"format": "pdf",
"size": 93811,
"uploaded_at": "2024-05-01T12:00:00+00:00",
"downloaded_at": "2024-05-02T09:00:00+00:00",
"links": {
"download": "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-files/147/download/1"
}
}
]
},
"stats": { "..." }
}
Response fields
results.object
type: object type. For this request, the value ispermission.id: permission identifier.registry_id: permit number or registration number.type_id: permission type identifier.type_name: permission type name.name: permission name.
results.items[]
id: permission file identifier.type_name: document or file type name.name: file name.description: short file description.format: file format, for examplepdfordocx.size: file size in bytes.uploaded_at: date when the file was uploaded or published in the source.downloaded_at: date when the file was downloaded into ESG SaveEcoBot.links.download: file download link.
Permission file download
GET /api/v1/enterprises/{registry_id}/permission-files/{permission_id}/download/{file_id}
This request returns the binary permission file for download.
The registry_id, permission_id, and file_id parameters in the request path are required. registry_id is the enterprise identifier. permission_id is the permission identifier. file_id is the permission file identifier.
Example request
$ ESG_API_TOKEN="your_api_token"
$ curl -L "https://esg.saveecobot.com/api/v1/enterprises/00178353/permission-files/147/download/1" \
-H "Authorization: Bearer $ESG_API_TOKEN"