Bulk Import (Sync) — QR Code Tags

Bulk Import (Sync) — QR Code Tags

POST /api/qrcode-tags/bulk-import

Bulk import QR code tags by providing an array of tag objects. Existing tags (matched by qr_code_uuid + tag_name + tag_number) are restored and updated; new tags are created.

Request Body

Send a JSON array of tag objects:

Parameter Type Required Description
qr_code_uuid string Yes UUID of the QR code address this tag belongs to
tag_display_name string Yes Display name for the tag (CLIENT tags default to <tag_name>#<tag_number> when not supplied)
tag_name string Yes Name of the tag — must not contain numbers and must be 40 characters or fewer
tag_number string Yes Unique reference ID — 20 characters or fewer
type string Yes Tag type: SITE or CLIENT
status string No Tag status: ACTIVE or INACTIVE
deleted boolean No Soft-delete the tag
service_alert_recipients array No List of notification recipients (maximum 2 per tag)

Service Alert Recipient

Each recipient object in service_alert_recipients:

Field Type Required Description
contact_type string Yes Type of contact: EMAIL or SMS
contact_value string Yes Contact email or phone number (phone numbers should be in international format, e.g. +61...)
contact_name string No Name of the contact person
formatted_phone_number string No Formatted phone number
is_active boolean No Whether this recipient is active

Example

json
[
  {
    "qr_code_uuid": "ABC123DEF456GHI789JKLM",
    "tag_display_name": "Main Entrance",
    "tag_name": "entrance-01",
    "tag_number": "TAG-001",
    "type": "SITE"
  }
]

See Errors & Rate Limits for the common error contract used across the API.

Error Codes

Status Meaning
400 Bad Request — validation error
401 Unauthorized
403 Access Denied or subscription required
500 Internal Server Error

Example Request

curl
curl -X POST http://staging.didyougo.com.au/api/qrcode-tags/bulk-import \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your_api_key:your_api_secret" \
  -d '[
    {
      "qr_code_uuid": "ABC123DEF456GHI789JKLM",
      "tag_display_name": "Main Entrance",
      "tag_name": "entrance-01",
      "tag_number": "TAG-001",
      "type": "SITE"
    },
    {
      "qr_code_uuid": "ABC123DEF456GHI789JKLM",
      "tag_display_name": "Ward 3A",
      "tag_name": "ward-3a",
      "tag_number": "TAG-002",
      "type": "SITE"
    }
  ]'

Try It

Try it

Requests are sent without cookies — you must provide a valid Bearer <api_key>:<api_secret> header.

API Response
Click the Send API Request button above and see the response here!

Example Response

json
{
  "qr_code_tags_inserted": [
    {
      "uuid": "XYZ789UVW123RST456MNOP",
      "qr_code_uuid": "ABC123DEF456GHI789JKLM",
      "tag_display_name": "Main Entrance",
      "tag_name": "entrance-01",
      "tag_number": "TAG-001",
      "type": "SITE",
      "status": "ACTIVE",
      "deleted": false,
      "is_favourite": false,
      "created_on": "2025-01-15T10:30:00Z",
      "updated_on": "2025-01-15T10:30:00Z",
      "deleted_on": null
    }
  ],
  "qr_code_tags_restored": [],
  "qr_code_tags_skipped": []
}