Skip to main content
Ranks the available teams of your tenant for one action of your event catalog (for example cardiac_arrest) at an incident location. When automatic dispatch is on for your tenant, wede also dispatches the best team, as long as its score reaches your minimum score. The same mechanism processes dispatches that field devices queue while offline and send later through Device sync.

Authentication

Session token (Authorization: Bearer <token>) with the dispatch:assign permission. Tenant roles with it: company_admin, operational_supervisor, corporate_client.
The integration API key (x-wede-api-key) has no dispatch:* permission. Calls with an API key return 403 forbidden.

Body

string
required
id of an event type of your catalog (GET /v1/catalog, see Event types). Only types that send a team (requires_teams) rank anyone.
number
required
Latitude of the incident.
number
required
Longitude of the incident.
string
Identifier of the incident, for example the event_id wede returned for the event. If you omit it, wede generates a new UUID and returns it.
string
Priority of the incident. It influences the suggested channel of each team.
Send the same event_id when you retry: if the chosen team already has a mission for that event, wede returns it instead of creating a second one.

Example

Response 200

object
The catalog action: id, code, name, vertical.
string
The event_id you sent, or the one wede generated.
object[]
Available teams with members that cover this event type (PUT /v1/teams/{teamId}/coverage), best match first.
object[]
Available teams with members that cover the whole category of this event type, best match first.
object[]
Always an empty array since 8 October 2026: a team that covers neither the type nor its category is never a candidate. It is listed in excluded.
object
Same fields as in Dispatch score, plus tier (1 or 2), fallback (false) and missing_equipment, the codes the type calls for that the team does not have operational (they lower the score and never exclude the team). recommended marks the first team within each tier.
object[]
Teams of the vertical left out, each with team_id, team_name and reason: no_members or no_coverage.
integer
Total number of candidate teams.
boolean
Whether automatic dispatch is on for your tenant.
object | null
The team wede dispatched automatically (team_id, team_name, score, channel), or null.
boolean
true when the chosen team already had a mission for this event_id, so wede returned that mission.
string | null
Mission of the automatically dispatched team, or null.
boolean
true when automatic dispatch is on but could not be completed. An operator must choose a team. Always false when automatic dispatch is off.
number
Your tenant’s minimum score for automatic dispatch, from 0 to 1.

Automatic dispatch

Automatic dispatch is a tenant setting. A company_admin or company_tech turns it on and sets the minimum score with PATCH /v1/tenant/dispatch-settings (dispatch_mode, dispatch_threshold). When it is on, wede takes the best tier 1 team, or the best tier 2 team when no team covers the type itself, and:
  1. Records the dispatch and sets the team to on_mission.
  2. Creates a mission with status CREATED, the type’s vertical and the incident coordinates.
  3. Sends the team.dispatched webhook with { team_id, event_id, auto: true, tier, below_threshold }.
wede never waits for ideal conditions: a team below threshold is dispatched all the same and the mission is marked below_threshold. Only when no candidate is free does the event stay in the dispatch queue, which wede retries every minute. When automatic dispatch is off, the endpoint only ranks teams, and an operator dispatches with Dispatch a team.

Errors

SDKs

dispatchAction in JavaScript, dispatch_action in Python.