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": []
}