Welcome to the QRTRAC API — a powerful, enterprise-grade REST API for creating, managing, and tracking QR codes at scale. Built for developers who need reliable, flexible QR code management with advanced features like team collaboration, bulk operations, and comprehensive analytics.
QRTRAC is a comprehensive platform that enables businesses to generate, manage, and track QR codes programmatically. Whether you're building a marketing campaign, implementing contactless solutions, or managing digital assets, QRTRAC provides the infrastructure and tools you need.
Key Features:
The QRTRAC API is organized into the following functional areas:
Full CRUD operations for QR codes including creation, updates, deletion, duplication, and custom image uploads. Support for pagination, search, filtering, and sorting.
Retrieve detailed scan analytics data for individual QR codes or bulk analytics for multiple QR codes within specified time ranges. Track scan events, device information, geographic data, and engagement metrics.
Create and manage teams within your organization, configure domain preferences, and control access with granular permissions.
Invite, activate, pause, and manage team members with role-based permissions. Support for bulk member operations across multiple teams.
Follow these steps to start using the QRTRAC API:
Sign up at qrtrac.com/signup and upgrade to a Business Plus plan or higher to get API access. API access is available on paid plans only. Check pricing at qrtrac.com/#pricing.
Navigate to app.qrtrac.com/pages/api to retrieve your Client ID and Client Secret. These credentials are required for all API operations.
Note: You must have an Owner or Admin role and be on a Business Plus plan or higher to access the API. Check pricing at qrtrac.com/#pricing.
Your Team ID can be obtained from the API page in the application at app.qrtrac.com/pages/api. This team ID is required for most operations.
Use the /qrs-api POST endpoint to create your first QR code. You'll need your team ID, client ID, and client secret. Specify the QR type, redirect URL, and any custom settings.
Browse the available endpoints in the sidebar to discover all available operations. Each endpoint includes detailed request/response examples.
Here's a complete example of creating a QR code:
# Get your Client ID and Client Secret from https://app.qrtrac.com/pages/api
# Note: Owner/Admin role and Business Plus plan or higher required
# Then make your API request:
curl -X POST https://api.qrtrac.com/api/qrs-api \
-H "x-request-team-id: <team_id>" \
-H "x-request-client-id: <client_id>" \
-H "x-request-client-secret: <client_secret>" \
-H "Content-Type: application/json" \
-d '{
"name": "Product Launch Landing Page",
"qrType": "WEB",
"displayId": "product-launch-2024",
"qrRedirectUrl": "https://acmecorp.com/product-launch"
}'
For more examples in multiple languages (cURL, Python, Node.js, Java, C#), see the Create QR Code and Get QR by ID endpoints.
All API responses follow a consistent format:
{
"success": true,
"data": { ... }
}
Error responses include a message field:
{
"success": false,
"message": "Error description"
}
API rate limits are applied per team and vary based on your subscription plan. Rate limit information is included in response headers:
X-RateLimit-Limit: Maximum number of requests allowedX-RateLimit-Remaining: Number of requests remainingX-RateLimit-Reset: Time when the rate limit resetsAPI access is available on the following plans with increasing request limits:
Rate limits are enforced on a per-team basis. If you exceed your plan's rate limit, you'll receive a 429 Too Many Requests response. Contact support@qrtrac.com to upgrade your plan or discuss custom rate limits for Enterprise customers.
For additional help, questions, or to report issues, please contact our support team.
Create a new QR code. Requires authentication using client ID and client secret, along with team context.
Required Headers:
x-request-team-id: <team_id> - Team ID for the request contextx-request-client-id: <client_id> - Client ID from API menux-request-client-secret: <client_secret> - Client Secret from API menuNote: Client ID and Client Secret can be obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. Check pricing at qrtrac.com/#pricing.
Optional Parameters:
templateId: Template ID for QR code design. Can be found at app.qrtrac.com/pages/api. If not provided, default template is used.baseUrl: Custom domain base URL for QR codes. Must end with '/'. Prerequisite: Custom domain must be configured in the application. Can be found at app.qrtrac.com/pages/api. Example: If main domain is qrtrac.com and custom domain subdomain qr.qrtrac.com is configured, the baseUrl would be https://qr.qrtrac.com/. If not provided, default domain is used.Middleware: checkQrLimit, canAddUpdateQr
| Type | Description |
|---|---|
WEB |
Simple URL redirect |
PDF |
PDF document viewer |
VCARD |
Digital business card |
MULTI_LOCALE |
Multi-language URLs |
APP_DOWNLOAD |
App store links |
LINK_LIST |
Multiple links page |
SHORT_LINK |
URL shortener |
COUPON_CODE |
Coupon codes |
IMAGE_GALLERY |
Image gallery |
SOCIAL_BIO |
Social bio page |
VIDEO_PREVIEW |
Video preview |
RESTAURANT_MENU |
Restaurant menu |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| name | string QR code name (defaults to "Untitled") |
| qrType required | string Enum: "WEB" "PDF" "VCARD" "MULTI_LOCALE" "APP_DOWNLOAD" "LINK_LIST" "SHORT_LINK" "COUPON_CODE" "IMAGE_GALLERY" "SOCIAL_BIO" "VIDEO_PREVIEW" "RESTAURANT_MENU" Type of QR code |
| displayId | string^[a-zA-Z0-9\-_.~%]+$ Custom short URL ID (alphanumeric, hyphens, underscores) |
| qrRedirectUrl | string <uri> Redirect URL (required for web type) |
| metadata | object Custom metadata |
| settings | object QR code settings |
| tags | Array of strings |
| folderId | string Folder ID to place the QR code in (Coming Soon) |
| folderIds | Array of strings Folder hierarchy (Coming Soon) |
| templateId | string Template ID for QR code design. Can be found at app.qrtrac.com/pages/api. If not provided, default template is used. |
| baseUrl | string <uri> ^https?://.*/$ Custom domain base URL for QR codes. Must end with '/'. Prerequisite: Custom domain must be configured in the application. Can be found at app.qrtrac.com/pages/api. Example: If main domain is |
Redirect to any URL when scanned
{- "name": "My Website",
- "qrType": "WEB",
}{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Create a copy of an existing QR code with a new ID
| id required | string QR code ID to duplicate |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Update an existing QR code
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| name | string QR code name (defaults to "Untitled") |
| qrType required | string Enum: "WEB" "PDF" "VCARD" "MULTI_LOCALE" "APP_DOWNLOAD" "LINK_LIST" "SHORT_LINK" "COUPON_CODE" "IMAGE_GALLERY" "SOCIAL_BIO" "VIDEO_PREVIEW" "RESTAURANT_MENU" Type of QR code |
| displayId | string^[a-zA-Z0-9\-_.~%]+$ Custom short URL ID (alphanumeric, hyphens, underscores) |
| qrRedirectUrl | string <uri> Redirect URL (required for web type) |
| metadata | object Custom metadata |
| settings | object QR code settings |
| tags | Array of strings |
| folderId | string Folder ID to place the QR code in (Coming Soon) |
| folderIds | Array of strings Folder hierarchy (Coming Soon) |
| templateId | string Template ID for QR code design. Can be found at app.qrtrac.com/pages/api. If not provided, default template is used. |
| baseUrl | string <uri> ^https?://.*/$ Custom domain base URL for QR codes. Must end with '/'. Prerequisite: Custom domain must be configured in the application. Can be found at app.qrtrac.com/pages/api. Example: If main domain is |
{- "name": "Product Launch Landing Page",
- "qrType": "WEB",
- "displayId": "product-launch-2024",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "templateId": "qwrIYX8iLAuDHSBCiKZl",
}{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Soft delete a QR code (moves to deleted collection)
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Update tags for a specific QR code
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| tags | Array of strings |
{- "tags": [
- "marketing",
- "product-launch",
- "q4-2024"
]
}{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Update only the title/name of a QR code
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| title required | string non-empty |
{- "title": "Summer Campaign - Homepage"
}{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Retrieve QR codes with pagination, search, sorting, and folder filtering. This is the recommended endpoint for listing QR codes.
| limit | integer [ 1 .. 100 ] Default: 10 Number of items per page |
| page | integer >= 1 Default: 1 Page number |
| search | string Search by name or displayId |
| sortBy | string Default: "updatedAt" Enum: "createdAt" "updatedAt" "name" Field to sort by |
| sortOrder | string Default: "desc" Enum: "asc" "desc" Sort direction |
| folderId | string Filter by folder ID (Coming Soon) |
| x-request-team-id required | string Team ID for the request context |
{- "success": true,
- "data": {
- "qrs": [
- {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
], - "totalCount": 0,
- "page": 0,
- "limit": 0
}
}curl -X GET https://api.qrtrac.com/api/qrs-api/teams/{id} \ -H "x-request-team-id: <team_id>" \ -H "x-request-client-id: <client_id>" \ -H "x-request-client-secret: <client_secret>"
{- "success": true,
- "data": {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Retrieve QR codes updated after a specific timestamp
| fromTime required | integer Unix timestamp in milliseconds |
| x-request-team-id required | string Team ID for the request context |
{- "success": true,
- "data": [
- {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
]
}Retrieve all QR codes (across teams) updated after a specific timestamp
| fromTime required | integer Unix timestamp in milliseconds |
{- "success": true,
- "data": [
- {
- "id": "string",
- "displayId": "string",
- "name": "string",
- "qrType": "string",
- "teamId": "string",
- "orgId": "string",
- "qrRedirectUrl": "string",
- "qrImageUrl": "string",
- "qrImageHash": "string",
- "metadata": { },
- "settings": { },
- "tags": [
- "string"
], - "folderId": "string",
- "folderIds": [
- "string"
], - "batchId": "string",
- "deleted": true,
- "expiryDate": 0,
- "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
]
}Retrieve all QR code design templates available for a team
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
curl -X GET https://api.qrtrac.com/api/qr-templates-api \ -H "x-request-team-id: <team_id>" \ -H "x-request-client-id: <client_id>" \ -H "x-request-client-secret: <client_secret>"
{- "success": true,
- "data": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewUrl": "string",
- "createdAt": 0
}
]
}Retrieve detailed scan analytics data for a specific QR code by its ID.
Required Headers:
x-request-team-id: <team_id> - Team ID for the request contextx-request-client-id: <client_id> - Client ID from API menux-request-client-secret: <client_secret> - Client Secret from API menuNote: For total scan counts, use the /analytics-api/overviews endpoint.
| id required | string QR code ID (qrId) to get scan data for |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
curl -X GET https://api.qrtrac.com/api/analytics-api/detailed/{qrId} \ -H "x-request-team-id: <team_id>" \ -H "x-request-client-id: <client_id>" \ -H "x-request-client-secret: <client_secret>"
Example response showing array of scan events
{- "success": true,
- "data": [
- {
- "qrId": "dgj",
- "scanTime": 1768412112787,
- "device": "mobile",
- "browser": "Chrome",
- "os": "iOS",
- "country": "US",
- "city": "San Francisco",
- "ipAddress": "192.168.1.1",
}, - {
- "qrId": "dgj",
- "scanTime": 1768412000000,
- "device": "desktop",
- "browser": "Safari",
- "os": "macOS",
- "country": "US",
- "city": "New York",
- "ipAddress": "192.168.1.2",
- "referrer": ""
}
]
}Retrieve scan analytics data for multiple QR codes within a specified time range.
Required Headers:
x-request-team-id: <team_id> - Team ID for the request contextx-request-client-id: <client_id> - Client ID from API menux-request-client-secret: <client_secret> - Client Secret from API menuTime Format:
startTime and endTime must be provided as epoch timestamps in milliseconds.Note: For total scan counts, use the /analytics-api/overviews endpoint.
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| qrIds required | Array of strings Array of QR code IDs to fetch analytics for |
| startTime required | integer <int64> Start time in epoch milliseconds |
| endTime required | integer <int64> End time in epoch milliseconds |
Fetch scan data for multiple QR codes between two timestamps
{- "qrIds": [
- "qr_abc123",
- "qr_def456",
- "qr_ghi789"
], - "startTime": 1704067200000,
- "endTime": 1735689600000
}Example response showing array of scan events for multiple QR codes
{- "success": true,
- "data": [
- {
- "qrId": "qr_abc123",
- "scanTime": 1768412112787,
- "device": "mobile",
- "browser": "Chrome",
- "os": "iOS",
- "country": "US",
- "city": "San Francisco",
- "ipAddress": "192.168.1.1",
}, - {
- "qrId": "qr_abc123",
- "scanTime": 1768412000000,
- "device": "desktop",
- "browser": "Safari",
- "os": "macOS",
- "country": "US",
- "city": "New York",
- "ipAddress": "192.168.1.2",
- "referrer": ""
}, - {
- "qrId": "qr_def456",
- "scanTime": 1768411900000,
- "device": "mobile",
- "browser": "Firefox",
- "os": "Android",
- "country": "UK",
- "city": "London",
- "ipAddress": "192.168.1.3",
}
]
}Retrieve total scan counts for multiple QR codes. This endpoint returns aggregate scan data without requiring time range parameters.
Required Headers:
x-request-team-id: <team_id> - Team ID for the request contextx-request-client-id: <client_id> - Client ID from API menux-request-client-secret: <client_secret> - Client Secret from API menuNote: Unique scans are computed client-side from scan data and are not provided via API endpoints.
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| qrIds required | Array of strings Array of QR code IDs to fetch total scans for |
Fetch total scan counts for multiple QR codes
{- "qrIds": [
- "qr_abc123",
- "qr_def456",
- "qr_ghi789"
]
}Example response showing scan and lead analytics for QR codes
{- "success": true,
- "data": [
- {
- "id": "dgj",
- "leadsTodayCount": 0,
- "totalLeadsCount": 0,
- "createdAt": 1766771093365,
- "leadsUpdatedAt": 1766771093365,
- "leadsTodayDate": "12/26/2025",
- "leadsYesterdayCount": 0,
- "yesterdayScans": 1,
- "todayDate": "1/14/2026",
- "totalScans": 9,
- "todayScans": 3,
- "updatedAt": 1768412112787
}
]
}{- "success": true,
- "data": [
- {
- "id": "string",
- "name": "string",
- "orgId": "string",
- "defaultDomain": "string",
- "domains": [
- "string"
], - "members": [
- {
- "name": "string",
- "email": "user@example.com",
- "role": "owner"
}
], - "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
]
}Create a new team within the organization
| name required | string Team name |
{- "name": "Sales & Marketing"
}{- "success": true,
- "data": {
- "id": "string",
- "name": "string",
- "orgId": "string",
- "defaultDomain": "string",
- "domains": [
- "string"
], - "members": [
- {
- "name": "string",
- "email": "user@example.com",
- "role": "owner"
}
], - "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Retrieve a specific team with its members
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true,
- "data": {
- "id": "string",
- "name": "string",
- "orgId": "string",
- "defaultDomain": "string",
- "domains": [
- "string"
], - "members": [
- {
- "name": "string",
- "email": "user@example.com",
- "role": "owner"
}
], - "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Update team name (requires Admin or Owner role)
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| name required | string New team name |
{- "name": "Sales & Marketing - Q4"
}{- "success": true,
- "data": {
- "id": "string",
- "name": "string",
- "orgId": "string",
- "defaultDomain": "string",
- "domains": [
- "string"
], - "members": [
- {
- "name": "string",
- "email": "user@example.com",
- "role": "owner"
}
], - "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Update team's default domain and allowed domains
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| defaultDomain required | string Default domain for QR codes |
| domains required | Array of strings List of allowed domains |
{- "defaultDomain": "qr.acmecorp.com",
- "domains": [
- "qr.acmecorp.com",
- "campaign.acmecorp.com",
- "promo.acmecorp.com"
]
}{- "success": true,
- "data": {
- "id": "string",
- "name": "string",
- "orgId": "string",
- "defaultDomain": "string",
- "domains": [
- "string"
], - "members": [
- {
- "name": "string",
- "email": "user@example.com",
- "role": "owner"
}
], - "createdAt": 0,
- "createdBy": "string",
- "updatedAt": 0,
- "updatedBy": "string"
}
}Add a new member to a team or update existing member's role. If the user doesn't exist, creates a new user and sends an invite email.
| id required | string |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| name required | string Member's full name |
| email required | string <email> Member's email address |
| role required | string Enum: "admin" "editor" "viewer" Member's role (owner cannot be assigned) |
{- "name": "Sarah Johnson",
- "email": "sarah.johnson@acmecorp.com",
- "role": "editor"
}{- "success": true
}Add a member to multiple teams at once
| name required | string Member's full name |
| email required | string <email> |
required | Array of objects |
{- "name": "Michael Chen",
- "email": "michael.chen@acmecorp.com",
- "teams": [
- {
- "teamId": "team_abc123",
- "role": "admin"
}, - {
- "teamId": "team_def456",
- "role": "editor"
}
]
}{- "success": true
}Reactivate a paused member's access to the team
| id required | string |
| email required | string <email> |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true
}Temporarily pause a member's access to the team
| id required | string |
| email required | string <email> |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true
}Update a member's role in the team
| id required | string |
| email required | string <email> |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| role required | string Enum: "admin" "editor" "viewer" New role (owner cannot be assigned) |
{- "role": "admin"
}{- "success": true
}Remove a member from a specific team (member retains access to other teams)
| id required | string |
| email required | string <email> |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true
}Permanently delete a member from the organization. Requires Owner role. Cannot delete users with Owner role.
| id required | string |
| email required | string <email> |
| x-request-team-id required | string Team ID for the request context |
| x-request-client-id required | string Client ID obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
| x-request-client-secret required | string Client Secret obtained from app.qrtrac.com/pages/api. Owner/Admin role and Business Plus plan or higher required. |
{- "success": true,
- "message": "Member deleted successfully"
}