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

Create Community Link

Create a short-lived community user link code.

POST https://api.sonorancad.com/v2/general/links

Rate limit: 30 requests per minute Authenticated v2 endpoints are rate limited per API key rather than per IP address.

Create a 4-character code for a communityUserId. The code is scoped to the authenticated community and expires after 10 minutes.

Request Body

{
  "communityUserId": "player_12345"
}

Example Request

-- luarocks install sonoran.lua
-- For SonoranCADFiveM in-game usage, see the SonoranCADFiveM tab for the export-based client.
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:createCommunityLinkV2({
    communityUserId = 'player_12345',
  })

-- Inspect response.success, response.data, or response.reason as needed.
print(response.success)

Use this tab only 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 ready CAD client.

  • Sonoran.Net: FiveM exports do not return a .NET client. Read the Sonoran CAD convars and create a fresh client.

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

The API key is stored in sonoran_apiKey as a protected FiveM convar. FiveM restricts a convar after add_convar_permission is configured, so only explicitly permitted resources can read it. Grant another resource access with add_convar_permission your-resource-name read sonoran_apiKey. If you change the API key in config.json, fully restart the sonorancad resource before reading the updated convar value.

Sonoran.lua

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

Sonoran.js

const cad = exports["sonorancad"].getCadClient();

Sonoran.Net

// dotnet add package Sonoran.Net
using CitizenFX.Core.Native;
using Sonoran;

var communityId = API.GetConvar("sonoran_communityID", "");
var apiKey = API.GetConvar("sonoran_apiKey", "");
var serverIdRaw = API.GetConvar("sonoran_serverId", "1");
var serverId = int.TryParse(serverIdRaw, out var parsedServerId) ? parsedServerId : 1;

using var sonoran = new SonoranClient(new SonoranClientOptions
{
    product = SonoranProduct.CAD,
    communityId = communityId,
    apiKey = apiKey,
    defaultServerId = serverId
});

After getting the Lua export client:

Import this YAML into Postman with Import -> Raw text to create a single-endpoint request collection for this route.

Response

Successful requests return application/json.

Linking Account

Once a link code is created, direct the user to sonorancad.com/id?code=ENTERCODEHERE.

If the user is not logged in, they will be automatically redirected. The 4-digit code will be automatically entered into the ID page, processed, and the user's communityUserId will be linked to the community account.

Once linked, the communityUserId parameter can be used with any applicable v2 API endpoint.

To detect that link completion immediately, listen for the Community Link Verified push event or poll Check Community Link when needed.

Last updated

Was this helpful?