<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.7kas.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js</id>
	<title>MediaWiki:Common.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.7kas.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ACommon.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;action=history"/>
	<updated>2026-09-07T01:24:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=933&amp;oldid=prev</id>
		<title>Maintenance script: Append gated TuCloudAPI Console loader (additive; restapi console untouched)</title>
		<link rel="alternate" type="text/html" href="https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=933&amp;oldid=prev"/>
		<updated>2026-08-03T14:40:52Z</updated>

		<summary type="html">&lt;p&gt;Append gated TuCloudAPI Console loader (additive; restapi console untouched)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:40, 3 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  });&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  });&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;})();&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;})();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/* TuCloudAPI Console loader (tucloudapi) -- gated to its own page; bulk in MediaWiki:TuCloudAPIConsole.js. */&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if (mw.config.get(&#039;wgPageName&#039;) === &#039;TuCloudAPI_Console&#039;) {&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;  mw.loader.load(&#039;/index.php?title=MediaWiki:TuCloudAPIConsole.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=458&amp;oldid=prev</id>
		<title>Maintenance script: API docs (generated from func=help)</title>
		<link rel="alternate" type="text/html" href="https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=458&amp;oldid=prev"/>
		<updated>2026-07-23T19:38:37Z</updated>

		<summary type="html">&lt;p&gt;API docs (generated from func=help)&lt;/p&gt;
&lt;a href=&quot;https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;amp;diff=458&amp;amp;oldid=437&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=437&amp;oldid=prev</id>
		<title>Maintenance script: API docs (generated from func=help)</title>
		<link rel="alternate" type="text/html" href="https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=437&amp;oldid=prev"/>
		<updated>2026-07-22T22:55:37Z</updated>

		<summary type="html">&lt;p&gt;API docs (generated from func=help)&lt;/p&gt;
&lt;a href=&quot;https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;amp;diff=437&amp;amp;oldid=429&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=429&amp;oldid=prev</id>
		<title>Maintenance script: API docs (generated from func=help)</title>
		<link rel="alternate" type="text/html" href="https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=429&amp;oldid=prev"/>
		<updated>2026-07-22T22:27:02Z</updated>

		<summary type="html">&lt;p&gt;API docs (generated from func=help)&lt;/p&gt;
&lt;a href=&quot;https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;amp;diff=429&amp;amp;oldid=410&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=410&amp;oldid=prev</id>
		<title>Maintenance script: API Console gadget</title>
		<link rel="alternate" type="text/html" href="https://wiki.7kas.com/index.php?title=MediaWiki:Common.js&amp;diff=410&amp;oldid=prev"/>
		<updated>2026-07-21T22:40:09Z</updated>

		<summary type="html">&lt;p&gt;API Console gadget&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* 7Kas API Console -- interactive explorer for [[API Console]].&lt;br /&gt;
   SAFE BY DESIGN: pure client-side URL builder. No wiki proxy, no cross-origin fetch;&lt;br /&gt;
   &amp;quot;Run&amp;quot; opens the real 7Kas API (api.7kas.com) in a new tab using the reader&amp;#039;s OWN ukey.&lt;br /&gt;
   Identity is enforced server-side and each key is rate-limited (taskslimit), so this adds&lt;br /&gt;
   no attack surface beyond what the public API already exposes. */&lt;br /&gt;
(function(){&lt;br /&gt;
 if (mw.config.get(&amp;#039;wgPageName&amp;#039;) !== &amp;#039;API_Console&amp;#039;) { return; }&lt;br /&gt;
 var API = &amp;#039;https://api.7kas.com:9080/7Kas&amp;#039;;&lt;br /&gt;
 var CAT = {&amp;quot;help&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;meta&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=help&amp;amp;ukey=KEY&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;name&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Return only this function&amp;#039;s documentation. Omit for the full catalogue.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;helloworld&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;health&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=helloworld&amp;amp;ukey=KEY&amp;quot;,&amp;quot;params&amp;quot;:[]},&amp;quot;SetDebugLevel&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=SetDebugLevel&amp;amp;ukey=SRKEY&amp;amp;level=2&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;level&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;New debug level, 0 (off) to 3 (most verbose).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;ReloadUsersKeys&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=ReloadUsersKeys&amp;amp;ukey=SRKEY&amp;quot;,&amp;quot;params&amp;quot;:[]},&amp;quot;getaccountcodeid&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;accounts&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getaccountcodeid&amp;amp;ukey=OPKEY&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account code (exact). Omit for all.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows (up to 10000).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getaccountcodedata&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;accounts&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getaccountcodedata&amp;amp;ukey=OPKEY&amp;amp;accountcodeid=123&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account id. Omit for all.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;1000&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;lockaccountcode&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;accounts&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=lockaccountcode&amp;amp;ukey=OPKEY&amp;amp;accountcodeid=123&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account id to lock.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;unlockaccountcode&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;accounts&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=unlockaccountcode&amp;amp;ukey=OPKEY&amp;amp;accountcodeid=123&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account id to unlock.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;addaccountcode&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;accounts&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=addaccountcode&amp;amp;ukey=OPKEY&amp;amp;accountcode=NEW1&amp;amp;credit=0&amp;amp;password=secret&amp;amp;name=John&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account code (login). Required. Max 20.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;credit&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Initial credit. Required. Max 20.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;password&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account password. Required. Max 40.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;name&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Contact/holder name. Required. Max 100.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;company&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Company name.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 100&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;address&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Postal address.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 200&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;phone&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Phone.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;email&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Primary e-mail.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 100&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;date_added&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Creation date.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;description&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Free description.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 200&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;language&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;UI language code.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 5&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;postal_code&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Postal code.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 10&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;city&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;City.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 50&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;province&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Province.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 50&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;nif&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Tax id (NIF/CIF).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;blocked&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Blocked flag (SI/NO).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 4&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;postpaid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Postpaid flag.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 4&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Admin flag.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 4&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode_comis&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Commissioner account this account belongs to.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;comisionista&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Is-commissioner flag (SI/NO).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 4&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;groups&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Group memberships.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 100&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;movil_sms&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Mobile for SMS.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;email2&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Secondary e-mail.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 100&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;fax&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Fax.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;nota&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Internal note.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 500&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;web&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Website.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 100&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;flags&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account flags.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;tariff&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Tariff code.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;daycallmail&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Daily-call report e-mail(s).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 100&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;root&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Parent operator root. Forced to the caller&amp;#039;s own unless SuperRoot.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric, max 10&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;credit_limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Credit limit.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;comis_minutos&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Commission minutes.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;ratio&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Commission ratio.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;creditalarm&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Credit alarm threshold.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;aindirecto_coste&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Indirect-access cost.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;intlimit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;International limit.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;daycall&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Daily-call limit.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;intlock&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;International lock flag.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;numeric&amp;quot;}]},&amp;quot;getcredit&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;accounts&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcredit&amp;amp;ukey=KEY&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account to query (operators/SuperRoot only). Omit for your own.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 20&amp;quot;}]},&amp;quot;resetinternalkey&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=resetinternalkey&amp;amp;ukey=SRKEY&amp;amp;accountcodeid=123&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account id whose internal key is reset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getcdr&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;cdr&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcdr&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year of the records (e.g. 2026).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day of month (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour (0-23).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;only valid together with day&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account id. Ignored/forced to the caller&amp;#039;s own for clients.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows. SHM fast-path up to 10000, PostgreSQL fallback up to 1000.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getcallsbilling&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbilling&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;model=voc&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year (e.g. 2026).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;model&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;voc&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;voc = detailed calls; toc = totals.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;valid: voc|toc (case-insensitive)&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account code (non-clients). Forced to own for clients.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=voc only&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour (0-23).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=voc only, requires day&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows. SHM up to 10000, PostgreSQL up to 1000.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Server-side search pattern.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 40&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search_fields&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Comma-separated fields (whitelist: dst, cid_num, cid_name, cli_billing, dial_cid_num, accountcode, prefix, dtype, context, tariff, fromuri).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 200&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search_mode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;contains&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Match mode.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;prefix|suffix|contains|exact&amp;quot;}]},&amp;quot;getcallsbillingtotalroot&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingtotalroot&amp;amp;ukey=SRKEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;root=5&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;root&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Root/operator id. Required for SuperRoot; operators use their own.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;required when SuperRoot&amp;quot;}]},&amp;quot;getcallsbillingcount&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingcount&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;model=voc&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;model&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;voc&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;voc or toc.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;valid: voc|toc&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account code (non-clients).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=voc only&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=voc only, requires day&amp;quot;}]},&amp;quot;getcallsbillingtotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingtotal&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getcallsbillingaccounttotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingaccounttotal&amp;amp;ukey=OPKEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;accountcode=CLI1&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account code to total.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;}]},&amp;quot;getcallsbillingdetailtotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingdetailtotal&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account code (non-clients).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;requires day&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Server-side search pattern.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 40&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search_fields&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Comma-separated searchable fields.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 200&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search_mode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;contains&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Match mode.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;prefix|suffix|contains|exact&amp;quot;}]},&amp;quot;getcallsbillingalltotalroots&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingalltotalroots&amp;amp;ukey=SRKEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getcallsbillingcomis&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;billing&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getcallsbillingcomis&amp;amp;ukey=COMISKEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year. Optional (defaults applied server-side).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12. Optional.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getservices&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;services&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getservices&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;service&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Service prefix (e.g. osttrc). Omit for all services.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account (non-clients). Forced to own for clients.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;requires day&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows (SHM up to 10000, PostgreSQL up to 1000).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getservicestotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;services&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getservicestotal&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;service&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Service prefix. Omit for all.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account (non-clients).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;}]},&amp;quot;getservicesalltotalroots&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;services&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getservicesalltotalroots&amp;amp;ukey=SRKEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;service&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Service prefix. Omit for all services.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 20&amp;quot;}]},&amp;quot;getincomingcalls&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcalls&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;model=vic&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year (e.g. 2026).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;model&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;vic&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;vic = detail records; tic = totals.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;valid: vic|tic (case-insensitive)&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account id (non-clients). Forced to own for clients.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=vic only&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour (0-23).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=vic only, requires day&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows. SHM up to 10000, PostgreSQL up to 1000.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Server-side search pattern.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 40&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search_fields&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Comma-separated fields to search (whitelist: src, dst).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max 200&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;search_mode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;contains&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Match mode.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;prefix|suffix|contains|exact&amp;quot;}]},&amp;quot;getincomingcallstotalroot&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcallstotalroot&amp;amp;ukey=SRKEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;root=5&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;root&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Root/operator id. Required for SuperRoot; operators use their own.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;required when SuperRoot&amp;quot;}]},&amp;quot;getincomingcallscount&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcallscount&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;model=vic&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;model&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;vic&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;vic or tic.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;valid: vic|tic&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account id (non-clients).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=vic only&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;model=vic only, requires day&amp;quot;}]},&amp;quot;getincomingcallstotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcallstotal&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getincomingcallsaccounttotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcallsaccounttotal&amp;amp;ukey=OPKEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;accountcodeid=123&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Account id.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getincomingcallsdetailtotal&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcallsdetailtotal&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account id (non-clients).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;requires day&amp;quot;}]},&amp;quot;getincomingcallsalltotalroots&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;incomingcalls&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getincomingcallsalltotalroots&amp;amp;ukey=SRKEY&amp;amp;year=2026&amp;amp;month=7&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getclis&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;clis&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getclis&amp;amp;ukey=KEY&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;accountcode&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account code. Forced to the caller&amp;#039;s own for clients.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 20&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;active&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by active flag.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 2&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;route&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by route.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 32&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;type&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by CLI type.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 2&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;1000&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Maximum rows to return (capped at 1000).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getpoolstats&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getpoolstats&amp;amp;ukey=SRKEY&amp;quot;,&amp;quot;params&amp;quot;:[]},&amp;quot;getwgpeers&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getwgpeers&amp;amp;ukey=OPKEY&amp;amp;server_id=1&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;server_id&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;WireGuard server id.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;setwgstatus&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=setwgstatus&amp;amp;ukey=OPKEY&amp;amp;host=h1&amp;amp;root=5&amp;amp;status=1&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;host&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Peer host id.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;root&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Operator root the peer belongs to.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;status&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;New status (e.g. 0=disabled, 1=enabled).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;registerwgserver&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=registerwgserver&amp;amp;ukey=OPKEY&amp;amp;server_id=1&amp;amp;wg_pubkey=...&amp;amp;wg_listen_port=51820&amp;amp;wg_endpoint=vpn.example.com:51820&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;server_id&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Server id.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;wg_pubkey&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Server WireGuard public key (max 44).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;wg_listen_port&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;UDP listen port.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;wg_endpoint&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Public endpoint host:port (max 64).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;registerwgdevice&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=registerwgdevice&amp;amp;ukey=OPKEY&amp;amp;mac=AA:BB:CC:DD:EE:FF&amp;amp;wg_pubkey=...&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;mac&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Device MAC address (max 17).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;wg_pubkey&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Device WireGuard public key (max 44).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getwgconfig&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getwgconfig&amp;amp;ukey=KEY&amp;amp;password=DEVICEPASS&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;password&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;The device vpnpassword (max 128).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;registervpnwgdevice&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=registervpnwgdevice&amp;amp;ukey=KEY&amp;amp;host=h1&amp;amp;password=PASS&amp;amp;wg_pubkey=...&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;host&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;VPN host id (max 32).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;password&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;VPN password (max 128).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;wg_pubkey&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Device WireGuard public key (max 44).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getvpnwgconfig&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;wireguard&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getvpnwgconfig&amp;amp;ukey=KEY&amp;amp;host=h1&amp;amp;password=PASS&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;host&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;VPN host id (max 32).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;password&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;VPN password (max 128).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]},&amp;quot;getpbxloclog&amp;quot;:{&amp;quot;cat&amp;quot;:&amp;quot;tucloud&amp;quot;,&amp;quot;ex&amp;quot;:&amp;quot;https://api.7kas.com:9080/7Kas?func=getpbxloclog&amp;amp;ukey=KEY&amp;amp;year=2026&amp;amp;month=7&amp;amp;limit=100&amp;quot;,&amp;quot;params&amp;quot;:[{&amp;quot;n&amp;quot;:&amp;quot;year&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Year (e.g. 2026).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;month&amp;quot;,&amp;quot;req&amp;quot;:true,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Month, 1-12.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;day&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by day of month (1-31).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;hour&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by hour (0-23).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;only valid together with day&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;accountcodeid&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by account id (non-clients). Forced to own for clients.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;tucloudpbx_id&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by virtual PBX id.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;loc_id&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by locution/IVR id.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;pbxname&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by PBX name.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 32&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;pressed&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by DTMF key(s) pressed.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 80&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;src&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by source number.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 80&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;dst&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;string&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Filter by destination number.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;max length 80&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;limit&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Max rows (PostgreSQL up to 1000).&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;},{&amp;quot;n&amp;quot;:&amp;quot;offset&amp;quot;,&amp;quot;req&amp;quot;:false,&amp;quot;def&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;integer&amp;quot;,&amp;quot;d&amp;quot;:&amp;quot;Pagination offset.&amp;quot;,&amp;quot;notes&amp;quot;:&amp;quot;&amp;quot;}]}};&lt;br /&gt;
 function el(t,a,x){var e=document.createElement(t);if(a){for(var k in a){e.setAttribute(k,a[k]);}}if(x!=null){e.textContent=x;}return e;}&lt;br /&gt;
 function byId(id){return document.getElementById(id);}&lt;br /&gt;
 function group(){var g={};Object.keys(CAT).forEach(function(n){var c=CAT[n].cat||&amp;#039;other&amp;#039;;(g[c]=g[c]||[]).push(n);});return g;}&lt;br /&gt;
 function buildURL(){&lt;br /&gt;
   var uk=byId(&amp;#039;ac-ukey&amp;#039;).value.trim(), fn=byId(&amp;#039;ac-func&amp;#039;).value;&lt;br /&gt;
   var qs=&amp;#039;?func=&amp;#039;+encodeURIComponent(fn)+&amp;#039;&amp;amp;ukey=&amp;#039;+encodeURIComponent(uk||&amp;#039;YOUR_KEY&amp;#039;);&lt;br /&gt;
   (CAT[fn].params||[]).forEach(function(p){var e=byId(&amp;#039;ac-p-&amp;#039;+p.n);var v=e?(&amp;#039;&amp;#039;+e.value).trim():&amp;#039;&amp;#039;;if(v){qs+=&amp;#039;&amp;amp;&amp;#039;+encodeURIComponent(p.n)+&amp;#039;=&amp;#039;+encodeURIComponent(v);}});&lt;br /&gt;
   var url=API+qs; byId(&amp;#039;ac-url&amp;#039;).value=url; return url;&lt;br /&gt;
 }&lt;br /&gt;
 function renderParams(){&lt;br /&gt;
   var fn=byId(&amp;#039;ac-func&amp;#039;).value, box=byId(&amp;#039;ac-params&amp;#039;); box.innerHTML=&amp;#039;&amp;#039;;&lt;br /&gt;
   (CAT[fn].params||[]).forEach(function(p){&lt;br /&gt;
     var row=el(&amp;#039;div&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-p&amp;#039;}), lab=el(&amp;#039;label&amp;#039;,{&amp;#039;for&amp;#039;:&amp;#039;ac-p-&amp;#039;+p.n});&lt;br /&gt;
     lab.appendChild(el(&amp;#039;span&amp;#039;,null,p.n+&amp;#039; &amp;#039;));&lt;br /&gt;
     lab.appendChild(el(&amp;#039;small&amp;#039;,null,&amp;#039;(&amp;#039;+p.type+(p.req?&amp;#039;, required&amp;#039;:&amp;#039;, optional&amp;#039;)+&amp;#039;)&amp;#039;));&lt;br /&gt;
     if(p.req){lab.appendChild(el(&amp;#039;span&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-req&amp;#039;},&amp;#039; *&amp;#039;));}&lt;br /&gt;
     row.appendChild(lab);&lt;br /&gt;
     var inp=el(&amp;#039;input&amp;#039;,{id:&amp;#039;ac-p-&amp;#039;+p.n,type:&amp;#039;text&amp;#039;,placeholder:(p.d||&amp;#039;&amp;#039;)+(p.notes?&amp;#039; — &amp;#039;+p.notes:&amp;#039;&amp;#039;)});&lt;br /&gt;
     if(p.def){inp.value=p.def;}&lt;br /&gt;
     inp.addEventListener(&amp;#039;input&amp;#039;,buildURL); row.appendChild(inp); box.appendChild(row);&lt;br /&gt;
   });&lt;br /&gt;
   buildURL();&lt;br /&gt;
 }&lt;br /&gt;
 $(function(){&lt;br /&gt;
   var host=byId(&amp;#039;api-console-app&amp;#039;); if(!host||host.getAttribute(&amp;#039;data-done&amp;#039;)){return;} host.setAttribute(&amp;#039;data-done&amp;#039;,&amp;#039;1&amp;#039;); host.innerHTML=&amp;#039;&amp;#039;;&lt;br /&gt;
   var r1=el(&amp;#039;div&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-row&amp;#039;});&lt;br /&gt;
   r1.appendChild(el(&amp;#039;label&amp;#039;,{&amp;#039;for&amp;#039;:&amp;#039;ac-ukey&amp;#039;},&amp;#039;Your API key (ukey)&amp;#039;));&lt;br /&gt;
   r1.appendChild(el(&amp;#039;input&amp;#039;,{id:&amp;#039;ac-ukey&amp;#039;,type:&amp;#039;text&amp;#039;,placeholder:&amp;#039;paste your ukey here&amp;#039;,autocomplete:&amp;#039;off&amp;#039;,spellcheck:&amp;#039;false&amp;#039;})); host.appendChild(r1);&lt;br /&gt;
   var r2=el(&amp;#039;div&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-row&amp;#039;});&lt;br /&gt;
   r2.appendChild(el(&amp;#039;label&amp;#039;,{&amp;#039;for&amp;#039;:&amp;#039;ac-func&amp;#039;},&amp;#039;Function&amp;#039;));&lt;br /&gt;
   var sel=el(&amp;#039;select&amp;#039;,{id:&amp;#039;ac-func&amp;#039;}), g=group();&lt;br /&gt;
   Object.keys(g).sort().forEach(function(c){var og=el(&amp;#039;optgroup&amp;#039;,{label:c});g[c].sort().forEach(function(n){og.appendChild(el(&amp;#039;option&amp;#039;,{value:n},n));});sel.appendChild(og);});&lt;br /&gt;
   sel.addEventListener(&amp;#039;change&amp;#039;,renderParams); r2.appendChild(sel); host.appendChild(r2);&lt;br /&gt;
   host.appendChild(el(&amp;#039;div&amp;#039;,{id:&amp;#039;ac-params&amp;#039;}));&lt;br /&gt;
   var r3=el(&amp;#039;div&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-row&amp;#039;});&lt;br /&gt;
   r3.appendChild(el(&amp;#039;label&amp;#039;,{&amp;#039;for&amp;#039;:&amp;#039;ac-url&amp;#039;},&amp;#039;Request URL&amp;#039;));&lt;br /&gt;
   r3.appendChild(el(&amp;#039;textarea&amp;#039;,{id:&amp;#039;ac-url&amp;#039;,readonly:&amp;#039;readonly&amp;#039;})); host.appendChild(r3);&lt;br /&gt;
   var bar=el(&amp;#039;div&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-row&amp;#039;});&lt;br /&gt;
   var run=el(&amp;#039;button&amp;#039;,null,&amp;#039;Run ▶  (open result)&amp;#039;); run.addEventListener(&amp;#039;click&amp;#039;,function(){window.open(buildURL(),&amp;#039;_blank&amp;#039;,&amp;#039;noopener&amp;#039;);});&lt;br /&gt;
   var cp=el(&amp;#039;button&amp;#039;,null,&amp;#039;Copy URL&amp;#039;); cp.addEventListener(&amp;#039;click&amp;#039;,function(){byId(&amp;#039;ac-url&amp;#039;).select();try{document.execCommand(&amp;#039;copy&amp;#039;);}catch(e){}});&lt;br /&gt;
   bar.appendChild(run); bar.appendChild(cp); host.appendChild(bar);&lt;br /&gt;
   var note=el(&amp;#039;div&amp;#039;,{&amp;#039;class&amp;#039;:&amp;#039;ac-note&amp;#039;}); note.innerHTML=&amp;#039;This runs a &amp;lt;b&amp;gt;real&amp;lt;/b&amp;gt; call with &amp;lt;b&amp;gt;your&amp;lt;/b&amp;gt; key. You only ever see your own data (identity is forced server-side). The result opens in a new tab as JSON.&amp;#039;;&lt;br /&gt;
   host.appendChild(note);&lt;br /&gt;
   if(sel.options.length){ sel.value=(&amp;#039;getcdr&amp;#039; in CAT)?&amp;#039;getcdr&amp;#039;:sel.options[0].value; renderParams(); }&lt;br /&gt;
 });&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>