[{"data":1,"prerenderedAt":564},["ShallowReactive",2],{"developers:\u002Fdevelopers\u002Ffaq":3},{"doc":4,"lang":391,"nav":402,"alternatePath":493,"policy":494,"specVersion":538,"reference":7,"layout":539,"toc":540,"prev":562,"next":7,"operations":563,"overview":7,"heroExample":7},{"id":5,"title":6,"apiTag":7,"body":8,"description":388,"draft":389,"extension":390,"lang":391,"meta":392,"navTitle":7,"navigation":393,"order":394,"path":395,"rawbody":396,"section":397,"seo":398,"stem":399,"translationKey":400,"version":7,"__hash__":401},"developers_en\u002Fdevelopers\u002Ffaq.md","FAQ",null,{"type":9,"value":10,"toc":356},"minimark",[11,16,21,49,53,71,75,93,97,108,112,116,124,128,131,135,149,153,157,168,172,180,184,199,203,207,222,226,249,253,257,300,304,308,344,348],[12,13,15],"h2",{"id":14},"access-and-keys","Access and keys",[17,18,20],"h3",{"id":19},"how-do-i-get-a-key","How do I get a key?",[22,23,24,25,35,36,39,40,44,45,48],"p",{},"An administrator of your Totem team creates an integration in ",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fapp.totemstudio.ai\u002Fsettings?tab=developers",[30],"nofollow",[32,33,34],"strong",{},"Settings → Developers"," and copies its secret key into your server's secret store. The API is in ",[32,37,38],{},"Beta",", with no invitation required. The administrator needs a verified email address, your organization needs Pro or a higher plan, or an agreed API entitlement, and the team must have completed its legal setup; the ",[26,41,43],{"href":42},"\u002Fdevelopers\u002Fquickstart#before-you-begin","Quickstart"," lists every requirement and what to check when ",[32,46,47],{},"Create API key"," does not appear. It then takes you through your first requests.",[17,50,52],{"id":51},"can-one-key-read-several-teams","Can one key read several teams?",[22,54,55,56,60,61,65,66,70],{},"Yes, when the teams belong to the same organization, and only a family administrator can create such a key. An integration covers an explicit list of up to ",[57,58],"api-const",{"name":59},"MAX_FAMILY_INTEGRATION_TEAMS"," teams. Requests for one team's collections then name the team in the ",[62,63,64],"code",{},"Totem-Team"," header, and you keep one changes-feed cursor per team. See ",[26,67,69],{"href":68},"\u002Fdevelopers\u002Fauthentication","Authentication",".",[17,72,74],{"id":73},"can-i-limit-a-key-to-my-servers-ip-addresses","Can I limit a key to my servers' IP addresses?",[22,76,77,78,81,82,84,85,88,89,92],{},"Yes. An integration can carry an allowlist of up to ",[57,79],{"name":80},"MAX_IP_ALLOWLIST"," IP addresses or CIDR ranges, set in ",[32,83,34],{},". The API is reachable over IPv4 only, so list the public IPv4 addresses your requests leave from. A request from any other address gets ",[62,86,87],{},"403 ip_not_allowed",". ",[26,90,69],{"href":91},"\u002Fdevelopers\u002Fauthentication#ip-allowlist"," explains how to set it up.",[17,94,96],{"id":95},"can-i-call-the-api-from-a-browser-or-a-mobile-app","Can I call the API from a browser or a mobile app?",[22,98,99,100,103,104,107],{},"No. A key reads administrator-level data, so it must stay on your server. The API sends no CORS headers, and it answers ",[62,101,102],{},"400 secret_key_in_browser"," to a request that carries a key and an ",[62,105,106],{},"Origin"," header. Call the API from your backend, and send your app only the data it needs.",[12,109,111],{"id":110},"data","Data",[17,113,115],{"id":114},"can-i-write-data-through-the-api","Can I write data through the API?",[22,117,118,119,123],{},"No. Version 1.0a is read-only: no endpoint creates or changes anything in Totem. The ",[26,120,122],{"href":121},"\u002Fdevelopers\u002Fchangelog","changelog"," announces any new capability.",[17,125,127],{"id":126},"can-i-read-message-text-call-transcripts-or-recordings","Can I read message text, call transcripts or recordings?",[22,129,130],{},"No. Version 1.0a returns contact details, such as names, email addresses and phone numbers, and metadata, but no message text, call transcripts, summaries, recordings, notes, free-text answers or custom form fields. A conversation tells you its channel, its status and when the last messages came and went. A call tells you its direction, its duration and its outcome.",[17,132,134],{"id":133},"how-do-i-find-a-lead-by-phone-number-or-email","How do I find a lead by phone number or email?",[22,136,137,138,144,145,148],{},"Send the phone number or the email address in the JSON body of ",[26,139,141],{"href":140},"\u002Fdevelopers\u002Freference-leads#leads.search",[62,142,143],{},"POST \u002Fv1\u002Fleads\u002Fsearch",", never in a URL. Send exactly one of the two. Search matches exactly, returns at most ",[57,146],{"name":147},"SEARCH_MAX_RESULTS"," leads and never pages, so when many records share the same phone number or email address, it may not return them all.",[12,150,152],{"id":151},"sync-and-freshness","Sync and freshness",[17,154,156],{"id":155},"are-there-webhooks","Are there webhooks?",[22,158,159,160,163,164,70],{},"No. The Totem API has no webhooks: read the changes feed with your stored cursor every 1 to 5 minutes. The webhooks that Totem's plans list are a separate feature of the product, set up in Totem, not with an API key. A poll that finds nothing new returns an empty page that still moves your cursor forward, so store its ",[62,161,162],{},"next_cursor"," too. See ",[26,165,167],{"href":166},"\u002Fdevelopers\u002Fsync","Keep a copy in sync",[17,169,171],{"id":170},"how-fast-do-changes-appear","How fast do changes appear?",[22,173,174,175,179],{},"Shortly after they happen in Totem. The changes feed holds back its last ",[57,176],{"name":177,"divide":178},"FEED_SETTLE_LAG_MS","1000"," seconds, so that a change still being written is never skipped. If you poll every 1 to 5 minutes, your copy stays about that close to Totem.",[17,181,183],{"id":182},"why-does-a-new-record-answer-404-for-a-moment","Why does a new record answer 404 for a moment?",[22,185,186,187,190,191,194,195,70],{},"Totem prepares each record for the API shortly after it changes. Until then, lists and search skip a new record, and ",[62,188,189],{},"GET"," on its id answers ",[62,192,193],{},"404 resource_missing",". The changes feed delivers the record as soon as it is ready. See ",[26,196,198],{"href":197},"\u002Fdevelopers\u002Fpagination","Lists and pagination",[12,200,202],{"id":201},"testing-and-tools","Testing and tools",[17,204,206],{"id":205},"is-there-a-sandbox","Is there a sandbox?",[22,208,209,210,217,218,70],{},"Not yet. Version 1.0a has no test environment and no test keys: every key reads a real team. Use a dedicated team containing only fictitious contacts. The kit's ",[26,211,214],{"href":212,"rel":213},"https:\u002F\u002Ftotemstudio.ai\u002Fdevelopers\u002Fkit\u002Ffixtures.json",[30],[62,215,216],{},"fixtures.json"," holds example data for your unit tests. See ",[26,219,221],{"href":220},"\u002Fdevelopers\u002Ftesting","Testing and go-live",[17,223,225],{"id":224},"is-there-an-sdk","Is there an SDK?",[22,227,228,229,233,234,237,238,242,243,248],{},"Yes. The official ",[26,230,232],{"href":231},"\u002Fdevelopers\u002Ftypescript","TypeScript SDK",", ",[62,235,236],{},"@totemstudioai\u002Fsdk",", covers every endpoint and provides typed responses, pagination and API errors. It runs on your server, on the Node.js versions its page lists. To keep a copy of a team, start from the ",[26,239,241],{"href":240},"\u002Fdevelopers\u002Fsync#tested-reference-client","tested reference client"," of the sync guide. The ",[26,244,247],{"href":245,"rel":246},"https:\u002F\u002Ftotemstudio.ai\u002Fdevelopers\u002Fkit\u002Fopenapi.json",[30],"OpenAPI document"," remains available for other languages.",[12,250,252],{"id":251},"limits","Limits",[17,254,256],{"id":255},"what-are-the-limits","What are the limits?",[22,258,259,260,263,264,267,268,271,272,275,276,279,280,283,284,287,288,291,292,295,296,70],{},"A key reads up to ",[57,261],{"name":262},"SYNC_VELOCITY.perMinute"," items a minute, with bursts of up to ",[57,265],{"name":266},"SYNC_VELOCITY.burst",". Each UTC day, list endpoints and the changes feed return it up to ",[57,269],{"name":270},"SYNC_DAILY_BUDGET.floor"," items, or ",[57,273],{"name":274},"SYNC_DAILY_BUDGET.recordsMultiplier"," times the number of records in its teams if that is more; requests for one record, search and ",[62,277,278],{},"GET \u002Fv1\u002Fme"," do not count toward that quota. A page holds up to ",[57,281],{"name":282},"PAGE_LIMIT.max"," items. Past a limit, the API answers ",[62,285,286],{},"429"," with ",[62,289,290],{},"Retry-After",": wait that many seconds, then continue with the same cursor. During the Beta these numbers are approximate, and an organization can hold up to ",[57,293],{"name":294},"MAX_INTEGRATIONS_PER_FAMILY"," active integrations. See ",[26,297,299],{"href":298},"\u002Fdevelopers\u002Frate-limits","Rate limits",[12,301,303],{"id":302},"privacy","Privacy",[17,305,307],{"id":306},"how-do-i-honor-erasure-requests","How do I honor erasure requests?",[22,309,310,311,314,315,318,319,322,323,233,326,329,330,333,334,337,338,341,342,70],{},"When a record is erased in Totem, the changes feed delivers a removal with ",[62,312,313],{},"reason: \"erased\"",". Erasing a lead also erases its calls, its conversations and the archived leads merged into it, and each arrives as a removal of its own; its bookings stay, with ",[62,316,317],{},"lead"," set to ",[62,320,321],{},"null",". Delete the record from your copy and from every system you fed from it, and keep only its tombstone: its ",[62,324,325],{},"kind",[62,327,328],{},"id"," and ",[62,331,332],{},"version",". Removals stay in the feed for ",[57,335],{"name":336},"REMOVAL_RETENTION_DAYS"," days, longer than a cursor lives, so a sync that keeps polling successfully never misses one. While the API refuses a team, no removals arrive for it, and when access returns after its cursor has expired, the full resync deletes what was removed meanwhile. A team in an excluded sector (",[62,339,340],{},"sector_restricted",") gets no removals until Totem changes its sector policy, so keep its copy only as long as your retention policy allows. See ",[26,343,167],{"href":166},[17,345,347],{"id":346},"where-does-the-api-run-and-who-protects-the-data-i-copy","Where does the API run, and who protects the data I copy?",[22,349,350,351,355],{},"The API runs on Google Cloud in the European Union and answers only over HTTPS. Once you copy data, protecting it is up to you and the customer whose data it is. ",[26,352,354],{"href":353},"\u002Fdevelopers\u002Fsecurity","Security and personal data"," explains both, and how to report a vulnerability.",{"title":357,"searchDepth":358,"depth":358,"links":359},"",3,[360,367,372,377,381,384],{"id":14,"depth":361,"text":15,"children":362},2,[363,364,365,366],{"id":19,"depth":358,"text":20},{"id":51,"depth":358,"text":52},{"id":73,"depth":358,"text":74},{"id":95,"depth":358,"text":96},{"id":110,"depth":361,"text":111,"children":368},[369,370,371],{"id":114,"depth":358,"text":115},{"id":126,"depth":358,"text":127},{"id":133,"depth":358,"text":134},{"id":151,"depth":361,"text":152,"children":373},[374,375,376],{"id":155,"depth":358,"text":156},{"id":170,"depth":358,"text":171},{"id":182,"depth":358,"text":183},{"id":201,"depth":361,"text":202,"children":378},[379,380],{"id":205,"depth":358,"text":206},{"id":224,"depth":358,"text":225},{"id":251,"depth":361,"text":252,"children":382},[383],{"id":255,"depth":358,"text":256},{"id":302,"depth":361,"text":303,"children":385},[386,387],{"id":306,"depth":358,"text":307},{"id":346,"depth":358,"text":347},"Short answers to the questions developers ask most about the Totem API, with links to the details.",false,"md","en",{},true,"4","\u002Fdevelopers\u002Ffaq","---\ntitle: FAQ\ndescription: Short answers to the questions developers ask most about the Totem API, with links to the details.\nsection: resources\norder: 4\ntranslationKey: faq\nlang: en\ndraft: false\n---\n\n## Access and keys\n\n### How do I get a key?\n\nAn administrator of your Totem team creates an integration in [**Settings → Developers**](https:\u002F\u002Fapp.totemstudio.ai\u002Fsettings?tab=developers) and copies its secret key into your server's secret store. The API is in **Beta**, with no invitation required. The administrator needs a verified email address, your organization needs Pro or a higher plan, or an agreed API entitlement, and the team must have completed its legal setup; the [Quickstart](\u002Fdevelopers\u002Fquickstart#before-you-begin) lists every requirement and what to check when **Create API key** does not appear. It then takes you through your first requests.\n\n### Can one key read several teams?\n\nYes, when the teams belong to the same organization, and only a family administrator can create such a key. An integration covers an explicit list of up to :api-const{name=\"MAX_FAMILY_INTEGRATION_TEAMS\"} teams. Requests for one team's collections then name the team in the `Totem-Team` header, and you keep one changes-feed cursor per team. See [Authentication](\u002Fdevelopers\u002Fauthentication).\n\n### Can I limit a key to my servers' IP addresses?\n\nYes. An integration can carry an allowlist of up to :api-const{name=\"MAX_IP_ALLOWLIST\"} IP addresses or CIDR ranges, set in **Settings → Developers**. The API is reachable over IPv4 only, so list the public IPv4 addresses your requests leave from. A request from any other address gets `403 ip_not_allowed`. [Authentication](\u002Fdevelopers\u002Fauthentication#ip-allowlist) explains how to set it up.\n\n### Can I call the API from a browser or a mobile app?\n\nNo. A key reads administrator-level data, so it must stay on your server. The API sends no CORS headers, and it answers `400 secret_key_in_browser` to a request that carries a key and an `Origin` header. Call the API from your backend, and send your app only the data it needs.\n\n## Data\n\n### Can I write data through the API?\n\nNo. Version 1.0a is read-only: no endpoint creates or changes anything in Totem. The [changelog](\u002Fdevelopers\u002Fchangelog) announces any new capability.\n\n### Can I read message text, call transcripts or recordings?\n\nNo. Version 1.0a returns contact details, such as names, email addresses and phone numbers, and metadata, but no message text, call transcripts, summaries, recordings, notes, free-text answers or custom form fields. A conversation tells you its channel, its status and when the last messages came and went. A call tells you its direction, its duration and its outcome.\n\n### How do I find a lead by phone number or email?\n\nSend the phone number or the email address in the JSON body of [`POST \u002Fv1\u002Fleads\u002Fsearch`](\u002Fdevelopers\u002Freference-leads#leads.search), never in a URL. Send exactly one of the two. Search matches exactly, returns at most :api-const{name=\"SEARCH_MAX_RESULTS\"} leads and never pages, so when many records share the same phone number or email address, it may not return them all.\n\n## Sync and freshness\n\n### Are there webhooks?\n\nNo. The Totem API has no webhooks: read the changes feed with your stored cursor every 1 to 5 minutes. The webhooks that Totem's plans list are a separate feature of the product, set up in Totem, not with an API key. A poll that finds nothing new returns an empty page that still moves your cursor forward, so store its `next_cursor` too. See [Keep a copy in sync](\u002Fdevelopers\u002Fsync).\n\n### How fast do changes appear?\n\nShortly after they happen in Totem. The changes feed holds back its last :api-const{name=\"FEED_SETTLE_LAG_MS\" divide=\"1000\"} seconds, so that a change still being written is never skipped. If you poll every 1 to 5 minutes, your copy stays about that close to Totem.\n\n### Why does a new record answer 404 for a moment?\n\nTotem prepares each record for the API shortly after it changes. Until then, lists and search skip a new record, and `GET` on its id answers `404 resource_missing`. The changes feed delivers the record as soon as it is ready. See [Lists and pagination](\u002Fdevelopers\u002Fpagination).\n\n## Testing and tools\n\n### Is there a sandbox?\n\nNot yet. Version 1.0a has no test environment and no test keys: every key reads a real team. Use a dedicated team containing only fictitious contacts. The kit's [`fixtures.json`](https:\u002F\u002Ftotemstudio.ai\u002Fdevelopers\u002Fkit\u002Ffixtures.json) holds example data for your unit tests. See [Testing and go-live](\u002Fdevelopers\u002Ftesting).\n\n### Is there an SDK?\n\nYes. The official [TypeScript SDK](\u002Fdevelopers\u002Ftypescript), `@totemstudioai\u002Fsdk`, covers every endpoint and provides typed responses, pagination and API errors. It runs on your server, on the Node.js versions its page lists. To keep a copy of a team, start from the [tested reference client](\u002Fdevelopers\u002Fsync#tested-reference-client) of the sync guide. The [OpenAPI document](https:\u002F\u002Ftotemstudio.ai\u002Fdevelopers\u002Fkit\u002Fopenapi.json) remains available for other languages.\n\n## Limits\n\n### What are the limits?\n\nA key reads up to :api-const{name=\"SYNC_VELOCITY.perMinute\"} items a minute, with bursts of up to :api-const{name=\"SYNC_VELOCITY.burst\"}. Each UTC day, list endpoints and the changes feed return it up to :api-const{name=\"SYNC_DAILY_BUDGET.floor\"} items, or :api-const{name=\"SYNC_DAILY_BUDGET.recordsMultiplier\"} times the number of records in its teams if that is more; requests for one record, search and `GET \u002Fv1\u002Fme` do not count toward that quota. A page holds up to :api-const{name=\"PAGE_LIMIT.max\"} items. Past a limit, the API answers `429` with `Retry-After`: wait that many seconds, then continue with the same cursor. During the Beta these numbers are approximate, and an organization can hold up to :api-const{name=\"MAX_INTEGRATIONS_PER_FAMILY\"} active integrations. See [Rate limits](\u002Fdevelopers\u002Frate-limits).\n\n## Privacy\n\n### How do I honor erasure requests?\n\nWhen a record is erased in Totem, the changes feed delivers a removal with `reason: \"erased\"`. Erasing a lead also erases its calls, its conversations and the archived leads merged into it, and each arrives as a removal of its own; its bookings stay, with `lead` set to `null`. Delete the record from your copy and from every system you fed from it, and keep only its tombstone: its `kind`, `id` and `version`. Removals stay in the feed for :api-const{name=\"REMOVAL_RETENTION_DAYS\"} days, longer than a cursor lives, so a sync that keeps polling successfully never misses one. While the API refuses a team, no removals arrive for it, and when access returns after its cursor has expired, the full resync deletes what was removed meanwhile. A team in an excluded sector (`sector_restricted`) gets no removals until Totem changes its sector policy, so keep its copy only as long as your retention policy allows. See [Keep a copy in sync](\u002Fdevelopers\u002Fsync).\n\n### Where does the API run, and who protects the data I copy?\n\nThe API runs on Google Cloud in the European Union and answers only over HTTPS. Once you copy data, protecting it is up to you and the customer whose data it is. [Security and personal data](\u002Fdevelopers\u002Fsecurity) explains both, and how to report a vulnerability.\n","resources",{"title":6,"description":388},"developers\u002Ffaq","faq","KgR4yYL1g_vnAQjIccIPWrQEtGZtLKReFGsXxfEzTBA",[403,415,432,479],{"section":404,"items":405},"start",[406,410,413],{"path":407,"title":408,"description":409},"\u002Fdevelopers","Overview","Read the leads, calls, conversations and bookings of your Totem teams from your own systems, and keep a copy in sync.",{"path":411,"title":43,"description":412},"\u002Fdevelopers\u002Fquickstart","Make your first requests to the Totem API in a few minutes. Check your key, find your team, list leads and start a sync.",{"path":68,"title":69,"description":414},"Secret keys and where they may live, the Totem-Team header for keys with several teams, IP allowlists, and how to roll or revoke a key.",{"section":416,"items":417},"guides",[418,420,422,424,428,430],{"path":231,"title":232,"description":419},"Use the official TypeScript client to read your Totem data, paginate lists and handle API errors from your server.",{"path":166,"title":167,"description":421},"Copy a team with the changes feed and keep the copy current. Apply pages safely, recover from errors, and start from a reference client that Totem tests.",{"path":197,"title":198,"description":423},"How list endpoints return records a page at a time, how to read every page, and what order and filters a list supports.",{"path":425,"title":426,"description":427},"\u002Fdevelopers\u002Fcoverage","Data coverage","What Totem records, since when, and how to tell an empty value from a fact that was never recorded.",{"path":220,"title":221,"description":429},"How to build and test an integration safely while the API has no test environment, and what to check before you go live.",{"path":353,"title":354,"description":431},"How Totem protects API keys and the data the API serves, what it records about each key, where the API runs, and what to do with the personal data you copy.",{"section":433,"items":434},"reference",[435,439,443,445,450,455,460,465,470,475],{"path":436,"title":437,"description":438},"\u002Fdevelopers\u002Fconventions","Conventions","The notation these docs use, and the rules every response follows: ids, timestamps, empty values, amounts, enums, versions, stability, errors and untrusted text.",{"path":440,"title":441,"description":442},"\u002Fdevelopers\u002Ferrors","Errors","The error format, how your integration should handle each kind of error, and every error code with when it happens and what to do.",{"path":298,"title":299,"description":444},"How much a key can read per minute and per day, what counts toward each limit, how to retry after a 429, and how long an initial sync takes.",{"path":446,"title":447,"description":448,"apiTag":449},"\u002Fdevelopers\u002Freference-account","Account, teams and members","Check that a key works and what it can read, list its teams with their time zones, list each team's members, and check that the API is up.","account",{"path":451,"title":452,"description":453,"apiTag":454},"\u002Fdevelopers\u002Freference-leads","Leads, boards and activities","List, fetch and search a team's leads and clients, read each lead's activities, and list the boards and stages they move through.","leads",{"path":456,"title":457,"description":458,"apiTag":459},"\u002Fdevelopers\u002Freference-calls","Calls","List and fetch a team's calls, with their direction, timing and a normalized outcome. No recordings or transcripts.","calls",{"path":461,"title":462,"description":463,"apiTag":464},"\u002Fdevelopers\u002Freference-conversations","Conversations","List and fetch a team's conversations on every channel, with their status, assignee, whether a person has taken them over and when the last messages came and went. Never message content.","conversations",{"path":466,"title":467,"description":468,"apiTag":469},"\u002Fdevelopers\u002Freference-bookings","Bookings and services","List and fetch a team's bookings, and list the services its customers can book.","bookings",{"path":471,"title":472,"description":473,"apiTag":474},"\u002Fdevelopers\u002Freference-sync","Changes feed","One endpoint that copies a team and then returns every change, page by page.","sync",{"path":476,"title":477,"description":478},"\u002Fdevelopers\u002Fobjects","All objects","Every object the API returns, field by field, with an example of each.",{"section":397,"items":480},[481,484,488,492],{"path":121,"title":482,"description":483},"Changelog","Changes to the Totem API, newest first, each under the date it shipped.",{"path":485,"title":486,"description":487},"\u002Fdevelopers\u002Fsupport","Support","How to get help with the Totem API, what to include in a request, and what to do if a key leaks.",{"path":489,"title":490,"description":491},"\u002Fdevelopers\u002Fglossary","Glossary","The terms these docs use, defined in one place, each with a link to the page that explains it.",{"path":395,"title":6,"description":388},"\u002Fdevelopers\u002Fes\u002Ffaq",{"ACTIVATION_MARGIN_MS":495,"ADMIN_ACCESS_DISCLOSURE_VERSION":496,"AUDIT_RETENTION_DAYS":497,"AUTH_FAILURE_LIMITS":498,"CAPTURE_LAG_FLOOR_MS":502,"CAPTURE_LAG_P99_MS":7,"CURSOR_MAX_AGE_DAYS":503,"DIRTY_TTL_DAYS":503,"FAMILY_TEAM_SCOPE":504,"FAMILY_TEAM_SCOPE_OPTIONS":505,"FEED_SETTLE_LAG_MS":507,"GATE_REFRESH_MS":495,"INTEGRATION_NAME_LENGTH":508,"INTEGRATION_PURPOSE_LENGTH":510,"KEY_CACHE_TTL_MS":513,"KEY_STATS_RETENTION_DAYS":514,"LEAD_RESPONSE_READ_BUDGET":515,"LIST_SCAN_MAX":518,"MAX_FAMILY_INTEGRATION_TEAMS":503,"MAX_INTEGRATIONS_PER_FAMILY":519,"MAX_IP_ALLOWLIST":500,"PAGE_LIMIT":520,"PLATFORM_CONFIG_TTL_MS":523,"REMOVAL_RETENTION_DAYS":524,"REQUEST_BODY_MAX_BYTES":525,"ROLL_GRACE_DEFAULT_HOURS":526,"ROLL_GRACE_HOURS":527,"SEARCH_MAX_RESULTS":519,"SENSITIVE_SECTOR_POLICY":530,"SENSITIVE_SECTOR_POLICY_OPTIONS":531,"SYNC_DAILY_BUDGET":533,"SYNC_VELOCITY":535,"TEAM_CACHE_TTL_MS":537},60000,"2026-10-17",365,{"perIpPerMinute":499,"perLookupIdPerMinute":500,"banMs":501},60,20,600000,300000,30,"explicit_list",[504,506],"all_family_teams",10000,{"min":361,"max":509},80,{"min":511,"max":512},1,280,5000,90,{"conversations":500,"messageReads":516,"calls":517},200,50,1000,10,{"default":521,"max":522},25,100,15000,45,16384,24,[528,511,526,529],0,168,"exclude",[530,532],"allow",{"floor":534,"recordsMultiplier":358},250000,{"perMinute":536,"burst":507},2000,30000,"1.0a","guide",[541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561],{"id":14,"text":15,"depth":361},{"id":19,"text":20,"depth":358},{"id":51,"text":52,"depth":358},{"id":73,"text":74,"depth":358},{"id":95,"text":96,"depth":358},{"id":110,"text":111,"depth":361},{"id":114,"text":115,"depth":358},{"id":126,"text":127,"depth":358},{"id":133,"text":134,"depth":358},{"id":151,"text":152,"depth":361},{"id":155,"text":156,"depth":358},{"id":170,"text":171,"depth":358},{"id":182,"text":183,"depth":358},{"id":201,"text":202,"depth":361},{"id":205,"text":206,"depth":358},{"id":224,"text":225,"depth":358},{"id":251,"text":252,"depth":361},{"id":255,"text":256,"depth":358},{"id":302,"text":303,"depth":361},{"id":306,"text":307,"depth":358},{"id":346,"text":347,"depth":358},{"path":489,"title":490,"section":397},[],1792502788959]