For the complete documentation index, see llms.txt. This page is also available as Markdown.

Get Dispatch Templates

Retrieve the custom dispatch call layouts configured for the authenticated community.

GET https://api.sonorancad.com/v2/emergency/dispatch-templates

Retrieve every dispatch layout for the community. Add /{templateId} to retrieve one layout. Use the returned field uid values when creating a custom dispatch call.

A template contains grouped sections, responsive field widths, and custom statusOptions. Each status option maps its community-facing label and API id to the canonical call behavior: 0 pending, 1 active, or 2 closed.

Fields with the status, units, or description binding are locked and required. Priority is represented as a standard select field whose text options are fully controlled by the community. The code field's visible label is controlled by the community's geographical 10-code setting.

Example Request

-- luarocks install sonoran.lua
local Sonoran = require("sonoran")

local sonoran = Sonoran.createClient({
  product = Sonoran.productEnums.CAD,
  communityId = "YOUR_COMMUNITY_ID",
  apiKey = "YOUR_API_KEY",
  defaultServerId = 1
})

local response = sonoran.cad:getDispatchTemplatesV2()
if response.success then
  print(("Found %d dispatch templates"):format(#response.data))
end

Use this tab when calling the v2 API from the server side of an in-game FiveM resource.

  • Sonoran.lua and Sonoran.js: use the sonorancad export to get the configured CAD client.

  • Sonoran.Net: read the protected Sonoran CAD convars and create a client.

  • Sonoran.py: FiveM does not run Python resources; use the Sonoran.py tab for external integrations.

Sonoran.lua

local cad = exports["sonorancad"]:getCadClient()
local response = cad:getDispatchTemplatesV2()

Sonoran.js

(async () => {
  const cad = exports["sonorancad"].getCadClient();
  const response = await cad.getDispatchTemplatesV2();
  console.log(response.data);
})();

Sonoran.Net

using System.Collections.Generic;
using CitizenFX.Core.Native;
using Sonoran;

var serverId = int.TryParse(API.GetConvar("sonoran_serverId", "1"), out var parsed) ? parsed : 1;
using var sonoran = new SonoranClient(new SonoranClientOptions
{
    product = SonoranProduct.CAD,
    communityId = API.GetConvar("sonoran_communityID", ""),
    apiKey = API.GetConvar("sonoran_apiKey", ""),
    defaultServerId = serverId
});

var response = await sonoran.Cad.getDispatchTemplatesV2();
var templates = response.data?.ToObject<List<DispatchTemplateV2>>() ?? new();

Response

Last updated

Was this helpful?