# Create Blip

<mark style="color:green;">`POST`</mark> `https://api.sonorancad.com/v2/emergency/servers/{serverId}/blips`

> **Rate limit:** `10 requests per minute`\
> Authenticated v2 endpoints are rate limited per API key rather than per IP address.

## Path Parameters

| Name       | Type    | Description                       |
| ---------- | ------- | --------------------------------- |
| `serverId` | integer | Configured Sonoran CAD server ID. |

## Request Body

```json
{
  "coordinates": {
    "x": 441.2,
    "y": -981.9,
    "z": 0.0,
    "w": 0.0
  },
  "subType": "scene",
  "icon": "fa-circle",
  "color": "red",
  "tooltip": "Scene perimeter",
  "radius": 50.0,
  "data": [
    {
      "title": "Units",
      "text": "2"
    }
  ]
}
```

## Example Request

{% tabs %}
{% tab title="Sonoran.lua" %}

```lua
-- 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:createBlipV2({
    serverId = 1,
    coordinates = { x = 425.1, y = -979.2, z = 30.7, w = 0 },
    subType = 'radius',
    icon = 'fire',
    color = '#ff0000',
    tooltip = 'Structure Fire',
    radius = 25,
  })

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

{% endtab %}

{% tab title="Sonoran.js" %}

```javascript
// npm install @sonoransoftware/sonoran.js
const Sonoran = require('@sonoransoftware/sonoran.js');

(async () => {
  const instance = new Sonoran.Instance({
    communityId: 'YOUR_COMMUNITY_ID',
    apiKey: 'YOUR_API_KEY',
    product: Sonoran.productEnums.CAD,
    serverId: 1,
  });

  const response = await instance.cad.createBlipV2({
    serverId: 1,
    coordinates: { x: 425.1, y: -979.2, z: 30.7, w: 0 },
    subType: 'radius',
    icon: 'fire',
    color: '#ff0000',
    tooltip: 'Structure Fire',
    radius: 25,
  });
  console.log(response);
})();
```

{% endtab %}

{% tab title="Sonoran.py" %}

```python
# pip install Sonoran.py
from sonoran import Instance, productEnums

instance = Instance(
    apiKey="YOUR_API_KEY",
    communityId="YOUR_COMMUNITY_ID",
    product=productEnums.CAD,
    serverId=1,
)

response = instance.cad.createBlipV2({
    "serverId": 1,
    "coordinates": { "x": 425.1, "y": -979.2, "z": 30.7, "w": 0 },
    "subType": 'radius',
    "icon": 'fire',
    "color": '#ff0000',
    "tooltip": 'Structure Fire',
    "radius": 25,
  })

print(response.success)
print(response.data if response.success else response.reason)
```

{% endtab %}

{% tab title="Sonoran.Net" %}

```csharp
// dotnet add package Sonoran.Net
using Sonoran;

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

var response = await sonoran.Cad.createBlipV2(new CreateBlipV2Request
{
    ServerId = 1,
    Coordinates = new BlipCoordinatesV2
    {
        X = 420.1,
        Y = -980.4,
        Z = 30.8
    },
    SubType = "call",
    Icon = "fire",
    Color = "red",
    Tooltip = "Structure Fire",
    Radius = 50
});

Console.WriteLine(response.success);
Console.WriteLine(response.data);
```

{% endtab %}

{% tab title="OpenAPI" %}
Import this YAML into Postman with **Import -> Raw text** to create a single-endpoint request collection for this route.

```yaml
openapi: "3.0.3"
info:
  title: "Sonoran CAD v2 - Create Blip"
  version: "1.0.0"
  description: "Create a custom blip."
servers:
  -
    url: "https://api.sonorancad.com"
paths:
  /v2/emergency/servers/{serverId}/blips:
    post:
      summary: "Create Blip"
      operationId: "createBlip"
      responses:
        200:
          description: "Successful response"
          content:
            application/json:
              schema:
                type: "object"
              example:
                id: 32
                coordinates:
                  x: 425.5
                  y: -979.8
                  z: 0.0
                  w: 0.0
                subType: "radius"
                icon: "fa-location-dot"
                color: "#ff0000"
                tooltip: "Perimeter"
                data:
                  title: "Assigned Unit"
                  text: "A-10"
                radius: 100.0
      parameters:
        -
          description: "Configured Sonoran CAD server ID."
          name: "serverId"
          in: "path"
          schema:
            type: "integer"
          example: 1
          required: true
      security:
        -
          bearerAuth:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: "object"
            example:
              coordinates:
                x: 441.2
                y: -981.9
                z: 0.0
                w: 0.0
              subType: "scene"
              icon: "fa-circle"
              color: "red"
              tooltip: "Scene perimeter"
              radius: 50.0
              data:
                title: "Units"
                text: "2"
components:
  securitySchemes:
    bearerAuth:
      type: "http"
      scheme: "bearer"
      bearerFormat: "JWT"
```

{% endtab %}

{% tab title="cURL" %}

```bash
curl --request POST \
  --url "https://api.sonorancad.com/v2/emergency/servers/1/blips" \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{
  "coordinates": {
    "x": 441.2,
    "y": -981.9,
    "z": 0.0,
    "w": 0.0
  },
  "subType": "scene",
  "icon": "fa-circle",
  "color": "red",
  "tooltip": "Scene perimeter",
  "radius": 50.0,
  "data": [
    {
      "title": "Units",
      "text": "2"
    }
  ]
}'
```

{% endtab %}
{% endtabs %}

## Response

Successful requests return `application/json`.

```json
{
  "id": 32,
  "coordinates": {
    "x": 425.5,
    "y": -979.8,
    "z": 0.0,
    "w": 0.0
  },
  "subType": "radius",
  "icon": "fa-location-dot",
  "color": "#ff0000",
  "tooltip": "Perimeter",
  "data": [
    {
      "title": "Assigned Unit",
      "text": "A-10"
    }
  ],
  "radius": 100.0
}
```
