[{"data":1,"prerenderedAt":3009},["ShallowReactive",2],{"navigation":3,"reference:connect":45},{"title":4,"links":5},"API reference",[6,9,12,15,18,21,24,27,30,33,36,39,42],{"title":7,"href":8},"Accounts","\u002Freference\u002Faccounts",{"title":10,"href":11},"Connect","\u002Freference\u002Fconnect",{"title":13,"href":14},"Calendars","\u002Freference\u002Fcalendars",{"title":16,"href":17},"Events","\u002Freference\u002Fevents",{"title":19,"href":20},"Availability","\u002Freference\u002Favailability",{"title":22,"href":23},"Meetings","\u002Freference\u002Fmeetings",{"title":25,"href":26},"Invitations","\u002Freference\u002Finvitations",{"title":28,"href":29},"Webhooks","\u002Freference\u002Fwebhooks",{"title":31,"href":32},"Metadata","\u002Freference\u002Fmetadata",{"title":34,"href":35},"Keys","\u002Freference\u002Fkeys",{"title":37,"href":38},"Sandbox","\u002Freference\u002Fsandbox",{"title":40,"href":41},"Usage","\u002Freference\u002Fusage",{"title":43,"href":44},"Logs","\u002Freference\u002Flogs",{"kind":46,"title":47,"name":10,"description":48,"v1":49,"sections":50,"tries":77,"body":167},"generated","Connect API","Connect and reconnect calendar accounts with connect sessions, including the steps that run in the user's browser.","\u002Ffundamentals\u002Fgetting-set-up\u002Fsetup-authentication\u002Fconnect-an-account",[51,55,58,61,65,68,71,74],{"id":52,"title":53,"tag":54},"connect-accounts-create","Connect an account with a code","POST",{"id":56,"title":57,"tag":54},"connect-authorize","Get the consent URL (popup mode)",{"id":59,"title":60,"tag":54},"connect-complete","Complete a connection",{"id":62,"title":63,"tag":64},"connect-go","Start a connection (redirect mode)","GET",{"id":66,"title":67,"tag":54},"connect-info","Get connect widget details",{"id":69,"title":70,"tag":64},"connect-oauth","Get a sign-in URL",{"id":72,"title":73,"tag":54},"connect-sessions-create","Create a connect session",{"id":75,"title":76,"tag":64},"connect-sessions-get","Get a connect session",{"connect.accounts.create":78,"connect.authorize":92,"connect.complete":99,"connect.go":105,"connect.info":121,"connect.oauth":127,"connect.sessions.create":150,"connect.sessions.get":158},{"operationId":79,"method":54,"path":80,"summary":53,"fields":81,"body":89,"unavailable":91},"connect.accounts.create","\u002Fv2\u002Fconnect\u002Faccounts",[82],{"name":83,"in":84,"type":85,"required":86,"raw":87,"sample":87,"options":88},"Idempotency-Key","header","string",false,"",[],{"raw":90,"sample":90},"{\n  \"provider\": \"google\",\n  \"code\": \"4\u002F0AeanS0Z...\",\n  \"subjectId\": \"user_123\"\n}",null,{"operationId":93,"method":54,"path":94,"summary":57,"fields":95,"body":96,"unavailable":98},"connect.authorize","\u002Fv2\u002Fconnect\u002Fauthorize",[],{"raw":97,"sample":97},"{\n  \"token\": \"pcs_your-session-token\",\n  \"provider\": \"google\"\n}","PyasConnect sends this request from the browser with a connect session token, so you can't try it with an API key.",{"operationId":100,"method":54,"path":101,"summary":60,"fields":102,"body":103,"unavailable":98},"connect.complete","\u002Fv2\u002Fconnect\u002Fcomplete",[],{"raw":104,"sample":104},"{\n  \"token\": \"pcs_your-session-token\",\n  \"code\": \"the-code-from-the-provider\",\n  \"state\": \"the-state-from-the-provider\"\n}",{"operationId":106,"method":64,"path":107,"summary":63,"fields":108,"body":91,"unavailable":98},"connect.go","\u002Fv2\u002Fconnect\u002Fgo",[109,115,118],{"name":110,"in":111,"type":85,"required":112,"raw":113,"sample":113,"options":114},"token","query",true,"pcs_your-session-token",[],{"name":116,"in":111,"type":85,"required":86,"raw":87,"sample":87,"options":117},"provider",[],{"name":119,"in":111,"type":85,"required":86,"raw":87,"sample":87,"options":120},"locale",[],{"operationId":122,"method":54,"path":123,"summary":67,"fields":124,"body":125,"unavailable":98},"connect.info","\u002Fv2\u002Fconnect\u002Finfo",[],{"raw":126,"sample":126},"{\n  \"token\": \"pcs_your-session-token\"\n}",{"operationId":128,"method":64,"path":129,"summary":70,"fields":130,"body":91,"unavailable":91},"connect.oauth","\u002Fv2\u002Fconnect\u002Foauth",[131,136,140,144,147],{"name":116,"in":111,"type":85,"required":112,"raw":132,"sample":132,"options":133},"google",[132,134,135],"microsoft","zoom",{"name":137,"in":111,"type":85,"required":86,"raw":138,"sample":138,"options":139},"state","user_123",[],{"name":141,"in":111,"type":85,"required":86,"raw":142,"sample":142,"options":143},"loginHint","person@example.com",[],{"name":145,"in":111,"type":85,"required":86,"raw":87,"sample":87,"options":146},"features",[],{"name":148,"in":111,"type":85,"required":86,"raw":87,"sample":87,"options":149},"redirectUrl",[],{"operationId":151,"method":54,"path":152,"summary":73,"fields":153,"body":156,"unavailable":91},"connect.sessions.create","\u002Fv2\u002Fconnect\u002Fsessions",[154],{"name":83,"in":84,"type":85,"required":86,"raw":87,"sample":87,"options":155},[],{"raw":157,"sample":157},"{\n  \"providers\": [\n    \"google\",\n    \"microsoft\"\n  ],\n  \"subjectId\": \"user_123\"\n}",{"operationId":159,"method":64,"path":160,"summary":76,"fields":161,"body":91,"unavailable":91},"connect.sessions.get","\u002Fv2\u002Fconnect\u002Fsessions\u002F{id}",[162],{"name":163,"in":164,"type":85,"required":112,"raw":165,"sample":165,"options":166},"id","path","cs_0123456789abcdef01234567",[],{"type":168,"value":169},"minimark",[170,174,180,196,199,204,762,764,768,1005,1007,1011,1311,1313,1317,1430,1432,1436,1706,1708,1712,2022,2024,2028,2640,2642,2646,3006],[171,172,10],"h1",{"id":173},"connect",[175,176,177],"lead",{},[178,179,48],"p",{},[181,182,183],"note",{},[178,184,185,186,190,191,195],{},"The examples use IDs from a sample sandbox. Your sandbox has the same people, calendars and events with its own IDs, which ",[187,188,189],"code",{},"GET \u002Fv2\u002Fsandbox"," returns. When you're signed in to the dashboard, ",[192,193,194],"strong",{},"Try it"," fills in your IDs and sends the request to your sandbox, never to live data.",[197,198],"hr",{},[200,201,202],"section-heading",{"id":52,"label":80,"tag":54},[178,203,53],{},[205,206,207,432],"row",{},[208,209,210,224,237,240,245,254,258,324,328],"column",{},[178,211,212,213,216,217,219,220,223],{},"Exchanges the code for tokens, saves the account and returns it. This is the second step of connecting an account from your server without PyasConnect, and it replaces v1's ",[187,214,215],{},"POST \u002F{provider}\u002Fconnect",". Send the ",[187,218,187],{}," that the provider returned. If the same person connects an account that is already connected, Pyas reconnects it and the account keeps its ",[187,221,222],{},"accountId",".",[178,225,226,229,230,232,233,236],{},[192,227,228],{},"In the sandbox:"," Send the ",[187,231,187],{}," that your Redirect URL (Pyas Auth) or your own callback URL (Native Auth) received after ",[187,234,235],{},"GET \u002Fv2\u002Fconnect\u002Foauth",". This request requires a live key.",[238,239],"try-it",{"operation":79},[241,242,244],"h3",{"id":243},"headers","Headers",[246,247,248],"properties",{},[249,250,251],"property",{"name":83,"type":85},[178,252,253],{},"A unique key that makes the request safe to retry. A retry with the same key returns the original response and does not make the change twice. Keys are kept for 24 hours.",[241,255,257],{"id":256},"body","Body",[246,259,260,276,284,290,313],{},[249,261,263],{"name":116,"type":85,":required":262},"true",[178,264,265,266,268,269,271,272,271,274,223],{},"The provider in ",[187,267,235],{},". One of ",[187,270,132],{},", ",[187,273,134],{},[187,275,135],{},[249,277,278],{"name":187,"type":85,":required":262},[178,279,280,281,283],{},"The ",[187,282,187],{}," that the provider returned to your Redirect URL or callback URL.",[249,285,287],{"name":286,"type":85},"subjectId",[178,288,289],{},"Your own identifier for the user, stored on the account.",[249,291,293],{"name":145,"type":292},"array of string",[178,294,295,296,268,298,271,301,271,304,271,307,271,310,223],{},"The same features as in ",[187,297,235],{},[187,299,300],{},"manageCalendars",[187,302,303],{},"sharing",[187,305,306],{},"meetingSettings",[187,308,309],{},"attachmentUploads",[187,311,312],{},"rooms",[249,314,315],{"name":148,"type":85},[178,316,317,318,320,321,323],{},"The same ",[187,319,148],{}," as in ",[187,322,235],{},", if you sent one.",[241,325,327],{"id":326},"errors","Errors",[329,330,331,342,351,360,369,378,387,396,405,414,423],"ul",{},[332,333,334,341],"li",{},[335,336,338],"a",{"href":337},"\u002Ferrors\u002FVALIDATION_INVALID_BODY",[187,339,340],{},"VALIDATION_INVALID_BODY"," (400): The request body is not valid.",[332,343,344,350],{},[335,345,347],{"href":346},"\u002Ferrors\u002FAUTH_INVALID_KEY",[187,348,349],{},"AUTH_INVALID_KEY"," (401): The API key is missing, unknown or revoked.",[332,352,353,359],{},[335,354,356],{"href":355},"\u002Ferrors\u002FAUTH_EXPIRED_KEY",[187,357,358],{},"AUTH_EXPIRED_KEY"," (401): The API key has expired.",[332,361,362,368],{},[335,363,365],{"href":364},"\u002Ferrors\u002FBILLING_CONNECTION_LIMIT",[187,366,367],{},"BILLING_CONNECTION_LIMIT"," (402): The plan's connected account limit has been reached.",[332,370,371,377],{},[335,372,374],{"href":373},"\u002Ferrors\u002FAUTH_SANDBOX_MISMATCH",[187,375,376],{},"AUTH_SANDBOX_MISMATCH"," (403): A test key was used with live data, or a live key was used with sandbox data.",[332,379,380,386],{},[335,381,383],{"href":382},"\u002Ferrors\u002FAUTH_INSUFFICIENT_SCOPE",[187,384,385],{},"AUTH_INSUFFICIENT_SCOPE"," (403): The API key or session does not have permission to make this request.",[332,388,389,395],{},[335,390,392],{"href":391},"\u002Ferrors\u002FCONNECTION_PROVIDER_NOT_CONFIGURED",[187,393,394],{},"CONNECTION_PROVIDER_NOT_CONFIGURED"," (422): The app is not configured to connect accounts from this provider.",[332,397,398,404],{},[335,399,401],{"href":400},"\u002Ferrors\u002FCONNECTION_CONSENT_FAILED",[187,402,403],{},"CONNECTION_CONSENT_FAILED"," (422): The provider did not complete the connection.",[332,406,407,413],{},[335,408,410],{"href":409},"\u002Ferrors\u002FRATE_LIMIT_EXCEEDED",[187,411,412],{},"RATE_LIMIT_EXCEEDED"," (429): The request rate exceeds this plan's rate limit.",[332,415,416,422],{},[335,417,419],{"href":418},"\u002Ferrors\u002FRATE_LIMIT_BURST",[187,420,421],{},"RATE_LIMIT_BURST"," (429): Too many requests were sent in a short period.",[332,424,425,431],{},[335,426,428],{"href":427},"\u002Ferrors\u002FINTERNAL_ERROR",[187,429,430],{},"INTERNAL_ERROR"," (500): Something went wrong on our end.",[208,433,434,601],{":sticky":262},[435,436,438,517],"code-group",{"label":80,"title":437,"tag":54},"Request",[439,440,445],"pre",{"className":441,"code":442,"filename":443,"language":444,"meta":87,"style":87},"language-bash shiki css-variables","curl -X POST 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Faccounts' \\\n  -H \"x-api-key: $PYAS_API_KEY\" \\\n  -H \"content-type: application\u002Fjson\" \\\n  -d '{\n  \"provider\": \"google\",\n  \"code\": \"4\u002F0AeanS0Z...\",\n  \"subjectId\": \"user_123\"\n}'\n","cURL","bash",[187,446,447,470,480,489,497,502,507,512],{"__ignoreMap":87},[448,449,451,455,459,462,466],"span",{"class":450},"line",[448,452,454],{"style":453},"color:var(--shiki-token-function)","curl",[448,456,458],{"style":457},"color:var(--shiki-token-string)"," -X",[448,460,461],{"style":457}," POST",[448,463,465],{"style":464},"color:var(--shiki-token-string-expression)"," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Faccounts'",[448,467,469],{"style":468},"color:var(--shiki-foreground)"," \\",[448,471,472,475,478],{"class":450},[448,473,474],{"style":457},"  -H",[448,476,477],{"style":464}," \"x-api-key: $PYAS_API_KEY\"",[448,479,469],{"style":468},[448,481,482,484,487],{"class":450},[448,483,474],{"style":457},[448,485,486],{"style":464}," \"content-type: application\u002Fjson\"",[448,488,469],{"style":468},[448,490,491,494],{"class":450},[448,492,493],{"style":457},"  -d",[448,495,496],{"style":464}," '{",[448,498,499],{"class":450},[448,500,501],{"style":464},"  \"provider\": \"google\",",[448,503,504],{"class":450},[448,505,506],{"style":464},"  \"code\": \"4\u002F0AeanS0Z...\",",[448,508,509],{"class":450},[448,510,511],{"style":464},"  \"subjectId\": \"user_123\"",[448,513,514],{"class":450},[448,515,516],{"style":464},"}'",[439,518,523],{"className":519,"code":520,"filename":521,"language":522,"meta":87,"style":87},"language-js shiki css-variables","const result = await pyas.connect.accounts.create({\n  \"provider\": \"google\",\n  \"code\": \"4\u002F0AeanS0Z...\",\n  \"subjectId\": \"user_123\"\n})\n","Node.js","js",[187,524,525,559,574,586,596],{"__ignoreMap":87},[448,526,527,531,535,538,541,544,546,548,550,553,556],{"class":450},[448,528,530],{"style":529},"color:var(--shiki-token-keyword)","const",[448,532,534],{"style":533},"color:var(--shiki-token-constant)"," result",[448,536,537],{"style":529}," =",[448,539,540],{"style":529}," await",[448,542,543],{"style":533}," pyas",[448,545,223],{"style":453},[448,547,173],{"style":533},[448,549,223],{"style":453},[448,551,552],{"style":533},"accounts",[448,554,555],{"style":453},".create",[448,557,558],{"style":468},"({",[448,560,561,564,567,570],{"class":450},[448,562,563],{"style":464},"  \"provider\"",[448,565,566],{"style":529},":",[448,568,569],{"style":464}," \"google\"",[448,571,573],{"style":572},"color:var(--shiki-token-punctuation)",",",[448,575,576,579,581,584],{"class":450},[448,577,578],{"style":464},"  \"code\"",[448,580,566],{"style":529},[448,582,583],{"style":464}," \"4\u002F0AeanS0Z...\"",[448,585,573],{"style":572},[448,587,588,591,593],{"class":450},[448,589,590],{"style":464},"  \"subjectId\"",[448,592,566],{"style":529},[448,594,595],{"style":464}," \"user_123\"",[448,597,598],{"class":450},[448,599,600],{"style":468},"})",[435,602,605],{"label":603,"title":604},"200 OK","Response",[439,606,610],{"className":607,"code":608,"language":609,"meta":87,"style":87},"language-json shiki css-variables","{\n  \"success\": true,\n  \"data\": {\n    \"accountId\": \"ef66ec55-7f3c-44f8-8e6d-3e8bc2fafc4b\",\n    \"provider\": \"google\",\n    \"email\": \"avery.brooks@example.com\",\n    \"name\": \"Avery Brooks\",\n    \"subjectId\": \"user_123\",\n    \"existing\": true,\n    \"grantedScopes\": null\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n","json",[187,611,612,617,629,639,651,662,674,686,697,708,718,725,735,747,757],{"__ignoreMap":87},[448,613,614],{"class":450},[448,615,616],{"style":468},"{",[448,618,619,622,624,627],{"class":450},[448,620,621],{"style":529},"  \"success\"",[448,623,566],{"style":572},[448,625,626],{"style":533}," true",[448,628,573],{"style":572},[448,630,631,634,636],{"class":450},[448,632,633],{"style":529},"  \"data\"",[448,635,566],{"style":572},[448,637,638],{"style":468}," {",[448,640,641,644,646,649],{"class":450},[448,642,643],{"style":529},"    \"accountId\"",[448,645,566],{"style":572},[448,647,648],{"style":464}," \"ef66ec55-7f3c-44f8-8e6d-3e8bc2fafc4b\"",[448,650,573],{"style":572},[448,652,653,656,658,660],{"class":450},[448,654,655],{"style":529},"    \"provider\"",[448,657,566],{"style":572},[448,659,569],{"style":464},[448,661,573],{"style":572},[448,663,664,667,669,672],{"class":450},[448,665,666],{"style":529},"    \"email\"",[448,668,566],{"style":572},[448,670,671],{"style":464}," \"avery.brooks@example.com\"",[448,673,573],{"style":572},[448,675,676,679,681,684],{"class":450},[448,677,678],{"style":529},"    \"name\"",[448,680,566],{"style":572},[448,682,683],{"style":464}," \"Avery Brooks\"",[448,685,573],{"style":572},[448,687,688,691,693,695],{"class":450},[448,689,690],{"style":529},"    \"subjectId\"",[448,692,566],{"style":572},[448,694,595],{"style":464},[448,696,573],{"style":572},[448,698,699,702,704,706],{"class":450},[448,700,701],{"style":529},"    \"existing\"",[448,703,566],{"style":572},[448,705,626],{"style":533},[448,707,573],{"style":572},[448,709,710,713,715],{"class":450},[448,711,712],{"style":529},"    \"grantedScopes\"",[448,714,566],{"style":572},[448,716,717],{"style":533}," null",[448,719,720,723],{"class":450},[448,721,722],{"style":468},"  }",[448,724,573],{"style":572},[448,726,727,729,731,733],{"class":450},[448,728,563],{"style":529},[448,730,566],{"style":572},[448,732,717],{"style":533},[448,734,573],{"style":572},[448,736,737,740,742,745],{"class":450},[448,738,739],{"style":529},"  \"traceId\"",[448,741,566],{"style":572},[448,743,744],{"style":464}," \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\"",[448,746,573],{"style":572},[448,748,749,752,754],{"class":450},[448,750,751],{"style":529},"  \"meta\"",[448,753,566],{"style":572},[448,755,756],{"style":468}," {}",[448,758,759],{"class":450},[448,760,761],{"style":468},"}",[197,763],{},[200,765,766],{"id":56,"label":94,"tag":54},[178,767,57],{},[205,769,770,848],{},[208,771,772,775,783,785,788,807,810],{},[178,773,774],{},"Returns the provider's consent URL to open in a popup. This is the second step. Call it from your page with the session's token, from one of the app's allowed origins. For a session created with a test key, the URL is a Pyas sandbox page instead of the provider's. Requesting a new URL, for example after the user switches provider, invalidates the previous one.",[178,776,777,779,780,223],{},[192,778,228],{}," Call this from your page with a session's token. Create the session on your server with ",[187,781,782],{},"POST \u002Fv2\u002Fconnect\u002Fsessions",[238,784],{"operation":93},[241,786,257],{"id":787},"body-1",[246,789,790,795],{},[249,791,792],{"name":110,"type":85,":required":262},[178,793,794],{},"The session's token.",[249,796,797],{"name":116,"type":85},[178,798,799,271,801,803,804,806],{},[187,800,132],{},[187,802,134],{}," or ",[187,805,135],{},". Must be one of the session's providers. Optional when the session offers only one provider.",[241,808,327],{"id":809},"errors-1",[329,811,812,818,827,836,842],{},[332,813,814,341],{},[335,815,816],{"href":337},[187,817,340],{},[332,819,820,826],{},[335,821,823],{"href":822},"\u002Ferrors\u002FAUTH_INVALID_CONNECT_SESSION",[187,824,825],{},"AUTH_INVALID_CONNECT_SESSION"," (401): The connect session is missing, invalid, expired or already used.",[332,828,829,835],{},[335,830,832],{"href":831},"\u002Ferrors\u002FAUTH_ORIGIN_NOT_ALLOWED",[187,833,834],{},"AUTH_ORIGIN_NOT_ALLOWED"," (403): The request's origin is not in the app's allowed origins.",[332,837,838,395],{},[335,839,840],{"href":391},[187,841,394],{},[332,843,844,431],{},[335,845,846],{"href":427},[187,847,430],{},[208,849,850,906],{":sticky":262},[435,851,852],{"label":94,"title":437,"tag":54},[439,853,855],{"className":441,"code":854,"filename":443,"language":444,"meta":87,"style":87},"curl -X POST 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fauthorize' \\\n  -H \"x-api-key: $PYAS_API_KEY\" \\\n  -H \"content-type: application\u002Fjson\" \\\n  -d '{\n  \"token\": \"pcs_your-session-token\",\n  \"provider\": \"google\"\n}'\n",[187,856,857,870,878,886,892,897,902],{"__ignoreMap":87},[448,858,859,861,863,865,868],{"class":450},[448,860,454],{"style":453},[448,862,458],{"style":457},[448,864,461],{"style":457},[448,866,867],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fauthorize'",[448,869,469],{"style":468},[448,871,872,874,876],{"class":450},[448,873,474],{"style":457},[448,875,477],{"style":464},[448,877,469],{"style":468},[448,879,880,882,884],{"class":450},[448,881,474],{"style":457},[448,883,486],{"style":464},[448,885,469],{"style":468},[448,887,888,890],{"class":450},[448,889,493],{"style":457},[448,891,496],{"style":464},[448,893,894],{"class":450},[448,895,896],{"style":464},"  \"token\": \"pcs_your-session-token\",",[448,898,899],{"class":450},[448,900,901],{"style":464},"  \"provider\": \"google\"",[448,903,904],{"class":450},[448,905,516],{"style":464},[435,907,908],{"label":603,"title":604},[439,909,911],{"className":607,"code":910,"language":609,"meta":87,"style":87},"{\n  \"success\": true,\n  \"data\": {\n    \"provider\": \"google\",\n    \"url\": \"https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=1234567890-pyas.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fapi.pyas.io%2Foauth%2Fgoogle%2Fcallback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendarlist.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.settings.readonly&access_type=offline&prompt=consent&include_granted_scopes=true&state=app_id%3D5c1e9a47-2d3b-4f86-a0e9-7b4c2d18f365_rest%3Dpcs1.cs_99bec7442c4db29a8539d679.9Z_srW0El4rA9gop9VssvA\",\n    \"expiresAt\": \"2026-11-14T20:10:32.621Z\"\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n",[187,912,913,917,927,935,945,957,967,973,983,993,1001],{"__ignoreMap":87},[448,914,915],{"class":450},[448,916,616],{"style":468},[448,918,919,921,923,925],{"class":450},[448,920,621],{"style":529},[448,922,566],{"style":572},[448,924,626],{"style":533},[448,926,573],{"style":572},[448,928,929,931,933],{"class":450},[448,930,633],{"style":529},[448,932,566],{"style":572},[448,934,638],{"style":468},[448,936,937,939,941,943],{"class":450},[448,938,655],{"style":529},[448,940,566],{"style":572},[448,942,569],{"style":464},[448,944,573],{"style":572},[448,946,947,950,952,955],{"class":450},[448,948,949],{"style":529},"    \"url\"",[448,951,566],{"style":572},[448,953,954],{"style":464}," \"https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=1234567890-pyas.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fapi.pyas.io%2Foauth%2Fgoogle%2Fcallback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendarlist.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.settings.readonly&access_type=offline&prompt=consent&include_granted_scopes=true&state=app_id%3D5c1e9a47-2d3b-4f86-a0e9-7b4c2d18f365_rest%3Dpcs1.cs_99bec7442c4db29a8539d679.9Z_srW0El4rA9gop9VssvA\"",[448,956,573],{"style":572},[448,958,959,962,964],{"class":450},[448,960,961],{"style":529},"    \"expiresAt\"",[448,963,566],{"style":572},[448,965,966],{"style":464}," \"2026-11-14T20:10:32.621Z\"",[448,968,969,971],{"class":450},[448,970,722],{"style":468},[448,972,573],{"style":572},[448,974,975,977,979,981],{"class":450},[448,976,563],{"style":529},[448,978,566],{"style":572},[448,980,717],{"style":533},[448,982,573],{"style":572},[448,984,985,987,989,991],{"class":450},[448,986,739],{"style":529},[448,988,566],{"style":572},[448,990,744],{"style":464},[448,992,573],{"style":572},[448,994,995,997,999],{"class":450},[448,996,751],{"style":529},[448,998,566],{"style":572},[448,1000,756],{"style":468},[448,1002,1003],{"class":450},[448,1004,761],{"style":468},[197,1006],{},[200,1008,1009],{"id":59,"label":101,"tag":54},[178,1010,60],{},[205,1012,1013,1113],{},[208,1014,1015,1024,1033,1035,1038,1057,1060],{},[178,1016,1017,1018,1020,1021,1023],{},"Exchanges the code that the provider returned and saves the account. This is the third step. Send the ",[187,1019,187],{}," and ",[187,1022,137],{}," that the provider returned. For a session created with a test key, the code comes from the Pyas sandbox page and the account is a simulated one in your sandbox. Each session can be completed only once.",[178,1025,1026,229,1028,1020,1030,1032],{},[192,1027,228],{},[187,1029,187],{},[187,1031,137],{}," that the provider returns after sign-in.",[238,1034],{"operation":100},[241,1036,257],{"id":1037},"body-2",[246,1039,1040,1044,1051],{},[249,1041,1042],{"name":110,"type":85,":required":262},[178,1043,794],{},[249,1045,1046],{"name":187,"type":85,":required":262},[178,1047,280,1048,1050],{},[187,1049,187],{}," that the provider returned.",[249,1052,1053],{"name":137,"type":85,":required":262},[178,1054,280,1055,1050],{},[187,1056,137],{},[241,1058,327],{"id":1059},"errors-2",[329,1061,1062,1068,1074,1080,1086,1095,1101,1107],{},[332,1063,1064,341],{},[335,1065,1066],{"href":337},[187,1067,340],{},[332,1069,1070,826],{},[335,1071,1072],{"href":822},[187,1073,825],{},[332,1075,1076,368],{},[335,1077,1078],{"href":364},[187,1079,367],{},[332,1081,1082,835],{},[335,1083,1084],{"href":831},[187,1085,834],{},[332,1087,1088,1094],{},[335,1089,1091],{"href":1090},"\u002Ferrors\u002FRESOURCE_LIMIT_REACHED",[187,1092,1093],{},"RESOURCE_LIMIT_REACHED"," (409): The limit for this resource has been reached.",[332,1096,1097,404],{},[335,1098,1099],{"href":400},[187,1100,403],{},[332,1102,1103,395],{},[335,1104,1105],{"href":391},[187,1106,394],{},[332,1108,1109,431],{},[335,1110,1111],{"href":427},[187,1112,430],{},[208,1114,1115,1175],{":sticky":262},[435,1116,1117],{"label":101,"title":437,"tag":54},[439,1118,1120],{"className":441,"code":1119,"filename":443,"language":444,"meta":87,"style":87},"curl -X POST 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fcomplete' \\\n  -H \"x-api-key: $PYAS_API_KEY\" \\\n  -H \"content-type: application\u002Fjson\" \\\n  -d '{\n  \"token\": \"pcs_your-session-token\",\n  \"code\": \"the-code-from-the-provider\",\n  \"state\": \"the-state-from-the-provider\"\n}'\n",[187,1121,1122,1135,1143,1151,1157,1161,1166,1171],{"__ignoreMap":87},[448,1123,1124,1126,1128,1130,1133],{"class":450},[448,1125,454],{"style":453},[448,1127,458],{"style":457},[448,1129,461],{"style":457},[448,1131,1132],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fcomplete'",[448,1134,469],{"style":468},[448,1136,1137,1139,1141],{"class":450},[448,1138,474],{"style":457},[448,1140,477],{"style":464},[448,1142,469],{"style":468},[448,1144,1145,1147,1149],{"class":450},[448,1146,474],{"style":457},[448,1148,486],{"style":464},[448,1150,469],{"style":468},[448,1152,1153,1155],{"class":450},[448,1154,493],{"style":457},[448,1156,496],{"style":464},[448,1158,1159],{"class":450},[448,1160,896],{"style":464},[448,1162,1163],{"class":450},[448,1164,1165],{"style":464},"  \"code\": \"the-code-from-the-provider\",",[448,1167,1168],{"class":450},[448,1169,1170],{"style":464},"  \"state\": \"the-state-from-the-provider\"",[448,1172,1173],{"class":450},[448,1174,516],{"style":464},[435,1176,1177],{"label":603,"title":604},[439,1178,1180],{"className":607,"code":1179,"language":609,"meta":87,"style":87},"{\n  \"success\": true,\n  \"data\": {\n    \"accountId\": \"ef66ec55-7f3c-44f8-8e6d-3e8bc2fafc4b\",\n    \"provider\": \"google\",\n    \"email\": \"avery.brooks@example.com\",\n    \"name\": \"Avery Brooks\",\n    \"subjectId\": \"user_123\",\n    \"existing\": false,\n    \"grantedScopes\": null\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n",[187,1181,1182,1186,1196,1204,1214,1224,1234,1244,1254,1265,1273,1279,1289,1299,1307],{"__ignoreMap":87},[448,1183,1184],{"class":450},[448,1185,616],{"style":468},[448,1187,1188,1190,1192,1194],{"class":450},[448,1189,621],{"style":529},[448,1191,566],{"style":572},[448,1193,626],{"style":533},[448,1195,573],{"style":572},[448,1197,1198,1200,1202],{"class":450},[448,1199,633],{"style":529},[448,1201,566],{"style":572},[448,1203,638],{"style":468},[448,1205,1206,1208,1210,1212],{"class":450},[448,1207,643],{"style":529},[448,1209,566],{"style":572},[448,1211,648],{"style":464},[448,1213,573],{"style":572},[448,1215,1216,1218,1220,1222],{"class":450},[448,1217,655],{"style":529},[448,1219,566],{"style":572},[448,1221,569],{"style":464},[448,1223,573],{"style":572},[448,1225,1226,1228,1230,1232],{"class":450},[448,1227,666],{"style":529},[448,1229,566],{"style":572},[448,1231,671],{"style":464},[448,1233,573],{"style":572},[448,1235,1236,1238,1240,1242],{"class":450},[448,1237,678],{"style":529},[448,1239,566],{"style":572},[448,1241,683],{"style":464},[448,1243,573],{"style":572},[448,1245,1246,1248,1250,1252],{"class":450},[448,1247,690],{"style":529},[448,1249,566],{"style":572},[448,1251,595],{"style":464},[448,1253,573],{"style":572},[448,1255,1256,1258,1260,1263],{"class":450},[448,1257,701],{"style":529},[448,1259,566],{"style":572},[448,1261,1262],{"style":533}," false",[448,1264,573],{"style":572},[448,1266,1267,1269,1271],{"class":450},[448,1268,712],{"style":529},[448,1270,566],{"style":572},[448,1272,717],{"style":533},[448,1274,1275,1277],{"class":450},[448,1276,722],{"style":468},[448,1278,573],{"style":572},[448,1280,1281,1283,1285,1287],{"class":450},[448,1282,563],{"style":529},[448,1284,566],{"style":572},[448,1286,717],{"style":533},[448,1288,573],{"style":572},[448,1290,1291,1293,1295,1297],{"class":450},[448,1292,739],{"style":529},[448,1294,566],{"style":572},[448,1296,744],{"style":464},[448,1298,573],{"style":572},[448,1300,1301,1303,1305],{"class":450},[448,1302,751],{"style":529},[448,1304,566],{"style":572},[448,1306,756],{"style":468},[448,1308,1309],{"class":450},[448,1310,761],{"style":468},[197,1312],{},[200,1314,1315],{"id":62,"label":107,"tag":64},[178,1316,63],{},[205,1318,1319,1406],{},[208,1320,1321,1327,1335,1337,1341,1395,1398],{},[178,1322,280,1323,1326],{},[187,1324,1325],{},"url"," of a redirect-mode session. It redirects the user to the provider's consent page, after showing a provider chooser when the session offers more than one provider. For a session created with a test key, it redirects to a Pyas sandbox page instead. This is a page for browsers, not an API endpoint.",[178,1328,1329,1331,1332,1334],{},[192,1330,228],{}," The ",[187,1333,1325],{}," of a redirect-mode session, opened in a browser.",[238,1336],{"operation":106},[241,1338,1340],{"id":1339},"query-parameters","Query parameters",[246,1342,1343,1350,1362],{},[249,1344,1345],{"name":110,"type":85,":required":262},[178,1346,1347,1348,223],{},"The session's token, included in its ",[187,1349,1325],{},[249,1351,1352],{"name":116,"type":85},[178,1353,1354,1355,271,1357,803,1359,1361],{},"The provider to use: ",[187,1356,132],{},[187,1358,134],{},[187,1360,135],{},". Sending it skips the provider chooser.",[249,1363,1364],{"name":119,"type":85},[178,1365,1366,1367,271,1370,271,1373,271,1376,271,1379,271,1382,271,1385,271,1388,803,1391,1394],{},"The language of the pages: ",[187,1368,1369],{},"en",[187,1371,1372],{},"nb",[187,1374,1375],{},"sv",[187,1377,1378],{},"da",[187,1380,1381],{},"de",[187,1383,1384],{},"fr",[187,1386,1387],{},"es",[187,1389,1390],{},"nl",[187,1392,1393],{},"pt-BR",". If you leave it out, the browser's language is used, then English.",[241,1396,327],{"id":1397},"errors-3",[329,1399,1400],{},[332,1401,1402,431],{},[335,1403,1404],{"href":427},[187,1405,430],{},[208,1407,1408],{":sticky":262},[435,1409,1410],{"label":107,"title":437,"tag":64},[439,1411,1413],{"className":441,"code":1412,"filename":443,"language":444,"meta":87,"style":87},"curl 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fgo?token=pcs_your-session-token' \\\n  -H \"x-api-key: $PYAS_API_KEY\"\n",[187,1414,1415,1424],{"__ignoreMap":87},[448,1416,1417,1419,1422],{"class":450},[448,1418,454],{"style":453},[448,1420,1421],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fgo?token=pcs_your-session-token'",[448,1423,469],{"style":468},[448,1425,1426,1428],{"class":450},[448,1427,474],{"style":457},[448,1429,477],{"style":464},[197,1431],{},[200,1433,1434],{"id":66,"label":123,"tag":54},[178,1435,67],{},[205,1437,1438,1490],{},[208,1439,1440,1443,1450,1452,1455,1461,1464],{},[178,1441,1442],{},"Returns the details that the connect widget displays before the user signs in. These include your app's name and icon from the dashboard, the providers the session offers and, for a reconnect, the account to reconnect. Call it from your page with the session's token, from one of the app's allowed origins. This request has no side effects.",[178,1444,1445,1447,1448,223],{},[192,1446,228],{}," Call this from your page with a session's token, before the user signs in. Create the session on your server with ",[187,1449,782],{},[238,1451],{"operation":122},[241,1453,257],{"id":1454},"body-3",[246,1456,1457],{},[249,1458,1459],{"name":110,"type":85,":required":262},[178,1460,794],{},[241,1462,327],{"id":1463},"errors-4",[329,1465,1466,1472,1478,1484],{},[332,1467,1468,341],{},[335,1469,1470],{"href":337},[187,1471,340],{},[332,1473,1474,826],{},[335,1475,1476],{"href":822},[187,1477,825],{},[332,1479,1480,835],{},[335,1481,1482],{"href":831},[187,1483,834],{},[332,1485,1486,431],{},[335,1487,1488],{"href":427},[187,1489,430],{},[208,1491,1492,1543],{":sticky":262},[435,1493,1494],{"label":123,"title":437,"tag":54},[439,1495,1497],{"className":441,"code":1496,"filename":443,"language":444,"meta":87,"style":87},"curl -X POST 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Finfo' \\\n  -H \"x-api-key: $PYAS_API_KEY\" \\\n  -H \"content-type: application\u002Fjson\" \\\n  -d '{\n  \"token\": \"pcs_your-session-token\"\n}'\n",[187,1498,1499,1512,1520,1528,1534,1539],{"__ignoreMap":87},[448,1500,1501,1503,1505,1507,1510],{"class":450},[448,1502,454],{"style":453},[448,1504,458],{"style":457},[448,1506,461],{"style":457},[448,1508,1509],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Finfo'",[448,1511,469],{"style":468},[448,1513,1514,1516,1518],{"class":450},[448,1515,474],{"style":457},[448,1517,477],{"style":464},[448,1519,469],{"style":468},[448,1521,1522,1524,1526],{"class":450},[448,1523,474],{"style":457},[448,1525,486],{"style":464},[448,1527,469],{"style":468},[448,1529,1530,1532],{"class":450},[448,1531,493],{"style":457},[448,1533,496],{"style":464},[448,1535,1536],{"class":450},[448,1537,1538],{"style":464},"  \"token\": \"pcs_your-session-token\"",[448,1540,1541],{"class":450},[448,1542,516],{"style":464},[435,1544,1545],{"label":603,"title":604},[439,1546,1548],{"className":607,"code":1547,"language":609,"meta":87,"style":87},"{\n  \"success\": true,\n  \"data\": {\n    \"app\": {\n      \"name\": \"Acme Scheduler\",\n      \"iconUrl\": null\n    },\n    \"providers\": [\n      \"google\",\n      \"microsoft\"\n    ],\n    \"reconnect\": null,\n    \"loginHint\": null,\n    \"expiresAt\": \"2026-11-14T20:10:32.621Z\"\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n",[187,1549,1550,1554,1564,1572,1581,1593,1602,1609,1619,1626,1631,1638,1649,1660,1668,1674,1684,1694,1702],{"__ignoreMap":87},[448,1551,1552],{"class":450},[448,1553,616],{"style":468},[448,1555,1556,1558,1560,1562],{"class":450},[448,1557,621],{"style":529},[448,1559,566],{"style":572},[448,1561,626],{"style":533},[448,1563,573],{"style":572},[448,1565,1566,1568,1570],{"class":450},[448,1567,633],{"style":529},[448,1569,566],{"style":572},[448,1571,638],{"style":468},[448,1573,1574,1577,1579],{"class":450},[448,1575,1576],{"style":529},"    \"app\"",[448,1578,566],{"style":572},[448,1580,638],{"style":468},[448,1582,1583,1586,1588,1591],{"class":450},[448,1584,1585],{"style":529},"      \"name\"",[448,1587,566],{"style":572},[448,1589,1590],{"style":464}," \"Acme Scheduler\"",[448,1592,573],{"style":572},[448,1594,1595,1598,1600],{"class":450},[448,1596,1597],{"style":529},"      \"iconUrl\"",[448,1599,566],{"style":572},[448,1601,717],{"style":533},[448,1603,1604,1607],{"class":450},[448,1605,1606],{"style":468},"    }",[448,1608,573],{"style":572},[448,1610,1611,1614,1616],{"class":450},[448,1612,1613],{"style":529},"    \"providers\"",[448,1615,566],{"style":572},[448,1617,1618],{"style":468}," [",[448,1620,1621,1624],{"class":450},[448,1622,1623],{"style":464},"      \"google\"",[448,1625,573],{"style":572},[448,1627,1628],{"class":450},[448,1629,1630],{"style":464},"      \"microsoft\"",[448,1632,1633,1636],{"class":450},[448,1634,1635],{"style":468},"    ]",[448,1637,573],{"style":572},[448,1639,1640,1643,1645,1647],{"class":450},[448,1641,1642],{"style":529},"    \"reconnect\"",[448,1644,566],{"style":572},[448,1646,717],{"style":533},[448,1648,573],{"style":572},[448,1650,1651,1654,1656,1658],{"class":450},[448,1652,1653],{"style":529},"    \"loginHint\"",[448,1655,566],{"style":572},[448,1657,717],{"style":533},[448,1659,573],{"style":572},[448,1661,1662,1664,1666],{"class":450},[448,1663,961],{"style":529},[448,1665,566],{"style":572},[448,1667,966],{"style":464},[448,1669,1670,1672],{"class":450},[448,1671,722],{"style":468},[448,1673,573],{"style":572},[448,1675,1676,1678,1680,1682],{"class":450},[448,1677,563],{"style":529},[448,1679,566],{"style":572},[448,1681,717],{"style":533},[448,1683,573],{"style":572},[448,1685,1686,1688,1690,1692],{"class":450},[448,1687,739],{"style":529},[448,1689,566],{"style":572},[448,1691,744],{"style":464},[448,1693,573],{"style":572},[448,1695,1696,1698,1700],{"class":450},[448,1697,751],{"style":529},[448,1699,566],{"style":572},[448,1701,756],{"style":468},[448,1703,1704],{"class":450},[448,1705,761],{"style":468},[197,1707],{},[200,1709,1710],{"id":69,"label":129,"tag":64},[178,1711,70],{},[205,1713,1714,1851],{},[208,1715,1716,1735,1746,1748,1751,1789,1792],{},[178,1717,1718,1719,1722,1723,1725,1726,1728,1729,1731,1732,223],{},"Returns the provider's sign-in URL. This is the first step of connecting an account from your server without PyasConnect, and it replaces v1's ",[187,1720,1721],{},"GET \u002F{provider}\u002Foauth",". Send the user to ",[187,1724,1325],{},". With Pyas Auth, the user returns to the Redirect URL you set for this provider under Provider setup, with ",[187,1727,187],{}," and your ",[187,1730,137],{},". With Native Auth, the user returns to your own callback URL. Then send the code to ",[187,1733,1734],{},"POST \u002Fv2\u002Fconnect\u002Faccounts",[178,1736,1737,1739,1740,1742,1743,223],{},[192,1738,228],{}," Connecting signs a real person in to Google, Outlook or Zoom, so it requires a live key. To test connecting in the sandbox, use PyasConnect with a session from ",[187,1741,782],{},", or create virtual accounts with ",[187,1744,1745],{},"POST \u002Fv2\u002Faccounts",[238,1747],{"operation":128},[241,1749,1340],{"id":1750},"query-parameters-1",[246,1752,1753,1769,1774,1779,1784],{},[249,1754,1755],{"name":116,"type":85,":required":262},[178,1756,1757,271,1759,803,1761,268,1763,271,1765,271,1767,223],{},[187,1758,132],{},[187,1760,134],{},[187,1762,135],{},[187,1764,132],{},[187,1766,134],{},[187,1768,135],{},[249,1770,1771],{"name":137,"type":85},[178,1772,1773],{},"Your own value, which is returned to you with the code. For example, use it to identify which of your users is signing in.",[249,1775,1776],{"name":141,"type":85},[178,1777,1778],{},"The email address to suggest when the user signs in.",[249,1780,1781],{"name":145,"type":85},[178,1782,1783],{},"Additional permissions to request. Accepts a comma-separated list of any of these values: manageCalendars, sharing, meetingSettings, attachmentUploads, rooms.",[249,1785,1786],{"name":148,"type":85},[178,1787,1788],{},"The callback URL to return the user to, instead of the one under Provider setup. Works only with Native Auth, and your OAuth app must list this URL as a redirect URI.",[241,1790,327],{"id":1791},"errors-5",[329,1793,1794,1803,1809,1815,1821,1827,1833,1839,1845],{},[332,1795,1796,1802],{},[335,1797,1799],{"href":1798},"\u002Ferrors\u002FVALIDATION_INVALID_QUERY",[187,1800,1801],{},"VALIDATION_INVALID_QUERY"," (400): A query parameter is not valid.",[332,1804,1805,350],{},[335,1806,1807],{"href":346},[187,1808,349],{},[332,1810,1811,359],{},[335,1812,1813],{"href":355},[187,1814,358],{},[332,1816,1817,377],{},[335,1818,1819],{"href":373},[187,1820,376],{},[332,1822,1823,386],{},[335,1824,1825],{"href":382},[187,1826,385],{},[332,1828,1829,395],{},[335,1830,1831],{"href":391},[187,1832,394],{},[332,1834,1835,413],{},[335,1836,1837],{"href":409},[187,1838,412],{},[332,1840,1841,422],{},[335,1842,1843],{"href":418},[187,1844,421],{},[332,1846,1847,431],{},[335,1848,1849],{"href":427},[187,1850,430],{},[208,1852,1853,1936],{":sticky":262},[435,1854,1855,1875],{"label":129,"title":437,"tag":64},[439,1856,1858],{"className":441,"code":1857,"filename":443,"language":444,"meta":87,"style":87},"curl 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Foauth?provider=google&state=user_123&loginHint=person%40example.com' \\\n  -H \"x-api-key: $PYAS_API_KEY\"\n",[187,1859,1860,1869],{"__ignoreMap":87},[448,1861,1862,1864,1867],{"class":450},[448,1863,454],{"style":453},[448,1865,1866],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Foauth?provider=google&state=user_123&loginHint=person%40example.com'",[448,1868,469],{"style":468},[448,1870,1871,1873],{"class":450},[448,1872,474],{"style":457},[448,1874,477],{"style":464},[439,1876,1878],{"className":519,"code":1877,"filename":521,"language":522,"meta":87,"style":87},"const result = await pyas.connect.oauth({\n  \"provider\": \"google\",\n  \"state\": \"user_123\",\n  \"loginHint\": \"person@example.com\"\n})\n",[187,1879,1880,1901,1911,1922,1932],{"__ignoreMap":87},[448,1881,1882,1884,1886,1888,1890,1892,1894,1896,1899],{"class":450},[448,1883,530],{"style":529},[448,1885,534],{"style":533},[448,1887,537],{"style":529},[448,1889,540],{"style":529},[448,1891,543],{"style":533},[448,1893,223],{"style":453},[448,1895,173],{"style":533},[448,1897,1898],{"style":453},".oauth",[448,1900,558],{"style":468},[448,1902,1903,1905,1907,1909],{"class":450},[448,1904,563],{"style":464},[448,1906,566],{"style":529},[448,1908,569],{"style":464},[448,1910,573],{"style":572},[448,1912,1913,1916,1918,1920],{"class":450},[448,1914,1915],{"style":464},"  \"state\"",[448,1917,566],{"style":529},[448,1919,595],{"style":464},[448,1921,573],{"style":572},[448,1923,1924,1927,1929],{"class":450},[448,1925,1926],{"style":464},"  \"loginHint\"",[448,1928,566],{"style":529},[448,1930,1931],{"style":464}," \"person@example.com\"",[448,1933,1934],{"class":450},[448,1935,600],{"style":468},[435,1937,1938],{"label":603,"title":604},[439,1939,1941],{"className":607,"code":1940,"language":609,"meta":87,"style":87},"{\n  \"success\": true,\n  \"data\": {\n    \"provider\": \"google\",\n    \"url\": \"https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=1234567890-pyas.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fapi.pyas.io%2Foauth%2Fgoogle%2Fcallback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendarlist.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.settings.readonly&access_type=offline&prompt=consent&include_granted_scopes=true&state=app_id%3D5c1e9a47-2d3b-4f86-a0e9-7b4c2d18f365_rest%3Duser_123&login_hint=person%40example.com\"\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n",[187,1942,1943,1947,1957,1965,1975,1984,1990,2000,2010,2018],{"__ignoreMap":87},[448,1944,1945],{"class":450},[448,1946,616],{"style":468},[448,1948,1949,1951,1953,1955],{"class":450},[448,1950,621],{"style":529},[448,1952,566],{"style":572},[448,1954,626],{"style":533},[448,1956,573],{"style":572},[448,1958,1959,1961,1963],{"class":450},[448,1960,633],{"style":529},[448,1962,566],{"style":572},[448,1964,638],{"style":468},[448,1966,1967,1969,1971,1973],{"class":450},[448,1968,655],{"style":529},[448,1970,566],{"style":572},[448,1972,569],{"style":464},[448,1974,573],{"style":572},[448,1976,1977,1979,1981],{"class":450},[448,1978,949],{"style":529},[448,1980,566],{"style":572},[448,1982,1983],{"style":464}," \"https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth?client_id=1234567890-pyas.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fapi.pyas.io%2Foauth%2Fgoogle%2Fcallback&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.events.freebusy+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendarlist.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.calendars.readonly+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar.settings.readonly&access_type=offline&prompt=consent&include_granted_scopes=true&state=app_id%3D5c1e9a47-2d3b-4f86-a0e9-7b4c2d18f365_rest%3Duser_123&login_hint=person%40example.com\"",[448,1985,1986,1988],{"class":450},[448,1987,722],{"style":468},[448,1989,573],{"style":572},[448,1991,1992,1994,1996,1998],{"class":450},[448,1993,563],{"style":529},[448,1995,566],{"style":572},[448,1997,717],{"style":533},[448,1999,573],{"style":572},[448,2001,2002,2004,2006,2008],{"class":450},[448,2003,739],{"style":529},[448,2005,566],{"style":572},[448,2007,744],{"style":464},[448,2009,573],{"style":572},[448,2011,2012,2014,2016],{"class":450},[448,2013,751],{"style":529},[448,2015,566],{"style":572},[448,2017,756],{"style":468},[448,2019,2020],{"class":450},[448,2021,761],{"style":468},[197,2023],{},[200,2025,2026],{"id":72,"label":152,"tag":54},[178,2027,73],{},[205,2029,2030,2245],{},[208,2031,2032,2045,2064,2066,2069,2075,2078,2177,2180],{},[178,2033,2034,2035,2037,2038,2041,2042,2044],{},"Creates a session for connecting a calendar account. This is the first step of connecting with PyasConnect. Call it from your server. With a live key, the user signs in to Google, Microsoft or Zoom and a real account is connected. With a test key, the user sees a Pyas sandbox page instead of the provider's sign-in, and a simulated account is connected in your sandbox, so you can build and test the whole flow before going live. In popup mode, pass the ",[187,2036,110],{}," to your page. In redirect mode, set a ",[187,2039,2040],{},"returnUrl"," and send the user to ",[187,2043,1325],{},". A session is valid for 10 minutes and connects one account.",[178,2046,2047,2049,2050,2052,2053,2055,2056,2058,2059,1020,2062,223],{},[192,2048,228],{}," Pass the ",[187,2051,110],{}," to PyasConnect on your page. With a test key, PyasConnect opens a Pyas sandbox page instead of Google or Microsoft, and connects a simulated account in your sandbox. For redirect mode, add a ",[187,2054,2040],{}," on one of your app's allowed origins. To reconnect a broken account, send its ",[187,2057,222],{}," instead of ",[187,2060,2061],{},"providers",[187,2063,286],{},[238,2065],{"operation":151},[241,2067,244],{"id":2068},"headers-1",[246,2070,2071],{},[249,2072,2073],{"name":83,"type":85},[178,2074,253],{},[241,2076,257],{"id":2077},"body-4",[246,2079,2080,2097,2115,2126,2163,2168,2172],{},[249,2081,2082],{"name":222,"type":85},[178,2083,280,2084,2086,2087,2089,2090,271,2092,1020,2094,2096],{},[187,2085,222],{}," of an existing account to reconnect. PyasConnect opens directly to the account's provider, and only the same person (with the same email address) can sign in. The account keeps its ",[187,2088,222],{},". Leave out ",[187,2091,2061],{},[187,2093,286],{},[187,2095,141],{},", because they are taken from the account.",[249,2098,2099],{"name":2061,"type":292},[178,2100,2101,2102,1020,2104,2106,2107,268,2109,271,2111,271,2113,223],{},"The providers to offer the user. Defaults to ",[187,2103,132],{},[187,2105,134],{},". Zoom is offered only when you include ",[187,2108,135],{},[187,2110,132],{},[187,2112,134],{},[187,2114,135],{},[249,2116,2119],{"name":2117,"type":2118},"products","array of 'calendar'",[178,2120,2121,2122,2125],{},"What the connection is used for. Currently only ",[187,2123,2124],{},"calendar"," is supported.",[249,2127,2128],{"name":145,"type":292},[178,2129,2130,2131,271,2133,271,2135,271,2137,803,2139,2141,2142,271,2144,271,2146,271,2148,1020,2150,2152,2153,271,2155,271,2157,271,2159,271,2161,223],{},"Additional permissions to request: ",[187,2132,300],{},[187,2134,303],{},[187,2136,306],{},[187,2138,309],{},[187,2140,312],{},". With Pyas Auth, Google ",[187,2143,300],{},[187,2145,303],{},[187,2147,306],{},[187,2149,309],{},[187,2151,312],{}," need Native Auth for now. One of ",[187,2154,300],{},[187,2156,303],{},[187,2158,306],{},[187,2160,309],{},[187,2162,312],{},[249,2164,2165],{"name":286,"type":85},[178,2166,2167],{},"Your own identifier for the connected account.",[249,2169,2170],{"name":141,"type":85},[178,2171,1778],{},[249,2173,2174],{"name":2040,"type":85},[178,2175,2176],{},"For redirect mode, the URL to send the user to when the flow ends. Must use HTTPS and be on one of the app's allowed origins.",[241,2178,327],{"id":2179},"errors-6",[329,2181,2182,2188,2194,2200,2206,2212,2221,2227,2233,2239],{},[332,2183,2184,341],{},[335,2185,2186],{"href":337},[187,2187,340],{},[332,2189,2190,350],{},[335,2191,2192],{"href":346},[187,2193,349],{},[332,2195,2196,359],{},[335,2197,2198],{"href":355},[187,2199,358],{},[332,2201,2202,835],{},[335,2203,2204],{"href":831},[187,2205,834],{},[332,2207,2208,386],{},[335,2209,2210],{"href":382},[187,2211,385],{},[332,2213,2214,2220],{},[335,2215,2217],{"href":2216},"\u002Ferrors\u002FCONNECTION_NOT_FOUND",[187,2218,2219],{},"CONNECTION_NOT_FOUND"," (404): No connected account was found for this request.",[332,2222,2223,395],{},[335,2224,2225],{"href":391},[187,2226,394],{},[332,2228,2229,413],{},[335,2230,2231],{"href":409},[187,2232,412],{},[332,2234,2235,422],{},[335,2236,2237],{"href":418},[187,2238,421],{},[332,2240,2241,431],{},[335,2242,2243],{"href":427},[187,2244,430],{},[208,2246,2247,2386],{":sticky":262},[435,2248,2249,2317],{"label":152,"title":437,"tag":54},[439,2250,2252],{"className":441,"code":2251,"filename":443,"language":444,"meta":87,"style":87},"curl -X POST 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fsessions' \\\n  -H \"x-api-key: $PYAS_API_KEY\" \\\n  -H \"content-type: application\u002Fjson\" \\\n  -d '{\n  \"providers\": [\n    \"google\",\n    \"microsoft\"\n  ],\n  \"subjectId\": \"user_123\"\n}'\n",[187,2253,2254,2267,2275,2283,2289,2294,2299,2304,2309,2313],{"__ignoreMap":87},[448,2255,2256,2258,2260,2262,2265],{"class":450},[448,2257,454],{"style":453},[448,2259,458],{"style":457},[448,2261,461],{"style":457},[448,2263,2264],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fsessions'",[448,2266,469],{"style":468},[448,2268,2269,2271,2273],{"class":450},[448,2270,474],{"style":457},[448,2272,477],{"style":464},[448,2274,469],{"style":468},[448,2276,2277,2279,2281],{"class":450},[448,2278,474],{"style":457},[448,2280,486],{"style":464},[448,2282,469],{"style":468},[448,2284,2285,2287],{"class":450},[448,2286,493],{"style":457},[448,2288,496],{"style":464},[448,2290,2291],{"class":450},[448,2292,2293],{"style":464},"  \"providers\": [",[448,2295,2296],{"class":450},[448,2297,2298],{"style":464},"    \"google\",",[448,2300,2301],{"class":450},[448,2302,2303],{"style":464},"    \"microsoft\"",[448,2305,2306],{"class":450},[448,2307,2308],{"style":464},"  ],",[448,2310,2311],{"class":450},[448,2312,511],{"style":464},[448,2314,2315],{"class":450},[448,2316,516],{"style":464},[439,2318,2320],{"className":519,"code":2319,"filename":521,"language":522,"meta":87,"style":87},"const result = await pyas.connect.sessions.create({\n  \"providers\": [\n    \"google\",\n    \"microsoft\"\n  ],\n  \"subjectId\": \"user_123\"\n})\n",[187,2321,2322,2347,2356,2363,2367,2374,2382],{"__ignoreMap":87},[448,2323,2324,2326,2328,2330,2332,2334,2336,2338,2340,2343,2345],{"class":450},[448,2325,530],{"style":529},[448,2327,534],{"style":533},[448,2329,537],{"style":529},[448,2331,540],{"style":529},[448,2333,543],{"style":533},[448,2335,223],{"style":453},[448,2337,173],{"style":533},[448,2339,223],{"style":453},[448,2341,2342],{"style":533},"sessions",[448,2344,555],{"style":453},[448,2346,558],{"style":468},[448,2348,2349,2352,2354],{"class":450},[448,2350,2351],{"style":464},"  \"providers\"",[448,2353,566],{"style":529},[448,2355,1618],{"style":468},[448,2357,2358,2361],{"class":450},[448,2359,2360],{"style":464},"    \"google\"",[448,2362,573],{"style":572},[448,2364,2365],{"class":450},[448,2366,2303],{"style":464},[448,2368,2369,2372],{"class":450},[448,2370,2371],{"style":468},"  ]",[448,2373,573],{"style":572},[448,2375,2376,2378,2380],{"class":450},[448,2377,590],{"style":464},[448,2379,566],{"style":529},[448,2381,595],{"style":464},[448,2383,2384],{"class":450},[448,2385,600],{"style":468},[435,2387,2389],{"label":2388,"title":604},"201 Created",[439,2390,2392],{"className":607,"code":2391,"language":609,"meta":87,"style":87},"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"cs_99bec7442c4db29a8539d679\",\n    \"status\": \"pending\",\n    \"mode\": \"popup\",\n    \"reconnectAccountId\": null,\n    \"providers\": [\n      \"google\",\n      \"microsoft\"\n    ],\n    \"products\": [\n      \"calendar\"\n    ],\n    \"features\": [],\n    \"subjectId\": \"user_123\",\n    \"returnUrl\": null,\n    \"provider\": null,\n    \"expiresAt\": \"2026-11-14T20:10:32.621Z\",\n    \"account\": null,\n    \"error\": null,\n    \"token\": \"pcs_example\",\n    \"url\": null\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n",[187,2393,2394,2398,2408,2416,2428,2440,2452,2463,2471,2477,2481,2487,2496,2501,2507,2519,2529,2540,2550,2560,2571,2582,2594,2602,2608,2618,2628,2636],{"__ignoreMap":87},[448,2395,2396],{"class":450},[448,2397,616],{"style":468},[448,2399,2400,2402,2404,2406],{"class":450},[448,2401,621],{"style":529},[448,2403,566],{"style":572},[448,2405,626],{"style":533},[448,2407,573],{"style":572},[448,2409,2410,2412,2414],{"class":450},[448,2411,633],{"style":529},[448,2413,566],{"style":572},[448,2415,638],{"style":468},[448,2417,2418,2421,2423,2426],{"class":450},[448,2419,2420],{"style":529},"    \"id\"",[448,2422,566],{"style":572},[448,2424,2425],{"style":464}," \"cs_99bec7442c4db29a8539d679\"",[448,2427,573],{"style":572},[448,2429,2430,2433,2435,2438],{"class":450},[448,2431,2432],{"style":529},"    \"status\"",[448,2434,566],{"style":572},[448,2436,2437],{"style":464}," \"pending\"",[448,2439,573],{"style":572},[448,2441,2442,2445,2447,2450],{"class":450},[448,2443,2444],{"style":529},"    \"mode\"",[448,2446,566],{"style":572},[448,2448,2449],{"style":464}," \"popup\"",[448,2451,573],{"style":572},[448,2453,2454,2457,2459,2461],{"class":450},[448,2455,2456],{"style":529},"    \"reconnectAccountId\"",[448,2458,566],{"style":572},[448,2460,717],{"style":533},[448,2462,573],{"style":572},[448,2464,2465,2467,2469],{"class":450},[448,2466,1613],{"style":529},[448,2468,566],{"style":572},[448,2470,1618],{"style":468},[448,2472,2473,2475],{"class":450},[448,2474,1623],{"style":464},[448,2476,573],{"style":572},[448,2478,2479],{"class":450},[448,2480,1630],{"style":464},[448,2482,2483,2485],{"class":450},[448,2484,1635],{"style":468},[448,2486,573],{"style":572},[448,2488,2489,2492,2494],{"class":450},[448,2490,2491],{"style":529},"    \"products\"",[448,2493,566],{"style":572},[448,2495,1618],{"style":468},[448,2497,2498],{"class":450},[448,2499,2500],{"style":464},"      \"calendar\"",[448,2502,2503,2505],{"class":450},[448,2504,1635],{"style":468},[448,2506,573],{"style":572},[448,2508,2509,2512,2514,2517],{"class":450},[448,2510,2511],{"style":529},"    \"features\"",[448,2513,566],{"style":572},[448,2515,2516],{"style":468}," []",[448,2518,573],{"style":572},[448,2520,2521,2523,2525,2527],{"class":450},[448,2522,690],{"style":529},[448,2524,566],{"style":572},[448,2526,595],{"style":464},[448,2528,573],{"style":572},[448,2530,2531,2534,2536,2538],{"class":450},[448,2532,2533],{"style":529},"    \"returnUrl\"",[448,2535,566],{"style":572},[448,2537,717],{"style":533},[448,2539,573],{"style":572},[448,2541,2542,2544,2546,2548],{"class":450},[448,2543,655],{"style":529},[448,2545,566],{"style":572},[448,2547,717],{"style":533},[448,2549,573],{"style":572},[448,2551,2552,2554,2556,2558],{"class":450},[448,2553,961],{"style":529},[448,2555,566],{"style":572},[448,2557,966],{"style":464},[448,2559,573],{"style":572},[448,2561,2562,2565,2567,2569],{"class":450},[448,2563,2564],{"style":529},"    \"account\"",[448,2566,566],{"style":572},[448,2568,717],{"style":533},[448,2570,573],{"style":572},[448,2572,2573,2576,2578,2580],{"class":450},[448,2574,2575],{"style":529},"    \"error\"",[448,2577,566],{"style":572},[448,2579,717],{"style":533},[448,2581,573],{"style":572},[448,2583,2584,2587,2589,2592],{"class":450},[448,2585,2586],{"style":529},"    \"token\"",[448,2588,566],{"style":572},[448,2590,2591],{"style":464}," \"pcs_example\"",[448,2593,573],{"style":572},[448,2595,2596,2598,2600],{"class":450},[448,2597,949],{"style":529},[448,2599,566],{"style":572},[448,2601,717],{"style":533},[448,2603,2604,2606],{"class":450},[448,2605,722],{"style":468},[448,2607,573],{"style":572},[448,2609,2610,2612,2614,2616],{"class":450},[448,2611,563],{"style":529},[448,2613,566],{"style":572},[448,2615,717],{"style":533},[448,2617,573],{"style":572},[448,2619,2620,2622,2624,2626],{"class":450},[448,2621,739],{"style":529},[448,2623,566],{"style":572},[448,2625,744],{"style":464},[448,2627,573],{"style":572},[448,2629,2630,2632,2634],{"class":450},[448,2631,751],{"style":529},[448,2633,566],{"style":572},[448,2635,756],{"style":468},[448,2637,2638],{"class":450},[448,2639,761],{"style":468},[197,2641],{},[200,2643,2644],{"id":75,"label":160,"tag":64},[178,2645,76],{},[205,2647,2648,2721],{},[208,2649,2650,2653,2661,2663,2667,2671,2674],{},[178,2651,2652],{},"Returns the session's status and the account it connected. In redirect mode, confirm the result with this endpoint rather than relying on the query string.",[178,2654,2655,2657,2658,2660],{},[192,2656,228],{}," Use the ID returned by ",[187,2659,782],{},", with the same kind of key: a session created with a test key is in the sandbox.",[238,2662],{"operation":159},[241,2664,2666],{"id":2665},"path-parameters","Path parameters",[246,2668,2669],{},[249,2670],{"name":163,"type":85,":required":262},[241,2672,327],{"id":2673},"errors-7",[329,2675,2676,2682,2688,2694,2703,2709,2715],{},[332,2677,2678,350],{},[335,2679,2680],{"href":346},[187,2681,349],{},[332,2683,2684,359],{},[335,2685,2686],{"href":355},[187,2687,358],{},[332,2689,2690,386],{},[335,2691,2692],{"href":382},[187,2693,385],{},[332,2695,2696,2702],{},[335,2697,2699],{"href":2698},"\u002Ferrors\u002FRESOURCE_NOT_FOUND",[187,2700,2701],{},"RESOURCE_NOT_FOUND"," (404): The calendar or event was not found.",[332,2704,2705,413],{},[335,2706,2707],{"href":409},[187,2708,412],{},[332,2710,2711,422],{},[335,2712,2713],{"href":418},[187,2714,421],{},[332,2716,2717,431],{},[335,2718,2719],{"href":427},[187,2720,430],{},[208,2722,2723,2789],{":sticky":262},[435,2724,2725,2745],{"label":160,"title":437,"tag":64},[439,2726,2728],{"className":441,"code":2727,"filename":443,"language":444,"meta":87,"style":87},"curl 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fsessions\u002Fcs_0123456789abcdef01234567' \\\n  -H \"x-api-key: $PYAS_API_KEY\"\n",[187,2729,2730,2739],{"__ignoreMap":87},[448,2731,2732,2734,2737],{"class":450},[448,2733,454],{"style":453},[448,2735,2736],{"style":464}," 'https:\u002F\u002Fapi.pyas.io\u002Fv2\u002Fconnect\u002Fsessions\u002Fcs_0123456789abcdef01234567'",[448,2738,469],{"style":468},[448,2740,2741,2743],{"class":450},[448,2742,474],{"style":457},[448,2744,477],{"style":464},[439,2746,2748],{"className":519,"code":2747,"filename":521,"language":522,"meta":87,"style":87},"const result = await pyas.connect.sessions.get({\n  \"id\": \"cs_0123456789abcdef01234567\"\n})\n",[187,2749,2750,2775,2785],{"__ignoreMap":87},[448,2751,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2773],{"class":450},[448,2753,530],{"style":529},[448,2755,534],{"style":533},[448,2757,537],{"style":529},[448,2759,540],{"style":529},[448,2761,543],{"style":533},[448,2763,223],{"style":453},[448,2765,173],{"style":533},[448,2767,223],{"style":453},[448,2769,2342],{"style":533},[448,2771,2772],{"style":453},".get",[448,2774,558],{"style":468},[448,2776,2777,2780,2782],{"class":450},[448,2778,2779],{"style":464},"  \"id\"",[448,2781,566],{"style":529},[448,2783,2784],{"style":464}," \"cs_0123456789abcdef01234567\"",[448,2786,2787],{"class":450},[448,2788,600],{"style":468},[435,2790,2791],{"label":603,"title":604},[439,2792,2794],{"className":607,"code":2793,"language":609,"meta":87,"style":87},"{\n  \"success\": true,\n  \"data\": {\n    \"id\": \"cs_99bec7442c4db29a8539d679\",\n    \"status\": \"pending\",\n    \"mode\": \"popup\",\n    \"reconnectAccountId\": null,\n    \"providers\": [\n      \"google\",\n      \"microsoft\"\n    ],\n    \"products\": [\n      \"calendar\"\n    ],\n    \"features\": [],\n    \"subjectId\": \"user_123\",\n    \"returnUrl\": null,\n    \"provider\": null,\n    \"expiresAt\": \"2026-11-14T20:10:32.621Z\",\n    \"account\": null,\n    \"error\": null\n  },\n  \"provider\": null,\n  \"traceId\": \"trc_5f2a9c1e7b3d4a6f8e0c2b1d\",\n  \"meta\": {}\n}\n",[187,2795,2796,2800,2810,2818,2828,2838,2848,2858,2866,2872,2876,2882,2890,2894,2900,2910,2920,2930,2940,2950,2960,2968,2974,2984,2994,3002],{"__ignoreMap":87},[448,2797,2798],{"class":450},[448,2799,616],{"style":468},[448,2801,2802,2804,2806,2808],{"class":450},[448,2803,621],{"style":529},[448,2805,566],{"style":572},[448,2807,626],{"style":533},[448,2809,573],{"style":572},[448,2811,2812,2814,2816],{"class":450},[448,2813,633],{"style":529},[448,2815,566],{"style":572},[448,2817,638],{"style":468},[448,2819,2820,2822,2824,2826],{"class":450},[448,2821,2420],{"style":529},[448,2823,566],{"style":572},[448,2825,2425],{"style":464},[448,2827,573],{"style":572},[448,2829,2830,2832,2834,2836],{"class":450},[448,2831,2432],{"style":529},[448,2833,566],{"style":572},[448,2835,2437],{"style":464},[448,2837,573],{"style":572},[448,2839,2840,2842,2844,2846],{"class":450},[448,2841,2444],{"style":529},[448,2843,566],{"style":572},[448,2845,2449],{"style":464},[448,2847,573],{"style":572},[448,2849,2850,2852,2854,2856],{"class":450},[448,2851,2456],{"style":529},[448,2853,566],{"style":572},[448,2855,717],{"style":533},[448,2857,573],{"style":572},[448,2859,2860,2862,2864],{"class":450},[448,2861,1613],{"style":529},[448,2863,566],{"style":572},[448,2865,1618],{"style":468},[448,2867,2868,2870],{"class":450},[448,2869,1623],{"style":464},[448,2871,573],{"style":572},[448,2873,2874],{"class":450},[448,2875,1630],{"style":464},[448,2877,2878,2880],{"class":450},[448,2879,1635],{"style":468},[448,2881,573],{"style":572},[448,2883,2884,2886,2888],{"class":450},[448,2885,2491],{"style":529},[448,2887,566],{"style":572},[448,2889,1618],{"style":468},[448,2891,2892],{"class":450},[448,2893,2500],{"style":464},[448,2895,2896,2898],{"class":450},[448,2897,1635],{"style":468},[448,2899,573],{"style":572},[448,2901,2902,2904,2906,2908],{"class":450},[448,2903,2511],{"style":529},[448,2905,566],{"style":572},[448,2907,2516],{"style":468},[448,2909,573],{"style":572},[448,2911,2912,2914,2916,2918],{"class":450},[448,2913,690],{"style":529},[448,2915,566],{"style":572},[448,2917,595],{"style":464},[448,2919,573],{"style":572},[448,2921,2922,2924,2926,2928],{"class":450},[448,2923,2533],{"style":529},[448,2925,566],{"style":572},[448,2927,717],{"style":533},[448,2929,573],{"style":572},[448,2931,2932,2934,2936,2938],{"class":450},[448,2933,655],{"style":529},[448,2935,566],{"style":572},[448,2937,717],{"style":533},[448,2939,573],{"style":572},[448,2941,2942,2944,2946,2948],{"class":450},[448,2943,961],{"style":529},[448,2945,566],{"style":572},[448,2947,966],{"style":464},[448,2949,573],{"style":572},[448,2951,2952,2954,2956,2958],{"class":450},[448,2953,2564],{"style":529},[448,2955,566],{"style":572},[448,2957,717],{"style":533},[448,2959,573],{"style":572},[448,2961,2962,2964,2966],{"class":450},[448,2963,2575],{"style":529},[448,2965,566],{"style":572},[448,2967,717],{"style":533},[448,2969,2970,2972],{"class":450},[448,2971,722],{"style":468},[448,2973,573],{"style":572},[448,2975,2976,2978,2980,2982],{"class":450},[448,2977,563],{"style":529},[448,2979,566],{"style":572},[448,2981,717],{"style":533},[448,2983,573],{"style":572},[448,2985,2986,2988,2990,2992],{"class":450},[448,2987,739],{"style":529},[448,2989,566],{"style":572},[448,2991,744],{"style":464},[448,2993,573],{"style":572},[448,2995,2996,2998,3000],{"class":450},[448,2997,751],{"style":529},[448,2999,566],{"style":572},[448,3001,756],{"style":468},[448,3003,3004],{"class":450},[448,3005,761],{"style":468},[3007,3008,87],"style",{},1794697266598]