Rename a barrier type
Renames a CRM barrier type identified by its GUID.
Changes the display name of a barrier; opportunities keep referencing it by BarrierID, so the new name shows everywhere at once. The active state is kept (it cannot be changed through the API). Sending the current name writes nothing.
Behaviour:
- Idempotent.
- Safe to retry.
- Side effect: Updates the name (and LastModified / LastModifiedBy) and raises BarrierUpdated — only when the name differs.
- Changes are visible to the next read immediately.
See also: GET /v1/barrier
Not yet documented: examples.
curl -X PUT "https://app3.timelog.com/your-account/api/v1/barrier" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"Id": "123e4567-e89b-12d3-a456-426614174000",
"Name": "John Doe"
}'
import requests
import json
url = "https://app3.timelog.com/your-account/api/v1/barrier"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"Id": "123e4567-e89b-12d3-a456-426614174000",
"Name": "John Doe"
}
response = requests.put(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app3.timelog.com/your-account/api/v1/barrier", {
method: "PUT",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"Id": "123e4567-e89b-12d3-a456-426614174000",
"Name": "John Doe"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"Id": "123e4567-e89b-12d3-a456-426614174000",
"Name": "John Doe"
}`)
req, err := http.NewRequest("PUT", "https://app3.timelog.com/your-account/api/v1/barrier", 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://app3.timelog.com/your-account/api/v1/barrier')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Put.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"Id": "123e4567-e89b-12d3-a456-426614174000",
"Name": "John Doe"
}'
response = http.request(request)
puts response.body
"null"
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"Code": 100,
"Details": [],
"Message": "Unknown error occur in system, please contact system administrator.",
"Parameters": "barrierApi: {"Id":"00000000-0000-0000-0000-000000000000","Name":null}",
"Url": "https://app{server-number}.timelog.com/{account}/api/v1/barrier"
}
/v1/barrier
Target server for requests. Edit to use your own host.
OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
> Not yet documented: how to obtain a token.
> Not yet documented: token lifetime.
Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
> Not yet documented: how to obtain a token.
> Not yet documented: token lifetime.The media type of the request body
GUID of the barrier to rename (BarrierRead.Id — not BarrierID).
Refers to BarrierRead.Id. Look up valid values with GET /v1/barrier.
Valid values come from GET /v1/barrier.
New display name. - Same as the current name — Nothing is written; still 200. - Missing, null or blank — 500 Code 102, ErrorCode 60015 "Name must be set on Barrier" (domain check, not 400).
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
Not yet documented: how to obtain a token.
Not yet documented: token lifetime.
Body
GUID of the barrier to rename (BarrierRead.Id — not BarrierID).
Refers to BarrierRead.Id. Look up valid values with GET /v1/barrier.
Valid values come from GET /v1/barrier.
New display name.
-
Same as the current name — Nothing is written; still 200.
-
Missing, null or blank — 500 Code 102, ErrorCode 60015 "Name must be set on Barrier" (domain check, not 400).
Responses
*Success without content: HTTP 200 with the literal JSON body null. Literal JSON null (TafSuccessResult).
Order: none
Empty result: none*