Fold several tags into one that stays
const url = 'https://beta-api.plune.ai/v1/settings/tags/merge';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"from":["Smoke","SMOKE"],"into":"smoke"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://beta-api.plune.ai/v1/settings/tags/merge \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "from": [ "Smoke", "SMOKE" ], "into": "smoke" }'“Keep this one”: every case carrying any tag in from has those tags replaced by into in its title — one occurrence, however many it carried — through the same per-case write as rename (AC-10, AC-23). into need not exist yet; it is checked against the tag rule (400). from must not contain into (400). One transaction; each case gets its own audit entry; text versions do not move.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
The tags that disappear. Must not contain into.
Example
[ "Smoke", "SMOKE"]The one that stays — “keep this one” (AC-23).
Example
smokeResponses
Section titled “ Responses ”How many cases were rewritten
object
Cases whose title was rewritten.
Example generated
{ "affected": 1}into is not a valid tag, from contains into, or the body is invalid
object
Example
{ "error": "validation failed — from: must not contain the tag kept by 'into'"}No / invalid token or session
Rate-limited: either the per-route throttle or a tenant quota. Retry-After carries the seconds until the window rolls over.
object
Example generated
{ "error": "example"}Headers
Section titled “Headers ”Seconds until the window rolls over