Skip to main content

Templates

Templates are prepared sets of attributes for creating agents, tasks, and objects. For more information about templates, see the Templates section of the Administrator guide.

Using the Public API, you can get a list of templates. To create or modify a template, use the 2GIS GeoFlow: Monitoring administrator web panel.

Getting the list of agent templates​

You can get a list of agent templates with template data: ID, name, agent icon on the map, creation and update date and time, and a list of attributes.

To get the list of agent templates, send a GET request to /v1/agent-templates with the limit parameter - the maximum number of templates in the response (from 1 to 100).

Request example:

curl --request GET \
--url 'https://geoflow.2gis.ru/public/api/v1/agent-templates?limit=2' \
--header 'Authorization: Bearer <token>'

Response example:

response.json
{
"items": [
{
"id": "af5e5d63-10f0-4ea0-b520-ddb36af1a59c",
"name": "Walking courier",
"icon": {
"name": "walk"
},
"attributes": [
{
"id": "6653466e-1f20-485c-928e-c18b4bffedbc",
"name": "Name",
"type": "text",
"is_required": true,
"is_identifier": true,
"show_in_list": false,
"sort_order": 0,
"meta": {
"alias": "identifier",
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "1efd0fb1-7216-4d69-8baf-4470570de40b",
"name": "Transport",
"type": "transport_type",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 1,
"meta": {
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "af5e5d63-10f0-4ea0-b520-ddb36af1a59c",
"name": "Working hours",
"type": "work_time_settings",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 0
}
],
"created_at": "2026-08-18T10:14:34.425838Z",
"updated_at": "2026-08-26T12:51:00.641843Z"
},
{
"id": "ab836921-2273-4f3a-b4a9-e16bc1bc2b32",
"name": "Delivery courier",
"icon": {
"name": "walk"
},
"attributes": [
{
"id": "1b9c78db-a18a-48b5-a18d-9c9e226bf4f3",
"name": "Identifier",
"type": "text",
"is_required": true,
"is_identifier": true,
"show_in_list": false,
"sort_order": 0,
"meta": {
"alias": "identifier",
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "c481e304-6703-4613-acfc-396827093900",
"name": "Transport",
"type": "transport_type",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 1,
"meta": {
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "c8c71b26-5f28-4483-9b11-8af3dbde1646",
"name": "Phone number",
"type": "phone",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 2,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "3e5f4c07-ad6e-46bb-9fb9-494455730fc9",
"name": "E-mail",
"type": "email",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 3,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "4810aee3-fa00-424b-9447-3c4040774bc3",
"name": "Car number",
"type": "text",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 4,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "4c09a015-490b-4632-b6ca-459c7425b349",
"name": "Skills",
"type": "skill",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 9,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "ab836921-2273-4f3a-b4a9-e16bc1bc2b32",
"name": "Working hours",
"type": "work_time_settings",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 0
}
],
"created_at": "2026-06-15T08:42:02.308191Z",
"updated_at": "2026-08-28T07:18:21.251005Z"
}
],
"cursor": {}
}

Each attribute contains an ID, name, type, and other data.

Getting an agent template by ID​

You can get agent template data by ID: name, agent icon on the map, creation and update date and time, and a list of attributes.

To get agent template data, send a GET request to /v1/agent-templates/{id}, where {id} is the agent template ID.

Request example:

curl --request GET \
--url 'https://geoflow.2gis.ru/public/api/v1/agent-templates/ab836921-2273-4f3a-b4a9-e16bc1bc2b32' \
--header 'Authorization: Bearer <token>'

Response example:

response.json
{
"id": "ab836921-2273-4f3a-b4a9-e16bc1bc2b32",
"name": "Courier",
"icon": {
"name": "walk"
},
"attributes": [
{
"id": "1b9c78db-a18a-48b5-a18d-9c9e226bf4f3",
"name": "Identifier",
"type": "text",
"is_required": true,
"is_identifier": true,
"show_in_list": false,
"sort_order": 0,
"meta": {
"alias": "identifier",
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "c481e304-6703-4613-acfc-396827093900",
"name": "Transport",
"type": "transport_type",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 1,
"meta": {
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "c8c71b26-5f28-4483-9b11-8af3dbde1646",
"name": "Phone number",
"type": "phone",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 2,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "3e5f4c07-ad6e-46bb-9fb9-494455730fc9",
"name": "E-mail",
"type": "email",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 3,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "4810aee3-fa00-424b-9447-3c4040774bc3",
"name": "Car number",
"type": "text",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 4,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "ab836921-2273-4f3a-b4a9-e16bc1bc2b32",
"name": "Working hours",
"type": "work_time_settings",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 0
}
],
"created_at": "2026-06-15T08:42:02.308191Z",
"updated_at": "2026-08-28T07:18:21.251005Z"
}

Each attribute contains an ID, name, type, and other data.

Getting the list of task templates​

You can get a list of task templates with template data: ID, name, creation and update date and time, and a list of attributes.

To get the list of task templates, send a GET request to /v1/task-templates with the limit parameter - the maximum number of templates in the response (from 1 to 100).

Request example:

curl --request GET \
--url 'https://geoflow.2gis.ru/public/api/v1/task-templates?limit=2' \
--header 'Authorization: Bearer <token>'

Response example:

response.json
{
"items": [
{
"id": "eaacda1f-251e-40a5-9d2d-b4cba2d462c3",
"name": "Object inspection tasks",
"attributes": [
{
"id": "8c8c5809-3cdf-41a3-bf19-9c47bf45aad9",
"name": "Identifier",
"type": "text",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 0,
"meta": {
"alias": "identifier",
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "d227f3d3-0c17-409e-9820-8e4f713be6e6",
"name": "Name",
"type": "name",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 1,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "9aa20ffb-e130-44a4-8fdf-03ae30ba226b",
"name": "Description",
"type": "description",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 2,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "5969d0f4-397f-4f82-8398-0c0dd81910ed",
"name": "Location",
"type": "destination",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 3,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "bc53e352-f052-4a40-bea6-8c5267541430",
"name": "Date and time",
"type": "time_windows_settings",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 4,
"meta": {
"is_sortable": false,
"is_deletable": false
},
"extra": {
"is_multi": false,
"is_time_limited_field": false,
"is_time_limited_field_required": false,
"is_units_field": false,
"is_units_field_required": false,
"is_weight_field": false,
"is_weight_field_required": false,
"is_volume_field": false,
"is_volume_field_required": false,
"is_dimensions_field": false,
"is_dimensions_field_required": false,
"is_depot_ready_time_field": false,
"is_depot_ready_time_field_required": false,
"is_depot_duration_field": false,
"is_depot_duration_field_required": false,
"is_name_field": false,
"is_name_field_required": false,
"is_job_title_field": false,
"is_job_title_field_required": false,
"is_phone_field": false,
"is_phone_field_required": false,
"is_email_field": false,
"is_email_field_required": false,
"is_comment_field": false,
"is_comment_field_required": false,
"is_camera_only": false,
"is_required_for_completion_result": false
}
},
{
"id": "8bc4e8b0-3409-44d5-aad9-069ed1033b5f",
"name": "Phone number",
"type": "phone",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 6,
"meta": {
"is_sortable": true,
"is_deletable": true
}
}
],
"created_at": "2026-06-15T08:38:33.800094Z",
"updated_at": "2026-08-19T13:00:57.798391Z"
},
{
"id": "6d49204c-8361-456b-b902-c095c9f783ba",
"name": "Maintenance tasks",
"attributes": [
{
"id": "c8f807d3-c39c-440c-981f-1079b8a8542a",
"name": "Identifier",
"type": "text",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 0,
"meta": {
"alias": "identifier",
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "6ec390f2-815f-42de-af6f-2f919709077b",
"name": "Name",
"type": "name",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 1,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "595845d5-6e4a-4cd0-b01b-8a21e9a8a4ee",
"name": "Description",
"type": "description",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 2,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "32b3fb5b-4b94-4536-815f-ba97568b24d1",
"name": "Location",
"type": "destination",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 3,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "a83970c7-f76b-4b29-ba27-00e1b398b137",
"name": "Date and time",
"type": "time_windows_settings",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 4,
"meta": {
"is_sortable": false,
"is_deletable": false
},
"extra": {
"is_multi": false,
"is_time_limited_field": true,
"is_time_limited_field_required": false,
"is_units_field": false,
"is_units_field_required": false,
"is_weight_field": false,
"is_weight_field_required": false,
"is_volume_field": false,
"is_volume_field_required": false,
"is_dimensions_field": false,
"is_dimensions_field_required": false,
"is_depot_ready_time_field": false,
"is_depot_ready_time_field_required": false,
"is_depot_duration_field": false,
"is_depot_duration_field_required": false,
"is_name_field": false,
"is_name_field_required": false,
"is_job_title_field": false,
"is_job_title_field_required": false,
"is_phone_field": false,
"is_phone_field_required": false,
"is_email_field": false,
"is_email_field_required": false,
"is_comment_field": false,
"is_comment_field_required": false,
"is_camera_only": false,
"is_required_for_completion_result": false
}
},
{
"id": "5f714148-eefb-4b0a-a006-3e10c7db1991",
"name": "Skills",
"type": "skill",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 7,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "460690bd-0894-4d82-9028-c8fc77245207",
"name": "Phone number",
"type": "phone",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 9,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "231a27b8-a5ec-4ade-a5e8-10510ea1c705",
"name": "Directory",
"type": "dictionary",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 11,
"meta": {
"is_sortable": true,
"is_deletable": true
},
"extra": {
"dictionary_id": "dfabe370-91df-4dab-9f01-9ebc7329cbf5",
"is_multi": true,
"is_time_limited_field": false,
"is_time_limited_field_required": false,
"is_units_field": false,
"is_units_field_required": false,
"is_weight_field": false,
"is_weight_field_required": false,
"is_volume_field": false,
"is_volume_field_required": false,
"is_dimensions_field": false,
"is_dimensions_field_required": false,
"is_depot_ready_time_field": false,
"is_depot_ready_time_field_required": false,
"is_depot_duration_field": false,
"is_depot_duration_field_required": false,
"is_name_field": false,
"is_name_field_required": false,
"is_job_title_field": false,
"is_job_title_field_required": false,
"is_phone_field": false,
"is_phone_field_required": false,
"is_email_field": false,
"is_email_field_required": false,
"is_comment_field": false,
"is_comment_field_required": false,
"is_camera_only": false,
"is_required_for_completion_result": false
}
}
],
"created_at": "2026-08-19T07:54:08.752555Z",
"updated_at": "2026-08-24T12:06:06.013284Z"
}
],
"cursor": {}
}

Each attribute contains an ID, name, type, and other data.

Getting a task template by ID​

You can get task template data by ID: name, creation and update date and time, and a list of attributes.

To get task template data, send a GET request to /v1/task-templates/{id}, where {id} is the task template ID.

Request example:

curl --request GET \
--url 'https://geoflow.2gis.ru/public/api/v1/task-templates/6d49204c-8361-456b-b902-c095c9f783ba' \
--header 'Authorization: Bearer <token>'

Response example:

response.json
{
"id": "6d49204c-8361-456b-b902-c095c9f783ba",
"name": "Maintenance tasks",
"attributes": [
{
"id": "c8f807d3-c39c-440c-981f-1079b8a8542a",
"name": "Identifier",
"type": "text",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 0,
"meta": {
"alias": "identifier",
"is_sortable": false,
"is_deletable": false
}
},
{
"id": "6ec390f2-815f-42de-af6f-2f919709077b",
"name": "Name",
"type": "name",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 1,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "595845d5-6e4a-4cd0-b01b-8a21e9a8a4ee",
"name": "Description",
"type": "description",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 2,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "32b3fb5b-4b94-4536-815f-ba97568b24d1",
"name": "Location",
"type": "destination",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 3,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "a83970c7-f76b-4b29-ba27-00e1b398b137",
"name": "Date and time",
"type": "time_windows_settings",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 4,
"meta": {
"is_sortable": false,
"is_deletable": false
},
"extra": {
"is_multi": false,
"is_time_limited_field": true,
"is_time_limited_field_required": false,
"is_units_field": false,
"is_units_field_required": false,
"is_weight_field": false,
"is_weight_field_required": false,
"is_volume_field": false,
"is_volume_field_required": false,
"is_dimensions_field": false,
"is_dimensions_field_required": false,
"is_depot_ready_time_field": false,
"is_depot_ready_time_field_required": false,
"is_depot_duration_field": false,
"is_depot_duration_field_required": false,
"is_name_field": false,
"is_name_field_required": false,
"is_job_title_field": false,
"is_job_title_field_required": false,
"is_phone_field": false,
"is_phone_field_required": false,
"is_email_field": false,
"is_email_field_required": false,
"is_comment_field": false,
"is_comment_field_required": false,
"is_camera_only": false,
"is_required_for_completion_result": false
}
},
{
"id": "5f714148-eefb-4b0a-a006-3e10c7db1991",
"name": "Skills",
"type": "skill",
"is_required": true,
"is_identifier": false,
"show_in_list": false,
"sort_order": 7,
"meta": {
"is_sortable": false,
"is_deletable": true
}
},
{
"id": "460690bd-0894-4d82-9028-c8fc77245207",
"name": "Phone number",
"type": "phone",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 9,
"meta": {
"is_sortable": true,
"is_deletable": true
}
},
{
"id": "231a27b8-a5ec-4ade-a5e8-10510ea1c705",
"name": "Directory",
"type": "dictionary",
"is_required": false,
"is_identifier": false,
"show_in_list": false,
"sort_order": 11,
"meta": {
"is_sortable": true,
"is_deletable": true
},
"extra": {
"dictionary_id": "dfabe370-91df-4dab-9f01-9ebc7329cbf5",
"is_multi": true,
"is_time_limited_field": false,
"is_time_limited_field_required": false,
"is_units_field": false,
"is_units_field_required": false,
"is_weight_field": false,
"is_weight_field_required": false,
"is_volume_field": false,
"is_volume_field_required": false,
"is_dimensions_field": false,
"is_dimensions_field_required": false,
"is_depot_ready_time_field": false,
"is_depot_ready_time_field_required": false,
"is_depot_duration_field": false,
"is_depot_duration_field_required": false,
"is_name_field": false,
"is_name_field_required": false,
"is_job_title_field": false,
"is_job_title_field_required": false,
"is_phone_field": false,
"is_phone_field_required": false,
"is_email_field": false,
"is_email_field_required": false,
"is_comment_field": false,
"is_comment_field_required": false,
"is_camera_only": false,
"is_required_for_completion_result": false
}
}
],
"created_at": "2026-08-19T07:54:08.752555Z",
"updated_at": "2026-08-24T12:06:06.013284Z"
}

Each attribute contains an ID, name, type, and other data.