Get Project Settings - Cognigy Documentation
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Skip to main content
GET
/
v2.0
/
projects
/
{projectId}
/
settings
Try it
Get Project Settings
cURL
curl --request GET \
--url https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings \
--header 'X-API-Key: <api-key>'
import requests
url = "https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)
const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php
$curl = curl_init();
curl_setopt_array($curl, [\
CURLOPT_URL => "https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings",\
CURLOPT_RETURNTRANSFER => true,\
CURLOPT_ENCODING => "",\
CURLOPT_MAXREDIRS => 10,\
CURLOPT_TIMEOUT => 30,\
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\
CURLOPT_CUSTOMREQUEST => "GET",\
CURLOPT_HTTPHEADER => [\
"X-API-Key: <api-key>"\
],\
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
HttpResponse<String> response = Unirest.get("https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings")
.header("X-API-Key", "<api-key>")
.asString();
require 'uri'
require 'net/http'
url = URI("https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body
200
400
401
402
403
404
405
409
413
500
501
502
503
504
{
"timezone": "Europe/Berlin",
"useCaseSensitiveIntentMapping": true,
"collectAnalytics": true,
"trackDataOnlyInputs": true,
"translationSettings": {
"connections": {
"microsoft": {
"connecionId": "<string>",
"retries": 1,
"timeout": 3000,
"cacheExpiry": 0,
"customBaseUrl": ""
},
"deepl": {
"connecionId": "<string>",
"retries": 1,
"timeout": 3000,
"cacheExpiry": 0,
"customBaseUrl": ""
},
"google": {
"connecionId": "<string>",
"retries": 1,
"timeout": 3000,
"cacheExpiry": 0,
"customBaseUrl": ""
}
}
},
"audioPreviewSettings": {
"connections": {
"microsoft": {
"connecionId": "<string>"
},
"aws": {
"connecionId": "<string>"
},
"google": {
"connecionId": "<string>"
}
}
},
"generativeAISettings": {
"enabled": true,
"useCasesSettings": {
"designTimeGeneration": {
"enabled": true,
"largeLanguageModelId": "<string>",
"temperature": 0
},
"aiEnhancedOutputs": {
"enabled": true,
"largeLanguageModelId": "<string>",
"temperature": 0
},
"gptConversation": {
"enabled": true,
"largeLanguageModelId": "<string>",
"temperature": 0
},
"gptPromptNode": {
"enabled": true,
"largeLanguageModelId": "<string>",
"temperature": 0
},
"knowledgeSearch": {
"enabled": true,
"largeLanguageModelId": "<string>",
"temperature": 0
},
"conversationAnalyzer": {
"enabled": true,
"largeLanguageModelId": "<string>",
"temperature": 0
}
}
},
"currencySettings": {
"currency": "USD"
},
"knowledgeAISettings": {
"azureDIConnectionId": "f66e99eb-db8f-433c-977f-69160d9a6bdb"
},
"piiDataRedactionSettings": {
"emailAddress": {
"enabled": true,
"behavior": {
"type": "predefined-alias",
"customAlias": "<string>"
},
"scope": {
"logs": true,
"analytics": true
},
"name": "<string>"
},
"phoneNumber": {
"enabled": true,
"behavior": {
"type": "predefined-alias",
"customAlias": "<string>"
},
"scope": {
"logs": true,
"analytics": true
},
"name": "<string>"
},
"creditCard": {
"enabled": true,
"behavior": {
"type": "predefined-alias",
"customAlias": "<string>"
},
"scope": {
"logs": true,
"analytics": true
},
"name": "<string>"
},
"ssn": {
"enabled": true,
"behavior": {
"type": "predefined-alias",
"customAlias": "<string>"
},
"scope": {
"logs": true,
"analytics": true
},
"name": "<string>"
},
"ipAddressV4": {
"enabled": true,
"behavior": {
"type": "predefined-alias",
"customAlias": "<string>"
},
"scope": {
"logs": true,
"analytics": true
},
"name": "<string>"
},
"ipAddressV6": {
"enabled": true,
"behavior": {
"type": "predefined-alias",
"customAlias": "<string>"
},
"scope": {
"logs": true,
"analytics": true
},
"name": "<string>"
},
"customTypes": {}
},
"proactiveSettings": {
"journeyId": 123,
"journeyName": "<string>",
"journeyStatus": "<string>",
"flowId": "<string>",
"flowReferenceId": "<string>",
"endpointId": "<string>",
"contactAction": {
"id": 123,
"name": "<string>"
},
"integrationPoint": {
"id": 123,
"name": "<string>"
},
"taskId": "<string>"
},
"intentThreshold": {
"lower": 0.4,
"upper": 0.5
},
"learnNewExampleSentences": true,
"learnNewExampleSentencesThreshold": 123,
"negativeConfirmationWords": [\
"<string>"\
],
"positiveConfirmationWords": [\
"<string>"\
],
"systemSlots": {
"useAgeSlots": true,
"useDateSlots": true,
"useDistanceSlots": true,
"useDurationSlots": true,
"useEmailSlots": true,
"useMoneySlots": true,
"useNumberSlots": true,
"usePercentageSlots": true,
"useTemperatureSlots": true,
"useURLSlots": true
},
"yesNoIntentThreshold": 123,
"_id": "<string>",
"createdAt": 1694518620,
"lastChanged": 1694518620,
"createdBy": "<string>",
"lastChangedBy": "<string>"
}
{
"type": "Bad Request",
"title": "Bad Request Error",
"status": 400,
"detail": "Validation failed. Missing payload.",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Unauthorized",
"title": "Unauthorized Error",
"status": 401,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 401,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Payment Required",
"title": "Payment Required Error",
"status": 402,
"detail": "Validation failed. Missing payload.",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 402,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Forbidden",
"title": "Forbidden Error",
"status": 403,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Not Found",
"title": "Not Found Error",
"status": 404,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {},
"logLevel": "error"
}
{
"type": "Method Not Allowed",
"title": "Method Not Allowed Error",
"status": 405,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Conflict",
"title": "Conflict Error",
"status": 409,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1004,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Payload Too Large",
"title": "Payload Too Large Error",
"status": 413,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Internal Server Error",
"title": "Internal Server Error",
"status": 500,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Not Implemented",
"title": "Not Implemented Error",
"status": 501,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1009,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Bad Gateway",
"title": "Bad Gateway Error",
"status": 502,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Service Unavailable",
"title": "Service Unavailable Error",
"status": 503,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 503,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
{
"type": "Gateway Timeout",
"title": "Gateway Timeout Error",
"status": 504,
"detail": "<string>",
"instance": "/v2.0/flows/5ce7c2d833ea1e04d7e6c432",
"code": 1000,
"traceId": "api--f84324f4-98eb-4f02-abdd-375a2e6c3c1f",
"details": {}
}
Authorizations
APIKeyHeaderAPIKeyQueryParamCXoneTokenHeaderOAuth2APIKeyHeaderAPIKeyQueryParamCXoneTokenHeaderOAuth2
X-API-Key
string
header
required
Supply the API Key in the HTTP-Header
Headers
Accept
enum
The Accept header specifies the media type that the client expects in the response. Available options: application/json, application/hal+json, application/xml, text/xml, text/csv. The default value is application/json.
Available options:
application/json,
application/hal+json,
application/xml,
text/xml,
text/csv
Path Parameters
projectId
string
required
The unique identifier for the Project.
Required string length: 24
Pattern: ^[a-z0-9]{24}$
Response
200
application/json
Project settings retrieved.
The IEntityMeta defines meta information every entity within the system has. These are dates when a resource was created and modified as well as information about the user who initially created a resource and who modified it the last time.
timezone
enum
Timezone according to IANA Timezone Database (2020a)
Available options:
Africa/Abidjan,
Africa/Accra,
Africa/Addis_Ababa,
Africa/Algiers,
Africa/Asmara,
Africa/Asmera,
Africa/Bamako,
Africa/Bangui,
Africa/Banjul,
Africa/Bissau,
Africa/Blantyre,
Africa/Brazzaville,
Africa/Bujumbura,
Africa/Cairo,
Africa/Casablanca,
Africa/Ceuta,
Africa/Conakry,
Africa/Dakar,
Africa/Dar_es_Salaam,
Africa/Djibouti,
Africa/Douala,
Africa/El_Aaiun,
Africa/Freetown,
Africa/Gaborone,
Africa/Harare,
Africa/Johannesburg,
Africa/Juba,
Africa/Kampala,
Africa/Khartoum,
Africa/Kigali,
Africa/Kinshasa,
Africa/Lagos,
Africa/Libreville,
Africa/Lome,
Africa/Luanda,
Africa/Lubumbashi,
Africa/Lusaka,
Africa/Malabo,
Africa/Maputo,
Africa/Maseru,
Africa/Mbabane,
Africa/Mogadishu,
Africa/Monrovia,
Africa/Nairobi,
Africa/Ndjamena,
Africa/Niamey,
Africa/Nouakchott,
Africa/Ouagadougou,
Africa/Porto-Novo,
Africa/Sao_Tome,
Africa/Timbuktu,
Africa/Tripoli,
Africa/Tunis,
Africa/Windhoek,
America/Adak,
America/Anchorage,
America/Anguilla,
America/Antigua,
America/Araguaina,
America/Argentina/Buenos_Aires,
America/Argentina/Catamarca,
America/Argentina/ComodRivadavia,
America/Argentina/Cordoba,
America/Argentina/Jujuy,
America/Argentina/La_Rioja,
America/Argentina/Mendoza,
America/Argentina/Rio_Gallegos,
America/Argentina/Salta,
America/Argentina/San_Juan,
America/Argentina/San_Luis,
America/Argentina/Tucuman,
America/Argentina/Ushuaia,
America/Aruba,
America/Asuncion,
America/Atikokan,
America/Atka,
America/Bahia,
America/Bahia_Banderas,
America/Barbados,
America/Belem,
America/Belize,
America/Blanc-Sablon,
America/Boa_Vista,
America/Bogota,
America/Boise,
America/Buenos_Aires,
America/Cambridge_Bay,
America/Campo_Grande,
America/Cancun,
America/Caracas,
America/Catamarca,
America/Cayenne,
America/Cayman,
America/Chicago,
America/Chihuahua,
America/Coral_Harbour,
America/Cordoba,
America/Costa_Rica,
America/Creston,
America/Cuiaba,
America/Curacao,
America/Danmarkshavn,
America/Dawson,
America/Dawson_Creek,
America/Denver,
America/Detroit,
America/Dominica,
America/Edmonton,
America/Eirunepe,
America/El_Salvador,
America/Ensenada,
America/Fort_Nelson,
America/Fort_Wayne,
America/Fortaleza,
America/Glace_Bay,
America/Godthab,
America/Goose_Bay,
America/Grand_Turk,
America/Grenada,
America/Guadeloupe,
America/Guatemala,
America/Guayaquil,
America/Guyana,
America/Halifax,
America/Havana,
America/Hermosillo,
America/Indiana/Indianapolis,
America/Indiana/Knox,
America/Indiana/Marengo,
America/Indiana/Petersburg,
America/Indiana/Tell_City,
America/Indiana/Vevay,
America/Indiana/Vincennes,
America/Indiana/Winamac,
America/Indianapolis,
America/Inuvik,
America/Iqaluit,
America/Jamaica,
America/Jujuy,
America/Juneau,
America/Kentucky/Louisville,
America/Kentucky/Monticello,
America/Knox_IN,
America/Kralendijk,
America/La_Paz,
America/Lima,
America/Los_Angeles,
America/Louisville,
America/Lower_Princes,
America/Maceio,
America/Managua,
America/Manaus,
America/Marigot,
America/Martinique,
America/Matamoros,
America/Mazatlan,
America/Mendoza,
America/Menominee,
America/Merida,
America/Metlakatla,
America/Mexico_City,
America/Miquelon,
America/Moncton,
America/Monterrey,
America/Montevideo,
America/Montreal,
America/Montserrat,
America/Nassau,
America/New_York,
America/Nipigon,
America/Nome,
America/Noronha,
America/North_Dakota/Beulah,
America/North_Dakota/Center,
America/North_Dakota/New_Salem,
America/Ojinaga,
America/Panama,
America/Pangnirtung,
America/Paramaribo,
America/Phoenix,
America/Port-au-Prince,
America/Port_of_Spain,
America/Porto_Acre,
America/Porto_Velho,
America/Puerto_Rico,
America/Punta_Arenas,
America/Rainy_River,
America/Rankin_Inlet,
America/Recife,
America/Regina,
America/Resolute,
America/Rio_Branco,
America/Rosario,
America/Santa_Isabel,
America/Santarem,
America/Santiago,
America/Santo_Domingo,
America/Sao_Paulo,
America/Scoresbysund,
America/Shiprock,
America/Sitka,
America/St_Barthelemy,
America/St_Johns,
America/St_Kitts,
America/St_Lucia,
America/St_Thomas,
America/St_Vincent,
America/Swift_Current,
America/Tegucigalpa,
America/Thule,
America/Thunder_Bay,
America/Tijuana,
America/Toronto,
America/Tortola,
America/Vancouver,
America/Virgin,
America/Whitehorse,
America/Winnipeg,
America/Yakutat,
America/Yellowknife,
Antarctica/Casey,
Antarctica/Davis,
Antarctica/DumontDUrville,
Antarctica/Macquarie,
Antarctica/Mawson,
Antarctica/McMurdo,
Antarctica/Palmer,
Antarctica/Rothera,
Antarctica/South_Pole,
Antarctica/Syowa,
Antarctica/Troll,
Antarctica/Vostok,
Arctic/Longyearbyen,
Asia/Aden,
Asia/Almaty,
Asia/Amman,
Asia/Anadyr,
Asia/Aqtau,
Asia/Aqtobe,
Asia/Ashgabat,
Asia/Ashkhabad,
Asia/Atyrau,
Asia/Baghdad,
Asia/Bahrain,
Asia/Baku,
Asia/Bangkok,
Asia/Barnaul,
Asia/Beirut,
Asia/Bishkek,
Asia/Brunei,
Asia/Calcutta,
Asia/Chita,
Asia/Choibalsan,
Asia/Chongqing,
Asia/Chungking,
Asia/Colombo,
Asia/Dacca,
Asia/Damascus,
Asia/Dhaka,
Asia/Dili,
Asia/Dubai,
Asia/Dushanbe,
Asia/Famagusta,
Asia/Gaza,
Asia/Harbin,
Asia/Hebron,
Asia/Ho_Chi_Minh,
Asia/Hong_Kong,
Asia/Hovd,
Asia/Irkutsk,
Asia/Istanbul,
Asia/Jakarta,
Asia/Jayapura,
Asia/Jerusalem,
Asia/Kabul,
Asia/Kamchatka,
Asia/Karachi,
Asia/Kashgar,
Asia/Kathmandu,
Asia/Katmandu,
Asia/Khandyga,
Asia/Kolkata,
Asia/Krasnoyarsk,
Asia/Kuala_Lumpur,
Asia/Kuching,
Asia/Kuwait,
Asia/Macao,
Asia/Macau,
Asia/Magadan,
Asia/Makassar,
Asia/Manila,
Asia/Muscat,
Asia/Nicosia,
Asia/Novokuznetsk,
Asia/Novosibirsk,
Asia/Omsk,
Asia/Oral,
Asia/Phnom_Penh,
Asia/Pontianak,
Asia/Pyongyang,
Asia/Qatar,
Asia/Qyzylorda,
Asia/Rangoon,
Asia/Riyadh,
Asia/Saigon,
Asia/Sakhalin,
Asia/Samarkand,
Asia/Seoul,
Asia/Shanghai,
Asia/Singapore,
Asia/Srednekolymsk,
Asia/Taipei,
Asia/Tashkent,
Asia/Tbilisi,
Asia/Tehran,
Asia/Tel_Aviv,
Asia/Thimbu,
Asia/Thimphu,
Asia/Tokyo,
Asia/Tomsk,
Asia/Ujung_Pandang,
Asia/Ulaanbaatar,
Asia/Ulan_Bator,
Asia/Urumqi,
Asia/Ust-Nera,
Asia/Vientiane,
Asia/Vladivostok,
Asia/Yakutsk,
Asia/Yangon,
Asia/Yekaterinburg,
Asia/Yerevan,
Atlantic/Azores,
Atlantic/Bermuda,
Atlantic/Canary,
Atlantic/Cape_Verde,
Atlantic/Faeroe,
Atlantic/Faroe,
Atlantic/Jan_Mayen,
Atlantic/Madeira,
Atlantic/Reykjavik,
Atlantic/South_Georgia,
Atlantic/St_Helena,
Atlantic/Stanley,
Australia/ACT,
Australia/Adelaide,
Australia/Brisbane,
Australia/Broken_Hill,
Australia/Canberra,
Australia/Currie,
Australia/Darwin,
Australia/Eucla,
Australia/Hobart,
Australia/LHI,
Australia/Lindeman,
Australia/Lord_Howe,
Australia/Melbourne,
Australia/NSW,
Australia/North,
Australia/Perth,
Australia/Queensland,
Australia/South,
Australia/Sydney,
Australia/Tasmania,
Australia/Victoria,
Australia/West,
Australia/Yancowinna,
Brazil/Acre,
Brazil/DeNoronha,
Brazil/East,
Brazil/West,
CET,
CST6CDT,
Canada/Atlantic,
Canada/Central,
Canada/Eastern,
Canada/Mountain,
Canada/Newfoundland,
Canada/Pacific,
Canada/Saskatchewan,
Canada/Yukon,
Chile/Continental,
Chile/EasterIsland,
Cuba,
EET,
EST,
EST5EDT,
Egypt,
Eire,
Etc/GMT,
Etc/GMT+0,
Etc/GMT+1,
Etc/GMT+10,
Etc/GMT+11,
Etc/GMT+12,
Etc/GMT+2,
Etc/GMT+3,
Etc/GMT+4,
Etc/GMT+5,
Etc/GMT+6,
Etc/GMT+7,
Etc/GMT+8,
Etc/GMT+9,
Etc/GMT-0,
Etc/GMT-1,
Etc/GMT-10,
Etc/GMT-11,
Etc/GMT-12,
Etc/GMT-13,
Etc/GMT-14,
Etc/GMT-2,
Etc/GMT-3,
Etc/GMT-4,
Etc/GMT-5,
Etc/GMT-6,
Etc/GMT-7,
Etc/GMT-8,
Etc/GMT-9,
Etc/GMT0,
Etc/Greenwich,
Etc/UCT,
Etc/UTC,
Etc/Universal,
Etc/Zulu,
Europe/Amsterdam,
Europe/Andorra,
Europe/Astrakhan,
Europe/Athens,
Europe/Belfast,
Europe/Belgrade,
Europe/Berlin,
Europe/Bratislava,
Europe/Brussels,
Europe/Bucharest,
Europe/Budapest,
Europe/Busingen,
Europe/Chisinau,
Europe/Copenhagen,
Europe/Dublin,
Europe/Gibraltar,
Europe/Guernsey,
Europe/Helsinki,
Europe/Isle_of_Man,
Europe/Istanbul,
Europe/Jersey,
Europe/Kaliningrad,
Europe/Kiev,
Europe/Kirov,
Europe/Lisbon,
Europe/Ljubljana,
Europe/London,
Europe/Luxembourg,
Europe/Madrid,
Europe/Malta,
Europe/Mariehamn,
Europe/Minsk,
Europe/Monaco,
Europe/Moscow,
Europe/Nicosia,
Europe/Oslo,
Europe/Paris,
Europe/Podgorica,
Europe/Prague,
Europe/Riga,
Europe/Rome,
Europe/Samara,
Europe/San_Marino,
Europe/Sarajevo,
Europe/Saratov,
Europe/Simferopol,
Europe/Skopje,
Europe/Sofia,
Europe/Stockholm,
Europe/Tallinn,
Europe/Tirane,
Europe/Tiraspol,
Europe/Ulyanovsk,
Europe/Uzhgorod,
Europe/Vaduz,
Europe/Vatican,
Europe/Vienna,
Europe/Vilnius,
Europe/Volgograd,
Europe/Warsaw,
Europe/Zagreb,
Europe/Zaporozhye,
Europe/Zurich,
GB,
GB-Eire,
GMT,
GMT+0,
GMT-0,
GMT0,
Greenwich,
HST,
Hongkong,
Iceland,
Indian/Antananarivo,
Indian/Chagos,
Indian/Christmas,
Indian/Cocos,
Indian/Comoro,
Indian/Kerguelen,
Indian/Mahe,
Indian/Maldives,
Indian/Mauritius,
Indian/Mayotte,
Indian/Reunion,
Iran,
Israel,
Jamaica,
Japan,
Kwajalein,
Libya,
MET,
MST,
MST7MDT,
Mexico/BajaNorte,
Mexico/BajaSur,
Mexico/General,
NZ,
NZ-CHAT,
Navajo,
PRC,
PST8PDT,
Pacific/Apia,
Pacific/Auckland,
Pacific/Bougainville,
Pacific/Chatham,
Pacific/Chuuk,
Pacific/Easter,
Pacific/Efate,
Pacific/Enderbury,
Pacific/Fakaofo,
Pacific/Fiji,
Pacific/Funafuti,
Pacific/Galapagos,
Pacific/Gambier,
Pacific/Guadalcanal,
Pacific/Guam,
Pacific/Honolulu,
Pacific/Johnston,
Pacific/Kiritimati,
Pacific/Kosrae,
Pacific/Kwajalein,
Pacific/Majuro,
Pacific/Marquesas,
Pacific/Midway,
Pacific/Nauru,
Pacific/Niue,
Pacific/Norfolk,
Pacific/Noumea,
Pacific/Pago_Pago,
Pacific/Palau,
Pacific/Pitcairn,
Pacific/Pohnpei,
Pacific/Ponape,
Pacific/Port_Moresby,
Pacific/Rarotonga,
Pacific/Saipan,
Pacific/Samoa,
Pacific/Tahiti,
Pacific/Tarawa,
Pacific/Tongatapu,
Pacific/Truk,
Pacific/Wake,
Pacific/Wallis,
Pacific/Yap,
Poland,
Portugal,
ROC,
ROK,
Singapore,
Turkey,
UCT,
US/Alaska,
US/Aleutian,
US/Arizona,
US/Central,
US/East-Indiana,
US/Eastern,
US/Hawaii,
US/Indiana-Starke,
US/Michigan,
US/Mountain,
US/Pacific,
US/Pacific-New,
US/Samoa,
UTC,
Universal,
W-SU,
WET,
Zulu
Example:
"Europe/Berlin"
useCaseSensitiveIntentMapping
boolean
collectAnalytics
boolean
trackDataOnlyInputs
boolean
translationSettings
object
Showchild attributes
audioPreviewSettings
object
Showchild attributes
generativeAISettings
object
Showchild attributes
currencySettings
object
Showchild attributes
knowledgeAISettings
object
Showchild attributes
piiDataRedactionSettings
object
Showchild attributes
proactiveSettings
object
Showchild attributes
intentThreshold
object
Showchild attributes
learnNewExampleSentences
boolean
learnNewExampleSentencesThreshold
integer
negativeConfirmationWords
string[]
positiveConfirmationWords
string[]
systemSlots
object
Showchild attributes
yesNoLogic
enum
Available options:
yesNoIntents,
yesNoIntentsWithRules,
confirmationWords
yesNoIntentThreshold
integer
_id
string
Required string length: 24
Pattern: ^[a-z0-9]{24}$
createdAt
integer
Unix-timestamp
Required range: 0 <= x <= 2147483647
Example:
1694518620
lastChanged
integer
Unix-timestamp
Required range: 0 <= x <= 2147483647
Example:
1694518620
createdBy
string
Required string length: 24
Pattern: ^[a-z0-9]{24}$
lastChangedBy
string
Required string length: 24
Pattern: ^[a-z0-9]{24}$
Last modified onJuly 8, 2026
Previous Update Project SettingsUpdates the settings of a Project.\
\
Next
Ctrl+I
Get Project Settings
cURL
curl --request GET \
--url https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings \
--header 'X-API-Key: <api-key>'
import requests
url = "https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)
const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
```
```
require 'uri'
require 'net/http'
url = URI("https://api-trial.cognigy.ai/new/v2.0/projects/{projectId}/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = ''
response = http.request(request)
puts response.read_body
```
200
400
401
402
403
404
405
409
413
500
501
502
503
504
ChatVoice
Click the call button to start talking.
Cognigy AssistantReady to talk
Connecting…
Powered by [Cognigy.AI](/content/site-root.html)
### Cookie Consent
We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for.
With your consent, you're helping us make our documentation better.
To find out more about the cookies we use, see our
[Privacy Policy](/content/privacy-policy/index.html).
Accept
';
cachedClickBlockingCode = css + js;
return cachedClickBlockingCode;
}
// Helper: Inject click-blocking code into iframe
function injectClickBlocking(iframeDoc) {
if (!iframeDoc \|\| !iframeDoc.head) return false;
try {
const style = iframeDoc.createElement('style');
style.textContent = 'a,button,input,select,textarea,\[onclick\],\[role="button"\],input\[type="button"\],input\[type="submit"\],\[href\],\[tabindex\]:not(\[tabindex="-1"\]){pointer-events:none!important;cursor:default!important}a:hover,button:hover{cursor:default!important;opacity:0.7!important}';
iframeDoc.head.appendChild(style);
const script = iframeDoc.createElement('script');
script.textContent = '(function(){var preventClick=function(e){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();return false;};document.addEventListener("click",preventClick,true);document.addEventListener("mousedown",preventClick,true);document.addEventListener("mouseup",preventClick,true);document.addEventListener("touchstart",preventClick,true);document.addEventListener("touchend",preventClick,true);document.addEventListener("contextmenu",preventClick,true);window.addEventListener("beforeunload",function(e){e.preventDefault();e.returnValue="";return "";},true);try{Object.defineProperty(window,"location",{value:{href:"#",replace:function(){},assign:function(){}},writable:false,configurable:false});}catch(e){}var originalPushState=history.pushState;history.pushState=function(){return false;};var originalReplaceState=history.replaceState;history.replaceState=function(){return false;};var originalOpen=window.open;window.open=function(){return null;};var allElements=document.querySelectorAll("\*");for(var i=0;i 0 \|\| replacedViewers.length > 0) {
const currentUrl = window.location.href;
if (!processedUrls.has(currentUrl)) {
processedUrls.add(currentUrl);
lastUrl = currentUrl;
}
return;
}
const currentUrl = window.location.href;
if (currentUrl === lastUrl && lastUrl !== null && processedUrls.has(currentUrl)) {
return;
}
// Optimized: Use cached viewer query
const viewers = getUninitializedViewers();
if (viewers.length === 0) {
if (periodicCheckInterval) {
clearInterval(periodicCheckInterval);
periodicCheckInterval = null;
}
return;
}
// Final safety check
if (viewers.length > 0) {
if (currentUrl === lastUrl && lastUrl !== null && processedUrls.has(currentUrl)) {
viewers.forEach(function(viewer) {
viewer.setAttribute('data-initialized', 'true');
});
return;
}
if (currentUrl === lastUrl && lastUrl !== null) {
if (existingContainers.length > 0) {
processedUrls.add(currentUrl);
viewers.forEach(function(viewer) {
viewer.setAttribute('data-initialized', 'true');
});
return;
}
}
}
isInitializing = true;
let processedAny = false;
// Optimized: Process viewers in batch
viewers.forEach(function(viewer) {
if (processedElements.has(viewer) \|\| viewer.hasAttribute('data-initialized')) {
return;
}
if (viewer.closest('.single-page-viewer-container')) {
return;
}
if (!viewer.parentNode) {
return;
}
const isInContentArea = contentArea === document.body \|\| contentArea.contains(viewer);
if (!isInContentArea) {
return;
}
const src = viewer.getAttribute('data-src');
const hint = viewer.getAttribute('data-hint') \|\| '';
const defaultZoom = parseFloat(viewer.getAttribute('data-zoom')) \|\| DEFAULT\_ZOOM;
const dataHeight = viewer.getAttribute('data-height');
const height = dataHeight ? parseFloat(dataHeight) : null;
if (!src) {
// Don't set isInitializing = false here - it affects all viewers in the loop
return;
}
processedElements.add(viewer);
viewer.setAttribute('data-initialized', 'true');
let zoom = defaultZoom;
// Optimized: Use document fragment for DOM construction
const fragment = document.createDocumentFragment();
const container = document.createElement('div');
container.className = 'single-page-viewer-container';
const wrapper = document.createElement('div');
wrapper.className = 'single-page-viewer-wrapper';
const controlsBar = document.createElement('div');
controlsBar.className = 'single-page-viewer-controls';
if (hint) {
const hintDiv = document.createElement('div');
hintDiv.className = 'single-page-viewer-hint';
hintDiv.innerHTML = '' \+ hint + '';
controlsBar.appendChild(hintDiv);
}
const iframeWrapper = document.createElement('div');
iframeWrapper.className = 'single-page-viewer-iframe-wrapper';
iframeWrapper.\_scrollHandlerAdded = false;
// Optimized: Get height without temporary DOM manipulation
const baseHeightFromCSS = height \|\| NORMAL\_HEIGHT;
const scaleDiv = document.createElement('div');
scaleDiv.className = 'single-page-viewer-scale';
const initialHeight = baseHeightFromCSS;
scaleDiv.style.cssText = 'transform: scale(' + zoom + '); transform-origin: top left; width: ' + (100 / zoom) + '%; height: ' + initialHeight + 'px; transition: transform 0.2s ease;';
const iframe = document.createElement('iframe');
let iframeSrc = src;
if (iframeSrc && !iframeSrc.startsWith('http') && !iframeSrc.startsWith('//')) {
if (!iframeSrc.startsWith('/')) {
iframeSrc = '/' + iframeSrc;
}
}
iframe.title = 'Single Page Viewer';
iframe.className = 'single-page-viewer-iframe';
iframe.style.width = '100%';
iframe.style.height = initialHeight + 'px';
iframe.loading = 'lazy';
iframe.setAttribute('scrolling', 'no');
iframe.setAttribute('sandbox', 'allow-same-origin allow-scripts allow-forms allow-popups allow-modals');
const clickBlocker = document.createElement('div');
clickBlocker.className = 'single-page-viewer-click-blocker';
if (iframeSrc.endsWith('.html') && !iframeSrc.startsWith('http')) {
fetch(iframeSrc)
.then(function(response) {
return response.text().then(function(htmlContent) {
if (htmlContent.includes('Page Not Found') \|\|
(htmlContent.includes('\_\_next') && htmlContent.includes('mintlify') && !htmlContent.includes('Page saved with SingleFile'))) {
throw new Error('Received 404 page instead of HTML file.');
}
const blockingCode = getClickBlockingCode();
if (htmlContent.includes('')) {
htmlContent = htmlContent.replace('', blockingCode + '');
} else if (htmlContent.includes('')) {
htmlContent = htmlContent.replace('', '' + blockingCode);
} else {
if (htmlContent.includes('')) {
htmlContent = htmlContent.replace('', '' + blockingCode + '');
} else {
htmlContent = blockingCode + htmlContent;
}
}
iframe.srcdoc = htmlContent;
});
});
} else {
iframe.src = iframeSrc;
}
iframe.addEventListener('load', function() {
setTimeout(function() {
updateIframeDimensions(iframeWrapper, scaleDiv, iframe, zoom);
}, 100);
try {
const iframeDoc = iframe.contentDocument \|\| iframe.contentWindow.document;
injectClickBlocking(iframeDoc);
} catch (e) {
// Cross-origin iframe - cannot block clicks
}
}, { once: true });
iframe.addEventListener('error', function() {
// Iframe failed to load - error handling is silent
}, { once: true });
scaleDiv.appendChild(iframe);
iframeWrapper.appendChild(scaleDiv);
if (!iframeSrc.endsWith('.html') \|\| iframeSrc.startsWith('http')) {
iframeWrapper.appendChild(clickBlocker);
}
if (hint) {
wrapper.appendChild(controlsBar);
}
wrapper.appendChild(iframeWrapper);
container.appendChild(wrapper);
fragment.appendChild(container);
try {
if (viewer.parentNode) {
if (viewer === contentArea \|\| viewer.id === 'content-area') {
isInitializing = false;
return;
}
const viewerId = 'viewer-' + Date.now() + '-' + Math.random().toString(36).slice(2, 11);
viewer.id = viewerId;
viewer.setAttribute('data-viewer-id', viewerId);
container.setAttribute('data-viewer-id', viewerId);
// Optimized: Single DOM insertion using fragment
if (viewer.nextSibling) {
viewer.parentNode.insertBefore(fragment, viewer.nextSibling);
} else {
viewer.parentNode.appendChild(fragment);
}
// Batch style updates
Object.assign(viewer.style, {
display: 'none',
visibility: 'hidden',
position: 'absolute',
width: '1px',
height: '1px',
overflow: 'hidden',
opacity: '0',
pointerEvents: 'none',
margin: '0',
padding: '0'
});
viewer.setAttribute('data-initialized', 'true');
viewer.setAttribute('data-viewer-replaced', 'true');
processedAny = true;
invalidateQueryCache();
requestAnimationFrame(function() {
updateIframeDimensions(iframeWrapper, scaleDiv, iframe, zoom);
});
}
} catch (e) {
isInitializing = false;
return;
}
});
if (processedAny) {
const currentUrl = window.location.href;
processedUrls.add(currentUrl);
lastUrl = currentUrl;
invalidateQueryCache();
}
isInitializing = false;
}
// Wait for content area to be available
function waitForContentArea(callback, maxAttempts, attempt) {
attempt = attempt \|\| 0;
maxAttempts = maxAttempts \|\| 20;
const contentArea = document.querySelector('#content-area') \|\| document.querySelector('.mdx-content');
if (contentArea && document.contains(contentArea)) {
cachedContentArea = contentArea;
callback();
} else if (attempt < maxAttempts) {
setTimeout(function() {
waitForContentArea(callback, maxAttempts, attempt + 1);
}, 500);
} else {
cachedContentArea = document.body;
callback();
}
}
// Optimized: Initialize with better state management
function initialize() {
const currentUrl = window.location.href;
if (lastUrl !== currentUrl && lastUrl !== null) {
lastUrl = currentUrl;
processedUrls.clear();
invalidateQueryCache();
}
if (typeof window !== 'undefined') {
window.\_\_lastFullUrl = window.location.href;
}
if (lastThemeClass === null && document.documentElement) {
lastThemeClass = document.documentElement.className;
}
if (!themeObserver && document.documentElement) {
themeObserver = new MutationObserver(function(mutations) {
for (let i = 0; i < mutations.length; i++) {
const mutation = mutations\[i\];
if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
const currentThemeClass = document.documentElement.className;
if (lastThemeClass !== null && lastThemeClass !== currentThemeClass) {
themeToggleInProgress = true;
// Optimized: Lock containers synchronously
const contentArea = getContentArea();
if (contentArea) {
const containers = getContainers(true);
containers.forEach(function(container) {
if (container.getAttribute('data-position-locked') !== 'true') {
const rect = container.getBoundingClientRect();
Object.assign(container.style, {
position: 'fixed',
top: rect.top + 'px',
left: rect.left + 'px',
width: rect.width + 'px',
zIndex: '9999',
margin: '0'
});
container.setAttribute('data-position-locked', 'true');
containerPositions.set(container, {
top: rect.top,
left: rect.left,
width: rect.width,
height: rect.height
});
}
});
}
let repositionAttempts = 0;
const maxRepositionAttempts = 30;
const repositionInterval = setInterval(function() {
repositionAttempts++;
repositionContainersAfterThemeToggleCore(); // Use core function for immediate repositioning
if (repositionAttempts >= maxRepositionAttempts) {
clearInterval(repositionInterval);
}
}, 100);
setTimeout(function() {
clearInterval(repositionInterval);
themeToggleInProgress = false;
repositionContainersAfterThemeToggleCore(); // Use core function for final repositioning
unlockContainers();
}, 3000);
}
lastThemeClass = currentThemeClass;
}
}
});
themeObserver.observe(document.documentElement, {
attributes: true,
attributeFilter: \['class'\]
});
}
if (typeof MutationObserver !== 'undefined') {
setupObserver();
}
waitForContentArea(function() {
setTimeout(function() {
initSinglePageViewers();
setTimeout(function() {
const remaining = getUninitializedViewers(true);
if (remaining.length > 0) {
initSinglePageViewers();
}
}, INIT\_DELAY);
}, INIT\_DELAY);
});
}
// Optimized: Lock/unlock containers
function lockContainersInPlace() {
const contentArea = getContentArea();
if (!contentArea) return;
const containers = getContainers(true);
containerPositions.clear();
requestAnimationFrame(function() {
containers.forEach(function(container) {
if (container.getAttribute('data-position-locked') !== 'true') {
const rect = container.getBoundingClientRect();
Object.assign(container.style, {
position: 'fixed',
top: rect.top + 'px',
left: rect.left + 'px',
width: rect.width + 'px',
zIndex: '9999',
margin: '0'
});
container.setAttribute('data-position-locked', 'true');
containerPositions.set(container, {
top: rect.top,
left: rect.left,
width: rect.width,
height: rect.height
});
}
});
});
}
function unlockContainers() {
const contentArea = getContentArea();
if (!contentArea) return;
const containers = Array.from(
contentArea.querySelectorAll('.single-page-viewer-container\[data-position-locked="true"\]')
);
containers.forEach(function(container) {
Object.assign(container.style, {
position: '',
top: '',
left: '',
width: '',
zIndex: '',
margin: ''
});
container.removeAttribute('data-position-locked');
// Clean up container position from Map to prevent memory leak
containerPositions.delete(container);
});
containerPositions.clear();
}
// Optimized: Reposition containers with better DOM operations
// Core repositioning function (not debounced for immediate use)
function repositionContainersAfterThemeToggleCore() {
const contentArea = getContentArea();
if (!contentArea) return;
const containers = getContainers(true);
containers.forEach(function(container) {
const viewerId = container.getAttribute('data-viewer-id');
if (!viewerId) return;
let viewer = document.getElementById(viewerId);
if (!viewer) {
const iframe = container.querySelector('iframe');
if (iframe && iframe.src) {
const allViewers = contentArea.querySelectorAll('\[data-single-page-viewer\]');
for (let i = 0; i < allViewers.length; i++) {
const v = allViewers\[i\];
if (v.getAttribute('data-src') === iframe.src) {
viewer = v;
viewer.id = viewerId;
viewer.setAttribute('data-viewer-id', viewerId);
Object.assign(viewer.style, {
display: 'none',
visibility: 'hidden',
position: 'absolute',
width: '1px',
height: '1px',
overflow: 'hidden',
opacity: '0',
pointerEvents: 'none',
margin: '0',
padding: '0'
});
viewer.setAttribute('data-initialized', 'true');
viewer.setAttribute('data-viewer-replaced', 'true');
break;
}
}
}
}
if (viewer && viewer.parentNode) {
if (container.getAttribute('data-position-locked') === 'true') {
unlockContainers();
}
const viewerIndex = Array.from(viewer.parentNode.children).indexOf(viewer);
const containerIndex = Array.from(viewer.parentNode.children).indexOf(container);
if (containerIndex !== viewerIndex + 1) {
// CRITICAL: Check if container is actually a child before removing
if (container.parentNode && container.parentNode.contains(container)) {
try {
container.parentNode.removeChild(container);
} catch (e) {
return; // Skip repositioning if removal failed
}
}
if (viewer.nextSibling) {
viewer.parentNode.insertBefore(container, viewer.nextSibling);
} else {
viewer.parentNode.appendChild(container);
}
} else if (container.parentNode !== viewer.parentNode) {
// CRITICAL: Check if container is actually a child before removing
if (container.parentNode && container.parentNode.contains(container)) {
try {
container.parentNode.removeChild(container);
} catch (e) {
return; // Skip repositioning if removal failed
}
}
if (viewer.nextSibling) {
viewer.parentNode.insertBefore(container, viewer.nextSibling);
} else {
viewer.parentNode.appendChild(container);
}
}
}
});
invalidateQueryCache();
}
// Debounced version for non-critical repositioning
const repositionContainersAfterThemeToggle = debounce(repositionContainersAfterThemeToggleCore, REPOSITION\_DEBOUNCE);
// Optimized: Observer setup with better filtering
let observer = null;
let containerPositionObserver = null;
let fallbackObserver = null; // Track fallback observer for cleanup
function setupContainerPositionObserver() {
if (typeof MutationObserver === 'undefined') return;
const contentArea = getContentArea();
if (!contentArea \|\| !document.contains(contentArea)) {
setTimeout(setupContainerPositionObserver, 500);
return;
}
if (containerPositionObserver) {
containerPositionObserver.disconnect();
}
containerPositionObserver = new MutationObserver(function(mutations) {
if (themeToggleInProgress) {
// Use core function (not debounced) for immediate repositioning during theme toggle
requestAnimationFrame(repositionContainersAfterThemeToggleCore);
return;
}
let needsReposition = false;
for (let i = 0; i < mutations.length && !needsReposition; i++) {
if (mutations\[i\].type === 'childList') {
needsReposition = true;
}
}
if (needsReposition) {
clearTimeout(containerPositionObserver.\_timeout);
containerPositionObserver.\_timeout = setTimeout(repositionContainersAfterThemeToggle, REPOSITION\_DEBOUNCE);
}
});
containerPositionObserver.observe(contentArea, {
childList: true,
subtree: true,
attributes: false,
characterData: false
});
containerPositionObserver.\_timeout = null;
}
// Optimized: Main observer with better early exits
function setupObserver() {
if (typeof MutationObserver === 'undefined') return;
const contentArea = getContentArea();
if (!contentArea \|\| !document.contains(contentArea)) {
setTimeout(setupObserver, 500);
return;
}
if (contentArea === document.documentElement \|\| contentArea === document.body) {
return;
}
if (observer) {
const currentObserved = observer.\_observedElement;
if (currentObserved === contentArea && document.contains(contentArea)) {
return;
}
if (currentObserved) {
observer.disconnect();
}
observer = null;
}
observer = new MutationObserver(function(mutations) {
if (themeToggleInProgress) return;
let hasNewViewer = false;
for (let i = 0; i < mutations.length && !hasNewViewer; i++) {
const mutation = mutations\[i\];
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
for (let j = 0; j < mutation.addedNodes.length && !hasNewViewer; j++) {
const node = mutation.addedNodes\[j\];
if (node.nodeType === 1 &&
node.hasAttribute &&
node.hasAttribute('data-single-page-viewer') &&
!node.hasAttribute('data-initialized') &&
!node.hasAttribute('data-viewer-replaced')) {
hasNewViewer = true;
}
}
}
}
if (hasNewViewer) {
// Use core function for immediate repositioning when new viewer detected
repositionContainersAfterThemeToggleCore();
setTimeout(repositionContainersAfterThemeToggleCore, 10);
setTimeout(repositionContainersAfterThemeToggleCore, 50);
setTimeout(repositionContainersAfterThemeToggleCore, 200);
}
clearTimeout(observerTimeout);
observerTimeout = setTimeout(function() {
if (themeToggleInProgress) return;
let hasNewViewer = false;
for (let i = 0; i < mutations.length && !hasNewViewer; i++) {
const mutation = mutations\[i\];
if (mutation.target === document.documentElement \|\| mutation.target === document.body) {
continue;
}
if (mutation.type === 'attributes' &&
mutation.attributeName === 'class' &&
mutation.target === document.documentElement) {
continue;
}
if (mutation.type === 'attributes' && mutation.attributeName === 'data-initialized') {
const target = mutation.target;
if (target && target.hasAttribute &&
target.hasAttribute('data-single-page-viewer') &&
!target.hasAttribute('data-initialized')) {
hasNewViewer = true;
}
}
if (mutation.addedNodes && mutation.addedNodes.length > 0) {
for (let j = 0; j < mutation.addedNodes.length && !hasNewViewer; j++) {
const node = mutation.addedNodes\[j\];
if (node.nodeType === 1 &&
node.hasAttribute &&
node.hasAttribute('data-single-page-viewer') &&
!node.hasAttribute('data-initialized')) {
hasNewViewer = true;
}
}
}
}
if (hasNewViewer) {
invalidateQueryCache();
initSinglePageViewers();
}
}, OBSERVER\_DEBOUNCE);
});
observer.observe(contentArea, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: \['data-initialized'\],
characterData: false
});
observer.\_observedElement = contentArea;
setupContainerPositionObserver();
}
function start() {
setupObserver();
initialize();
}
function checkAndInitialize() {
if (isInitializing) return;
const currentUrl = window.location.href;
if (currentUrl === lastUrl && lastUrl !== null) {
return;
}
const contentArea = document.querySelector('#content-area') \|\| document.querySelector('.mdx-content');
if (contentArea) {
const viewers = getUninitializedViewers(true);
if (viewers.length > 0) {
cachedContentArea = contentArea;
setupObserver();
initialize();
}
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', start);
} else {
setTimeout(start, 100);
}
if (typeof window !== 'undefined' && window.next) {
let initialLoadAttempts = 0;
const maxInitialAttempts = 4;
const attemptDelays = \[200, 500, 1000, 2000\];
const initialUrl = window.location.href;
attemptDelays.forEach(function(delay) {
setTimeout(function() {
if (initialLoadAttempts < maxInitialAttempts) {
initialLoadAttempts++;
if (window.location.href === initialUrl) {
checkAndInitialize();
}
}
}, delay);
});
}
window.addEventListener('popstate', function(e) {
const currentUrl = window.location.href;
if (currentUrl !== lastUrl) {
handleNavigation();
}
});
if (typeof window !== 'undefined') {
if (window.next && window.next.router && window.next.router.events) {
window.next.router.events.on('routeChangeComplete', function(url) {
lastUrl = window.location.href;
isInitializing = false;
pendingInitCall = false;
if (navigationTimeout) {
clearTimeout(navigationTimeout);
navigationTimeout = null;
}
invalidateContentAreaCache();
invalidateQueryCache();
setTimeout(function() {
setupObserver();
initialize();
}, 300);
});
window.next.router.events.on('routeChangeStart', function(url) {
isInitializing = false;
pendingInitCall = false;
});
}
if (!window.next \|\| !window.next.router) {
const originalPushState = history.pushState;
const originalReplaceState = history.replaceState;
history.pushState = function() {
originalPushState.apply(history, arguments);
setTimeout(function() {
if (window.location.href !== lastUrl) {
handleNavigation();
}
}, 0);
};
history.replaceState = function() {
originalReplaceState.apply(history, arguments);
setTimeout(function() {
if (window.location.href !== lastUrl) {
handleNavigation();
}
}, 0);
};
}
}
document.addEventListener('visibilitychange', function() {
if (!document.hidden) {
isInitializing = false;
startPeriodicCheck();
if (!pendingInitCall) {
pendingInitCall = true;
setTimeout(function() {
pendingInitCall = false;
initSinglePageViewers();
}, INIT\_DELAY / 2);
}
}
});
function startPeriodicCheck() {
if (periodicCheckInterval) return;
periodicCheckInterval = setInterval(function() {
const uninitialized = getUninitializedViewers(true);
if (uninitialized.length === 0) {
clearInterval(periodicCheckInterval);
periodicCheckInterval = null;
} else if (!isInitializing) {
initSinglePageViewers();
}
}, 2000);
}
setTimeout(startPeriodicCheck, INIT\_DELAY \* 2);
window.\_\_singlePageViewerInit = function() {
const currentUrl = window.location.href;
if (currentUrl === lastUrl) {
return;
}
isInitializing = false;
pendingInitCall = false;
lastUrl = currentUrl;
invalidateContentAreaCache();
invalidateQueryCache();
setupObserver();
initialize();
};
window.\_\_singlePageViewerCheck = function() {
invalidateQueryCache();
initSinglePageViewers();
};
})();
// Optimized: Second IIFE for navigation handling
(function() {
'use strict';
let lastPathname = window.location.pathname;
let lastInitializedPathname = window.location.pathname;
function checkAndInit() {
const currentPathname = window.location.pathname;
if (currentPathname === lastInitializedPathname) {
return;
}
lastInitializedPathname = currentPathname;
if (typeof window !== 'undefined') {
window.\_\_lastFullUrl = window.location.href;
}
if (window.\_\_singlePageViewerInit) {
window.\_\_singlePageViewerInit();
}
}
function runInit() {
if (window.\_\_singlePageViewerInit) {
setTimeout(checkAndInit, 100);
} else {
let attempts = 0;
const maxAttempts = 50;
const checkInterval = setInterval(function() {
attempts++;
if (window.\_\_singlePageViewerInit) {
clearInterval(checkInterval);
setTimeout(checkAndInit, 100);
} else if (attempts >= maxAttempts) {
clearInterval(checkInterval);
}
}, 100);
}
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', runInit);
} else {
setTimeout(runInit, 100);
}
if (typeof window !== 'undefined' && window.next && window.next.router && window.next.router.events) {
window.next.router.events.on('routeChangeComplete', function(url) {
lastPathname = window.location.pathname;
setTimeout(checkAndInit, 300);
});
}
setInterval(function() {
const currentPathname = window.location.pathname;
if (currentPathname !== lastPathname) {
lastPathname = currentPathname;
setTimeout(checkAndInit, 300);
}
}, 500);
if (typeof MutationObserver !== 'undefined') {
let fallbackObserverTimeout = null;
// Store in outer scope for cleanup tracking
fallbackObserver = new MutationObserver(function(mutations) {
if (fallbackObserverTimeout) {
clearTimeout(fallbackObserverTimeout);
}
fallbackObserverTimeout = setTimeout(function() {
const contentArea = document.querySelector('#content-area');
if (contentArea) {
const uninitialized = contentArea.querySelectorAll(
'\[data-single-page-viewer\]:not(\[data-initialized\]):not(.single-page-viewer-container \[data-single-page-viewer\])'
);
if (uninitialized.length > 0) {
const currentPathname = window.location.pathname;
if (currentPathname !== lastInitializedPathname) {
setTimeout(checkAndInit, 200);
}
}
}
}, 500);
});
if (document.body) {
fallbackObserver.observe(document.body, { childList: true, subtree: true });
} else {
document.addEventListener('DOMContentLoaded', function() {
if (document.body) {
fallbackObserver.observe(document.body, { childList: true, subtree: true });
}
});
}
}
})();