Update a tag assignment
Partial update — only the fields you pass change. Accepts enabled, params, trigger_rules. Agency key (ak_) required. Rebuilds the edge config — check kv_sync.
curl -X PATCH "https://mythic-analytics.gulp.workers.dev/client/v1/config/tags/meta-pixel?location_id=example_string" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"enabled": true,
"params": {},
"trigger_rules": {
"url_contains": "/checkout"
}
}'
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/config/tags/meta-pixel?location_id=example_string"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"enabled": true,
"params": {},
"trigger_rules": {
"url_contains": "/checkout"
}
}
response = requests.patch(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/config/tags/meta-pixel?location_id=example_string", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"enabled": true,
"params": {},
"trigger_rules": {
"url_contains": "/checkout"
}
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"enabled": true,
"params": {},
"trigger_rules": {
"url_contains": "/checkout"
}
}`)
req, err := http.NewRequest("PATCH", "https://mythic-analytics.gulp.workers.dev/client/v1/config/tags/meta-pixel?location_id=example_string", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://mythic-analytics.gulp.workers.dev/client/v1/config/tags/meta-pixel?location_id=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"enabled": true,
"params": {},
"trigger_rules": {
"url_contains": "/checkout"
}
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"tenant_key": "loc_abc123",
"tag_id": "meta-pixel",
"enabled": true,
"params": {
"pixel_id": "1234567890"
},
"trigger_rules": {
"url_contains": "/checkout"
}
},
"kv_sync": "synced"
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Please try again later",
"code": 429,
"retryAfter": 3600
}
/client/v1/config/tags/{tagId}Target server for requests. Edit to use your own host.
Agency key (ak_) or location secret key (sk_). Writes require an agency key. Keys are server-side credentials — this surface serves no CORS headers on purpose. Scoped keys (mcp_) are accepted too and need the tags, snippets or transformers family the route belongs to. See Using an mcp_ key over HTTP.
ak_) or location secret key (sk_). Writes require an agency key. Keys are server-side credentials — this surface serves no CORS headers on purpose. Scoped keys (mcp_) are accepted too and need the tags, snippets or transformers family the route belongs to. See Using an mcp_ key over HTTP.The tag template id of the assignment.
Location to scope to. Required for ak_ keys (or send the X-Location-Id header); ignored for sk_.
The media type of the request body
Optional page/condition rules controlling where the tag or snippet fires. Omitted or null means everywhere.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Agency key (ak_) or location secret key (sk_). Writes require an agency key. Keys are server-side credentials — this surface serves no CORS headers on purpose. Scoped keys (mcp_) are accepted too and need the tags, snippets or transformers family the route belongs to. See Using an mcp_ key over HTTP.
Path Parameters
Query Parameters
Location to scope to. Required for ak_ keys (or send the X-Location-Id header); ignored for sk_.
Body
Optional page/condition rules controlling where the tag or snippet fires. Omitted or null means everywhere.
{"url_contains":"/checkout"}Responses
Outcome of the inline edge-config rebuild that follows every write. synced means the location's CFG KV entry was rebuilt from database truth and the SDK will pick the change up; failed: \<reason\> means the database write landed but the edge is still serving the previous config — retry the write (any successful write re-syncs everything) or rebuild via the admin API. This field exists because tenant-config KV sync is not trigger-driven; a write the SDK never sees is the failure mode, so a failed sync is reported instead of silent.