Tag Management
Tags are reusable labels (for example VIP, Banned, Employee) that can be applied to people. This page covers the Tags controller — creating, reading, updating, and deleting the tag definitions themselves. To apply a tag to a specific person, see Person Management.
API Endpoints
- Base URL (Cloud):
https://customername.econnectcloud.com/identities - Base URL (On-prem):
https://<server-host-or-ip>:5009
| Method | Endpoint | Description | Permission |
|---|---|---|---|
GET | /api/v1/Tags | List all tags (optional ?tagName= exact-match filter). | Read Tags |
GET | /api/v1/Tags/{tagId} | Get a single tag. | Read Tags |
POST | /api/v1/Tags | Create a tag. | Add Tags |
PUT | /api/v1/Tags/{tagId} | Update a tag. | Edit Tags |
DELETE | /api/v1/Tags/{tagId} | Delete a tag. | Delete Tags |
Authentication
Requires a JWT bearer token. See Authentication.
Permissions
The permission names and category below are what you'll see in the Identities web app under System → System settings → Roles.
| Operation | Permission | Category |
|---|---|---|
| List / get | Read Tags | Tags |
| Create | Add Tags | Tags |
| Update | Edit Tags | Tags |
| Delete | Delete Tags | Tags |
Tag Object
Content-Type: application/json.
| Field | Type | Description |
|---|---|---|
tagId | string (GUID) | Server-assigned identifier. Omit when creating; required in the URL for update/delete. |
tagName | string | The tag's display name. |
disabled | bool | Whether the tag is disabled (hidden from normal use). |
description | string | Free-text description. |
defaultExpirePeriod | string (duration) | Default expiry applied when this tag is added to a person, as days.hh:mm:ss (e.g. 30.00:00:00 = 30 days). Use 00:00:00 for no default expiry. |
Code Examples
- Curl
- PowerShell
- C#
API_URL="https://customername.econnectcloud.com/identities"
TOKEN="your_jwt"
# Create a tag
curl -sk -X POST "$API_URL/api/v1/Tags" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"tagName": "VIP",
"disabled": false,
"description": "Very important person",
"defaultExpirePeriod": "30.00:00:00"
}' | jq
# List all tags
curl -sk -X GET "$API_URL/api/v1/Tags" \
-H "Authorization: Bearer $TOKEN" | jq
# Update a tag
curl -sk -X PUT "$API_URL/api/v1/Tags/<tagId>" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "tagName": "VIP", "disabled": false, "description": "Top-tier guest", "defaultExpirePeriod": "60.00:00:00" }'
# Delete a tag
curl -sk -X DELETE "$API_URL/api/v1/Tags/<tagId>" \
-H "Authorization: Bearer $TOKEN"
$API_URL = "https://customername.econnectcloud.com/identities"
$TOKEN = "your_jwt"
$headers = @{ Authorization = "Bearer $TOKEN" }
# Create a tag
$body = @{
tagName = "VIP"
disabled = $false
description = "Very important person"
defaultExpirePeriod = "30.00:00:00" # 30 days; "00:00:00" = never expires
} | ConvertTo-Json
$created = Invoke-RestMethod -Uri "$API_URL/api/v1/Tags" -Method Post `
-Headers $headers -Body $body -ContentType "application/json"
# List all tags
Invoke-RestMethod -Uri "$API_URL/api/v1/Tags" -Method Get -Headers $headers
# Delete a tag
Invoke-RestMethod -Uri "$API_URL/api/v1/Tags/$($created.tagId)" -Method Delete -Headers $headers
using eConnect.IdentitiesDbSdk;
// NuGet: eConnect.IdentitiesDbSdk (private package - request access from eConnect support).
var httpClient = new HttpClient();
var sdk = await IdentityDbSdk.GetSdk(
"https://customername.econnectcloud.com/identities",
httpClient,
"your_username",
"your_password");
// Create a tag (tagId is assigned by the server)
var created = await sdk.AddTagAsync(new IdentityTagItem
{
TagName = "VIP",
Disabled = false,
Description = "Very important person",
DefaultExpirePeriod = "30.00:00:00" // 30 days; "00:00:00" = never expires
});
// List all tags (optionally filter by exact name)
var tags = await sdk.GetTagsAsync();
// Update a tag
await sdk.UpdateTagAsync(created.TagId!.Value, new IdentityTagItem
{
TagName = "VIP",
Disabled = false,
Description = "Top-tier guest",
DefaultExpirePeriod = "60.00:00:00"
});
// Delete a tag
await sdk.DeleteTagAsync(created.TagId!.Value);
Raw Sample
Create — Request
POST https://customername.econnectcloud.com/identities/api/v1/Tags
Authorization: Bearer <your_jwt_token>
Content-Type: application/json
{
"tagName": "VIP",
"disabled": false,
"description": "Very important person",
"defaultExpirePeriod": "30.00:00:00"
}
Create — Response
200 OK — the created tag, now with its server-assigned tagId:
{
"tagId": "4c5d6e7f-8091-2345-6789-abcdef012345",
"tagName": "VIP",
"disabled": false,
"description": "Very important person",
"defaultExpirePeriod": "30.00:00:00"
}
GET /api/v1/Tags returns an array of these objects. DELETE returns true on success.
Response Codes
| Code | Meaning |
|---|---|
200 OK | The operation succeeded. |
404 Not Found | No tag exists with that tagId (get). |
401 Unauthorized | Missing or invalid JWT. |
403 Forbidden | The user lacks the required Tags permission. |