Tasking Manager users are authenticated via OpenStreetMap OAuth. Each user profile stores their mapping level, role, notification preferences, social links, and contribution statistics. The endpoints below cover profile retrieval, self-service profile updates, task history, contribution statistics, and admin-level role management. All authenticated endpoints require anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/hotosm/tasking-manager/llms.txt
Use this file to discover all available pages before exploring further.
Authorization: Token <session_token> header. The API base path is /api/v2.
User Resources
Get User by ID
GET/api/v2/users/{user_id}/
Returns the profile of a user by their Tasking Manager user ID. Requires a valid token.
Path Parameters
The Tasking Manager user ID.
Response Fields
Tasking Manager user ID.
OSM username.
User’s platform role. One of:
READ_ONLY, MAPPER, ADMIN.Mapper skill level. One of:
BEGINNER, INTERMEDIATE, ADVANCED.Total number of projects the user has contributed to.
URL to the user’s OSM profile picture.
Whether the user has expert mode enabled.
Responses
| Status | Description |
|---|---|
200 | User profile returned. |
401 | Missing or invalid token. |
404 | User not found. |
500 | Internal server error. |
Delete User Account
DELETE/api/v2/users/{user_id}/
Deletes a user account. Only the user themselves or an admin may delete an account. Requires a valid token.
Path Parameters
ID of the user to delete.
Responses
| Status | Description |
|---|---|
200 | User deleted. Returns the deleted user object. |
400 | User not found. |
401 | Caller does not have permission (not self or admin). |
500 | Internal server error. |
List All Users
GET/api/v2/users/
Returns a paginated list of all users. Supports filtering by username, role, and mapping level. Requires a valid token.
Query Parameters
Page number for paginated results.
Number of results per page.
When
false, returns all users without pagination.Filter by full or partial OSM username.
Filter by user role. Valid values:
ADMIN, READ_ONLY, MAPPER.Filter by mapping level. Valid values:
BEGINNER, INTERMEDIATE, ADVANCED.Field to sort results by.
Sort direction. Valid values:
asc, desc.Responses
| Status | Description |
|---|---|
200 | Paginated user list returned. |
400 | Invalid query parameters. |
401 | Missing or invalid token. |
500 | Internal server error. |
Get User by Username
GET/api/v2/users/queries/{username}/
Returns user profile details by OpenStreetMap username. Requires a valid token.
Path Parameters
The user’s OpenStreetMap username (case-sensitive).
Responses
| Status | Description |
|---|---|
200 | User profile returned. |
401 | Missing or invalid token. |
404 | User not found. |
500 | Internal server error. |
Search Users by Partial Username
GET/api/v2/users/queries/filter/{username}/
Returns a paginated list of users whose username matches the provided partial or full string. Optionally promotes project participants to the top of results. Requires a valid token.
Path Parameters
Partial or full OSM username string to filter by.
Query Parameters
Page number for paginated results.
Optional project ID. When provided, users who have contributed to this project are promoted to the top of the results list.
Responses
| Status | Description |
|---|---|
200 | Matching users returned. |
401 | Missing or invalid token. |
404 | No users found matching the filter. |
500 | Internal server error. |
Get Favorited Projects for Authenticated User
GET/api/v2/users/queries/favorites/
Returns the list of projects favorited by the authenticated user. Requires a valid token.
Responses
| Status | Description |
|---|---|
200 | Favorited projects returned. |
404 | User not found. |
500 | Internal server error. |
Update Own Profile
PATCH/api/v2/users/me/actions/set-user/
Updates the authenticated user’s own profile settings. The id in the request body must match the authenticated user’s ID. Requires a valid token.
Request Body
Must match the authenticated user’s ID.
Display name.
City of residence.
Country of residence.
Email address for notifications. Set to an empty string or omit to clear.
Twitter handle (without
@).Facebook username.
LinkedIn username.
Gender identity.
Required when
gender is SELF_DESCRIBE.Responses
| Status | Description |
|---|---|
200 | Profile updated. |
400 | Invalid request body or validation error. |
401 | Token mismatch — id does not match authenticated user. |
500 | Internal server error. |
Get OSM Details for User
GET/api/v2/users/{username}/openstreetmap/
Returns OpenStreetMap account details for a user (account creation date and changeset count) by looking up the user directly from the OSM API. Requires a valid token.
Path Parameters
The user’s OpenStreetMap username.
Response Fields
ISO 8601 datetime when the OSM account was created.
Total number of OSM changesets made by this user.
Responses
| Status | Description |
|---|---|
200 | OSM details returned. |
401 | Missing or invalid token. |
404 | User not found in Tasking Manager. |
502 | Bad response from the OpenStreetMap API. |
500 | Internal server error. |
User Tasks
Get Tasks Interacted With by User
GET/api/v2/users/{user_id}/tasks/
Returns a paginated list of tasks that a specific user has mapped or validated, with optional filters by status, project, and date range. Requires a valid token.
Path Parameters
Tasking Manager user ID.
Query Parameters
Filter by task status. Valid values:
READY, LOCKED_FOR_MAPPING, MAPPED, LOCKED_FOR_VALIDATION, VALIDATED, INVALIDATED, BADIMAGERY.Filter by the status of the project the task belongs to. Valid values:
DRAFT, PUBLISHED, ARCHIVED.Restrict results to a specific project.
ISO 8601 datetime. Return only task actions from this date onward.
ISO 8601 datetime. Return only task actions up to this date.
Sort order. Valid values:
action_date, -action_date, project_id, -project_id. Prefix - for descending order.Page number.
Number of results per page.
Responses
| Status | Description |
|---|---|
200 | Task list returned (returns empty list if none found). |
401 | Missing or invalid token. |
500 | Internal server error. |
Get Tasks Currently Locked by Authenticated User
GET/api/v2/users/queries/tasks/locked/
Returns a list of tasks that the authenticated user currently has locked for mapping or validation, across all projects. Requires a valid token.
Responses
| Status | Description |
|---|---|
200 | Locked tasks returned. |
401 | Missing or invalid token. |
404 | User currently has no locked tasks. |
500 | Internal server error. |
Get Details of Tasks Locked by Authenticated User
GET/api/v2/users/queries/tasks/locked/details/
Returns full task details for all tasks the authenticated user currently has locked, including localized task information. Requires a valid token.
Responses
| Status | Description |
|---|---|
200 | Locked task details returned. |
401 | Missing or invalid token. |
404 | User currently has no locked tasks. |
500 | Internal server error. |
User Statistics
Get User Contribution Statistics
GET/api/v2/users/{username}/statistics/
Returns detailed contribution statistics for a user by their OSM username. Includes total time spent mapping and validating, projects mapped, tasks mapped and validated, country contributions, and contributions by interest. Requires a valid token.
Path Parameters
The user’s OpenStreetMap username.
Response Fields
Total mapping and validation time in seconds.
Time spent mapping in seconds.
Time spent validating in seconds.
Number of distinct projects the user has contributed to.
Total tasks the user has mapped.
Total tasks the user has validated.
Tasks the user has had invalidated by others.
Tasks originally mapped by this user and later validated by others.
Breakdown of contributions by country.
Array of daily contribution counts with
date and count fields.Breakdown of contributions by mapped interest category.
Responses
| Status | Description |
|---|---|
200 | User statistics returned. |
401 | Missing or invalid token. |
404 | User not found. |
500 | Internal server error. |
Get Platform User Registration Statistics
GET/api/v2/users/statistics/
Returns aggregate statistics about users registered within a specified date range (e.g., new registrations over time). Requires a valid token. Date range cannot exceed three years.
Query Parameters
Start date in
YYYY-MM-DD format.End date in
YYYY-MM-DD format. Defaults to today. Cannot be earlier than startDate. Range cannot exceed three years.Responses
| Status | Description |
|---|---|
200 | User statistics returned. |
400 | Invalid date format or range too large. |
401 | Missing or invalid token. |
500 | Internal server error. |
User Actions
Register User (Email-only)
POST/api/v2/users/actions/register/
Registers a user without an OpenStreetMap account using only an email address. This is used for observers or partners who do not map but need platform access. No authentication required.
Request Body
Email address to register with.
Response Fields
The registered email address.
true if the registration succeeded.Human-readable result message.
New user ID.
Responses
| Status | Description |
|---|---|
200 | User registered. |
400 | Invalid email or user already exists. |
500 | Internal server error. |
Set User Role
PATCH/api/v2/users/{username}/actions/set-role/{role}/
Sets a user’s platform role. Restricted to Admin users only.
Path Parameters
The OSM username of the user whose role is being changed.
New role to assign. Valid values:
ADMIN, MAPPER, READ_ONLY.Responses
| Status | Description |
|---|---|
200 | Role set. Body: {"Success": "Role Added"} |
401 | Missing or invalid token. |
403 | Caller is not an admin. |
404 | User not found. |
500 | Internal server error. |
Set Mapper Level
PATCH/api/v2/users/{username}/actions/set-level/{level}/
Manually sets a user’s mapping level. Restricted to Admin users only. Normally the platform auto-promotes users based on their contribution count.
Path Parameters
The OSM username of the user.
Mapping level to assign. Valid values:
BEGINNER, INTERMEDIATE, ADVANCED.Responses
| Status | Description |
|---|---|
200 | Level set. Body: {"Success": "Level set"} |
400 | Invalid level value. |
401 | Missing or invalid token or caller is not an admin. |
404 | User not found. |
500 | Internal server error. |
Set Expert Mode
PATCH/api/v2/users/{user_name}/actions/set-expert-mode/{is_expert}/
Enables or disables expert mode for a user. Restricted to Admin users only.
Path Parameters
The OSM username of the user.
Set to
true to enable expert mode, false to disable.Responses
| Status | Description |
|---|---|
200 | Expert mode updated. Body: {"Success": "Expert mode updated"} |
400 | Invalid value. |
401 | Missing or invalid token or caller is not an admin. |
500 | Internal server error. |
Resend Email Verification
PATCH/api/v2/users/me/actions/verify-email/
Resends the email verification message to the authenticated user’s registered email address. Requires a valid token.
Responses
| Status | Description |
|---|---|
200 | Verification email sent. Body: {"Success": "Verification email resent"} |
400 | Invalid email state. |
500 | Internal server error. |
Set User Interests
POST/api/v2/users/me/actions/set-interests/
Creates or replaces the interest associations for the authenticated user. Requires a valid token.
Request Body
Array of integer interest IDs to associate with the user.
Responses
| Status | Description |
|---|---|
200 | User interests updated. |
400 | Invalid request. |
401 | Missing or invalid token. |
500 | Internal server error. |