Campaigns are thematic labels that can be applied across many projects and organisations, allowing coordinators to track mapping progress for a humanitarian response, a research initiative, or any other sustained effort. Creating or modifying a campaign requires the authenticated user to manage at least one organisation. Reading campaign data is public and requires no authentication.Documentation 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.
Campaign CRUD
List All Campaigns
GET /api/v2/campaigns/
Returns every campaign in the system. No filtering is currently supported at this endpoint; use the organisation or project sub-resources to scope results.
Authentication: Not required
Response 200 OK
Create a Campaign
POST /api/v2/campaigns/
Creates a new campaign. The authenticated user must be the manager of at least one organisation.
Authentication: Required (organisation manager)
Request Body
Unique name for the campaign. Must not be an empty string.
URL of a logo image to display with the campaign.
External URL for more information about the campaign.
A free-text description of the campaign’s scope and goals.
Array of organisation IDs to associate with the campaign on creation.
201 Created
| Status | Meaning |
|---|---|
403 | User does not manage any organisation |
409 | A campaign with this name already exists |
Get Campaign by ID
GET /api/v2/campaigns/{campaign_id}/
Retrieves full details of a single campaign, including its linked organisations.
Authentication: Not required
Path Parameters
The unique numeric campaign ID.
200 OK
Update a Campaign
PATCH /api/v2/campaigns/{campaign_id}/
Updates one or more fields on an existing campaign. The authenticated user must manage at least one organisation.
Authentication: Required (organisation manager)
Path Parameters
The unique numeric campaign ID.
New campaign name. Must be unique across all campaigns.
Updated logo URL.
Updated external URL.
Updated description.
Replacement list of organisation IDs to associate with the campaign.
200 OK
| Status | Meaning |
|---|---|
400 | Campaign name already exists |
403 | User does not manage any organisation |
404 | Campaign not found |
Delete a Campaign
DELETE /api/v2/campaigns/{campaign_id}/
Permanently deletes a campaign. The requesting user must manage at least one organisation.
Authentication: Required (organisation manager)
Path Parameters
The unique numeric campaign ID.
200 OK
| Status | Meaning |
|---|---|
403 | User does not manage any organisation |
404 | Campaign not found |
Message All Campaign Contributors
POST /api/v2/campaigns/{campaign_id}/actions/message-contributors/
Sends an in-app message to every user who has contributed to any project in the campaign. This operation is dispatched asynchronously as a background task. Only platform admins may use this endpoint.
Authentication: Required (ADMIN only)
Path Parameters
ID of the campaign.
Subject line of the message. Must not be empty.
Body text of the message. Must not be empty.
200 OK
Project–Campaign Associations
Campaigns can be linked to individual projects independently of the organisation-level campaign associations. Project managers use these endpoints to tag their projects with one or more campaigns.List Campaigns for a Project
GET /api/v2/projects/{project_id}/campaigns/
Returns all campaigns associated with a given project.
Authentication: Not required
Path Parameters
ID of the project.
200 OK
Add a Campaign to a Project
POST /api/v2/projects/{project_id}/campaigns/{campaign_id}/
Links a campaign to a project. The requesting user must be a project manager for the specified project.
Authentication: Required (project manager)
Path Parameters
ID of the project.
ID of the campaign to link.
200 OK
| Status | Meaning |
|---|---|
400 | Campaign is already assigned to this project |
403 | User is not a project manager |
Remove a Campaign from a Project
DELETE /api/v2/projects/{project_id}/campaigns/{campaign_id}/
Removes the association between a campaign and a project. Does not delete the campaign.
Authentication: Required (project manager)
Path Parameters
ID of the project.
ID of the campaign to unlink.
200 OK
| Status | Meaning |
|---|---|
400 | Invalid request. |
403 | User is not a project manager |
Data Models
Unique numeric identifier for the campaign.
Human-readable campaign name (must be unique).
URL of the campaign logo image.
External URL with additional campaign information.
Free-text description of the campaign.
List of organisation DTOs associated with this campaign. Each item includes
organisationId, name, slug, logo, and url.