Start a widget session
The entry point, and the only widget endpoint that works without X-Auth-Token. Creates a contact and contact inbox for a first-time visitor and returns the widget configuration with the session token in website_channel_config.auth_token.
Calling it with a token returns the existing visitor rather than creating a second one — that is what makes a page reload continue the same conversation. The token lasts 180 days by default and there is no refresh: when it expires, call this again without it.
curl --request POST \
--url https://app.tied.com/api/v1/widget/configimport requests
url = "https://app.tied.com/api/v1/widget/config"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://app.tied.com/api/v1/widget/config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://app.tied.com/api/v1/widget/config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.tied.com/api/v1/widget/config"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"website_channel_config": {
"allow_messages_after_resolved": true,
"api_host": "https://app.tied.com",
"auth_token": "eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VfaWQiOiI5ODE4MjU1Ni04NDJmLTRkOTUtOGIwZC04ZjczY2Y5MWJmMTIiLCJpbmJveF9pZCI6NCwiZXhwIjoxODA1NTE3MTAyLCJpYXQiOjE3ODk5NjUxMDJ9.NQy93V5gzL1lLe2rp6hE_BB9Ciccmi4hwk46_ZmwhDU",
"avatar_url": "",
"csat_survey_enabled": false,
"disable_branding": false,
"enabled_features": [
"attachments",
"emoji_picker"
],
"enabled_languages": [
{
"name": "English (en)",
"iso_639_1_code": "en"
},
{
"name": "العربية (ar)",
"iso_639_1_code": "ar"
}
],
"locale": "en",
"out_of_office_message": null,
"portal": null,
"pre_chat_form_enabled": false,
"pre_chat_form_options": {
"pre_chat_fields": [
{
"name": "emailAddress",
"type": "email",
"label": "Email Id",
"enabled": false,
"required": true,
"field_type": "standard"
},
{
"name": "fullName",
"type": "text",
"label": "Full name",
"enabled": false,
"required": false,
"field_type": "standard"
}
],
"pre_chat_message": "Share your queries or comments here."
},
"reply_time": "in_a_few_minutes",
"timezone": "UTC",
"utc_off_set": "+00:00",
"website_name": "Webchat",
"website_token": "EXAMPLE_WEBSITE_TOKEN",
"welcome_tagline": null,
"welcome_title": null,
"widget_color": "#FF073B",
"working_hours": [
{
"id": 22,
"inbox_id": 4,
"account_id": 1,
"day_of_week": 0,
"closed_all_day": true,
"open_hour": null,
"open_minutes": null,
"close_hour": null,
"close_minutes": null,
"created_at": "2026-09-19T20:36:30.467Z",
"updated_at": "2026-09-19T20:36:30.467Z",
"open_all_day": false
},
{
"id": 23,
"inbox_id": 4,
"account_id": 1,
"day_of_week": 1,
"closed_all_day": false,
"open_hour": 9,
"open_minutes": 0,
"close_hour": 17,
"close_minutes": 0,
"created_at": "2026-09-19T20:36:30.472Z",
"updated_at": "2026-09-19T20:36:30.472Z",
"open_all_day": false
}
],
"working_hours_enabled": false
},
"contact": {
"email": null,
"id": 266,
"identifier": null,
"name": "silent-snow-603",
"phone_number": null,
"pubsub_token": "EXAMPLE_PUBSUB_TOKEN"
},
"global_config": {
"LOGO_THUMBNAIL": "/brand-assets/tied-app-icon.png",
"BRAND_NAME": "Tied",
"WIDGET_BRAND_URL": "https://tied.com",
"INSTALLATION_NAME": "Tied"
}
}{
"errors": [
"You need to sign in or sign up before continuing."
]
}{
"error": "Resource could not be found"
}Query Parameters
The web-widget inbox's public token, as it appears in your widget snippet. Required on every widget request.
"EXAMPLE_WEBSITE_TOKEN"
Response
Success
Everything the widget needs to render itself, plus the session token for every later call.
Widget appearance, enabled features, locales, pre-chat form, working hours — and auth_token, the session token to send as X-Auth-Token from here on.
Was this page helpful?
curl --request POST \
--url https://app.tied.com/api/v1/widget/configimport requests
url = "https://app.tied.com/api/v1/widget/config"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://app.tied.com/api/v1/widget/config', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://app.tied.com/api/v1/widget/config")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodypackage main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.tied.com/api/v1/widget/config"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"website_channel_config": {
"allow_messages_after_resolved": true,
"api_host": "https://app.tied.com",
"auth_token": "eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VfaWQiOiI5ODE4MjU1Ni04NDJmLTRkOTUtOGIwZC04ZjczY2Y5MWJmMTIiLCJpbmJveF9pZCI6NCwiZXhwIjoxODA1NTE3MTAyLCJpYXQiOjE3ODk5NjUxMDJ9.NQy93V5gzL1lLe2rp6hE_BB9Ciccmi4hwk46_ZmwhDU",
"avatar_url": "",
"csat_survey_enabled": false,
"disable_branding": false,
"enabled_features": [
"attachments",
"emoji_picker"
],
"enabled_languages": [
{
"name": "English (en)",
"iso_639_1_code": "en"
},
{
"name": "العربية (ar)",
"iso_639_1_code": "ar"
}
],
"locale": "en",
"out_of_office_message": null,
"portal": null,
"pre_chat_form_enabled": false,
"pre_chat_form_options": {
"pre_chat_fields": [
{
"name": "emailAddress",
"type": "email",
"label": "Email Id",
"enabled": false,
"required": true,
"field_type": "standard"
},
{
"name": "fullName",
"type": "text",
"label": "Full name",
"enabled": false,
"required": false,
"field_type": "standard"
}
],
"pre_chat_message": "Share your queries or comments here."
},
"reply_time": "in_a_few_minutes",
"timezone": "UTC",
"utc_off_set": "+00:00",
"website_name": "Webchat",
"website_token": "EXAMPLE_WEBSITE_TOKEN",
"welcome_tagline": null,
"welcome_title": null,
"widget_color": "#FF073B",
"working_hours": [
{
"id": 22,
"inbox_id": 4,
"account_id": 1,
"day_of_week": 0,
"closed_all_day": true,
"open_hour": null,
"open_minutes": null,
"close_hour": null,
"close_minutes": null,
"created_at": "2026-09-19T20:36:30.467Z",
"updated_at": "2026-09-19T20:36:30.467Z",
"open_all_day": false
},
{
"id": 23,
"inbox_id": 4,
"account_id": 1,
"day_of_week": 1,
"closed_all_day": false,
"open_hour": 9,
"open_minutes": 0,
"close_hour": 17,
"close_minutes": 0,
"created_at": "2026-09-19T20:36:30.472Z",
"updated_at": "2026-09-19T20:36:30.472Z",
"open_all_day": false
}
],
"working_hours_enabled": false
},
"contact": {
"email": null,
"id": 266,
"identifier": null,
"name": "silent-snow-603",
"phone_number": null,
"pubsub_token": "EXAMPLE_PUBSUB_TOKEN"
},
"global_config": {
"LOGO_THUMBNAIL": "/brand-assets/tied-app-icon.png",
"BRAND_NAME": "Tied",
"WIDGET_BRAND_URL": "https://tied.com",
"INSTALLATION_NAME": "Tied"
}
}{
"errors": [
"You need to sign in or sign up before continuing."
]
}{
"error": "Resource could not be found"
}