[{"data":1,"prerenderedAt":976},["ShallowReactive",2],{"navigation_docs":3,"-guides-errors":199,"-guides-errors-surround":971},[4,23,65,87,133,159,177],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":22},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",false,{"title":24,"icon":25,"path":26,"stem":27,"children":28,"page":22},"Guides","i-lucide-compass","\u002Fguides","2.guides",[29,33,37,41,45,49,53,57,61],{"title":30,"path":31,"stem":32},"Authenticate","\u002Fguides\u002Fauthentication","2.guides\u002F1.authentication",{"title":34,"path":35,"stem":36},"Work with several forges","\u002Fguides\u002Fmultiple-forges","2.guides\u002F2.multiple-forges",{"title":38,"path":39,"stem":40},"Configure from the environment","\u002Fguides\u002Fenvironment","2.guides\u002F3.environment",{"title":42,"path":43,"stem":44},"Receive webhooks","\u002Fguides\u002Fwebhooks","2.guides\u002F4.webhooks",{"title":46,"path":47,"stem":48},"Check what a forge supports","\u002Fguides\u002Fcapabilities","2.guides\u002F5.capabilities",{"title":50,"path":51,"stem":52},"Handle errors and rate limits","\u002Fguides\u002Ferrors","2.guides\u002F6.errors",{"title":54,"path":55,"stem":56},"Page through results","\u002Fguides\u002Fpagination","2.guides\u002F7.pagination",{"title":58,"path":59,"stem":60},"Browser bundles","\u002Fguides\u002Fbundling","2.guides\u002F8.bundling",{"title":62,"path":63,"stem":64},"Test your code","\u002Fguides\u002Ftesting","2.guides\u002F9.testing",{"title":66,"icon":67,"path":68,"stem":69,"children":70,"page":22},"Concepts","i-lucide-lightbulb","\u002Fconcepts","3.concepts",[71,75,79,83],{"title":72,"path":73,"stem":74},"Data model","\u002Fconcepts\u002Fdata-model","3.concepts\u002F1.data-model",{"title":76,"path":77,"stem":78},"Capabilities","\u002Fconcepts\u002Fcapabilities","3.concepts\u002F2.capabilities",{"title":80,"path":81,"stem":82},"Providers and factories","\u002Fconcepts\u002Fproviders","3.concepts\u002F3.providers",{"title":84,"path":85,"stem":86},"Events","\u002Fconcepts\u002Fevents","3.concepts\u002F4.events",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":22},"Providers","i-lucide-server","\u002Fproviders","4.providers",[93,97,101,105,109,113,117,121,125,129],{"title":94,"path":95,"stem":96},"Azure DevOps","\u002Fproviders\u002Fazure-devops","4.providers\u002Fazure-devops",{"title":98,"path":99,"stem":100},"Bitbucket Cloud","\u002Fproviders\u002Fbitbucket","4.providers\u002Fbitbucket",{"title":102,"path":103,"stem":104},"Cursor Origin","\u002Fproviders\u002Fcursor-origin","4.providers\u002Fcursor-origin",{"title":106,"path":107,"stem":108},"Forgejo and Codeberg","\u002Fproviders\u002Fforgejo","4.providers\u002Fforgejo",{"title":110,"path":111,"stem":112},"Gitea","\u002Fproviders\u002Fgitea","4.providers\u002Fgitea",{"title":114,"path":115,"stem":116},"Gitee","\u002Fproviders\u002Fgitee","4.providers\u002Fgitee",{"title":118,"path":119,"stem":120},"GitHub","\u002Fproviders\u002Fgithub","4.providers\u002Fgithub",{"title":122,"path":123,"stem":124},"GitLab","\u002Fproviders\u002Fgitlab","4.providers\u002Fgitlab",{"title":126,"path":127,"stem":128},"pushin.eu","\u002Fproviders\u002Fpushin","4.providers\u002Fpushin",{"title":130,"path":131,"stem":132},"Tangled","\u002Fproviders\u002Ftangled","4.providers\u002Ftangled",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":22},"Reference","i-lucide-book-marked","\u002Freference","5.reference",[139,143,147,151,155],{"title":140,"path":141,"stem":142},"Provider API","\u002Freference\u002Fprovider-api","5.reference\u002F1.provider-api",{"title":144,"path":145,"stem":146},"Capability matrix","\u002Freference\u002Fcapability-matrix","5.reference\u002F2.capability-matrix",{"title":148,"path":149,"stem":150},"Errors","\u002Freference\u002Ferrors","5.reference\u002F3.errors",{"title":152,"path":153,"stem":154},"Environment variables","\u002Freference\u002Fenvironment-variables","5.reference\u002F4.environment-variables",{"title":156,"path":157,"stem":158},"JSON Schemas","\u002Freference\u002Fjson-schemas","5.reference\u002F5.json-schemas",{"title":160,"icon":161,"path":162,"stem":163,"children":164,"page":22},"Examples","i-lucide-boxes","\u002Fexamples","6.examples",[165,169,173],{"title":166,"path":167,"stem":168},"Inbox CLI","\u002Fexamples\u002Finbox-cli","6.examples\u002F1.inbox-cli",{"title":170,"path":171,"stem":172},"Label bot","\u002Fexamples\u002Flabel-bot","6.examples\u002F2.label-bot",{"title":174,"path":175,"stem":176},"Release digest","\u002Fexamples\u002Frelease-digest","6.examples\u002F3.release-digest",{"title":178,"icon":179,"path":180,"stem":181,"children":182,"page":22},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","7.contributing",[183,187,191,195],{"title":184,"path":185,"stem":186},"Contribution guide","\u002Fcontributing\u002Fguidelines","7.contributing\u002F1.guidelines",{"title":188,"path":189,"stem":190},"Write a provider","\u002Fcontributing\u002Fwrite-a-provider","7.contributing\u002F2.write-a-provider",{"title":192,"path":193,"stem":194},"Record fixtures","\u002Fcontributing\u002Frecord-fixtures","7.contributing\u002F3.record-fixtures",{"title":196,"path":197,"stem":198},"Contributors","\u002Fcontributing\u002Fcontributors","7.contributing\u002F4.contributors",{"id":200,"title":50,"body":201,"description":964,"extension":965,"links":966,"meta":967,"navigation":275,"path":51,"seo":969,"stem":52,"__hash__":970},"docs\u002F2.guides\u002F6.errors.md",{"type":202,"value":203,"toc":958},"minimark",[204,217,539,572,577,598,721,739,746,750,762,766,779,785,936,940,954],[205,206,207,208,212,213,216],"p",{},"Failed requests reject with a typed error. All of them extend ",[209,210,211],"code",{},"ForgeError",", so you can catch the base class and narrow with ",[209,214,215],{},"instanceof",":",[218,219,224],"pre",{"className":220,"code":221,"language":222,"meta":223,"style":223},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { ForgeError, RateLimitedError, TokenRevokedError } from 'forges'\n\ntry {\n  await gh.threads.close(thread.ref)\n}\ncatch (error) {\n  if (error instanceof RateLimitedError) {\n    console.warn(`Rate limited until ${error.resetAt?.toISOString()}`)\n  }\n  else if (error instanceof TokenRevokedError) {\n    await askForNewToken()\n  }\n  else if (error instanceof ForgeError) {\n    console.error(error.forge, error.url, error.message)\n  }\n  else {\n    throw error\n  }\n}\n","ts","",[209,225,226,270,277,286,322,328,340,363,406,412,433,445,450,469,508,513,520,529,534],{"__ignoreMap":223},[227,228,231,235,239,243,246,249,251,254,257,260,263,267],"span",{"class":229,"line":230},"line",1,[227,232,234],{"class":233},"s7zQu","import",[227,236,238],{"class":237},"sMK4o"," {",[227,240,242],{"class":241},"sTEyZ"," ForgeError",[227,244,245],{"class":237},",",[227,247,248],{"class":241}," RateLimitedError",[227,250,245],{"class":237},[227,252,253],{"class":241}," TokenRevokedError",[227,255,256],{"class":237}," }",[227,258,259],{"class":233}," from",[227,261,262],{"class":237}," '",[227,264,266],{"class":265},"sfazB","forges",[227,268,269],{"class":237},"'\n",[227,271,273],{"class":229,"line":272},2,[227,274,276],{"emptyLinePlaceholder":275},true,"\n",[227,278,280,283],{"class":229,"line":279},3,[227,281,282],{"class":233},"try",[227,284,285],{"class":237}," {\n",[227,287,289,292,295,298,301,303,307,311,314,316,319],{"class":229,"line":288},4,[227,290,291],{"class":233},"  await",[227,293,294],{"class":241}," gh",[227,296,297],{"class":237},".",[227,299,300],{"class":241},"threads",[227,302,297],{"class":237},[227,304,306],{"class":305},"s2Zo4","close",[227,308,310],{"class":309},"swJcz","(",[227,312,313],{"class":241},"thread",[227,315,297],{"class":237},[227,317,318],{"class":241},"ref",[227,320,321],{"class":309},")\n",[227,323,325],{"class":229,"line":324},5,[227,326,327],{"class":237},"}\n",[227,329,331,334,337],{"class":229,"line":330},6,[227,332,333],{"class":233},"catch",[227,335,336],{"class":241}," (error) ",[227,338,339],{"class":237},"{\n",[227,341,343,346,349,352,355,358,361],{"class":229,"line":342},7,[227,344,345],{"class":233},"  if",[227,347,348],{"class":309}," (",[227,350,351],{"class":241},"error",[227,353,354],{"class":237}," instanceof",[227,356,248],{"class":357},"sBMFI",[227,359,360],{"class":309},") ",[227,362,339],{"class":237},[227,364,366,369,371,374,376,379,382,385,387,389,392,395,398,401,404],{"class":229,"line":365},8,[227,367,368],{"class":241},"    console",[227,370,297],{"class":237},[227,372,373],{"class":305},"warn",[227,375,310],{"class":309},[227,377,378],{"class":237},"`",[227,380,381],{"class":265},"Rate limited until ",[227,383,384],{"class":237},"${",[227,386,351],{"class":241},[227,388,297],{"class":237},[227,390,391],{"class":241},"resetAt",[227,393,394],{"class":237},"?.",[227,396,397],{"class":305},"toISOString",[227,399,400],{"class":241},"()",[227,402,403],{"class":237},"}`",[227,405,321],{"class":309},[227,407,409],{"class":229,"line":408},9,[227,410,411],{"class":237},"  }\n",[227,413,415,418,421,423,425,427,429,431],{"class":229,"line":414},10,[227,416,417],{"class":233},"  else",[227,419,420],{"class":233}," if",[227,422,348],{"class":309},[227,424,351],{"class":241},[227,426,354],{"class":237},[227,428,253],{"class":357},[227,430,360],{"class":309},[227,432,339],{"class":237},[227,434,436,439,442],{"class":229,"line":435},11,[227,437,438],{"class":233},"    await",[227,440,441],{"class":305}," askForNewToken",[227,443,444],{"class":309},"()\n",[227,446,448],{"class":229,"line":447},12,[227,449,411],{"class":237},[227,451,453,455,457,459,461,463,465,467],{"class":229,"line":452},13,[227,454,417],{"class":233},[227,456,420],{"class":233},[227,458,348],{"class":309},[227,460,351],{"class":241},[227,462,354],{"class":237},[227,464,242],{"class":357},[227,466,360],{"class":309},[227,468,339],{"class":237},[227,470,472,474,476,478,480,482,484,487,489,492,494,497,499,501,503,506],{"class":229,"line":471},14,[227,473,368],{"class":241},[227,475,297],{"class":237},[227,477,351],{"class":305},[227,479,310],{"class":309},[227,481,351],{"class":241},[227,483,297],{"class":237},[227,485,486],{"class":241},"forge",[227,488,245],{"class":237},[227,490,491],{"class":241}," error",[227,493,297],{"class":237},[227,495,496],{"class":241},"url",[227,498,245],{"class":237},[227,500,491],{"class":241},[227,502,297],{"class":237},[227,504,505],{"class":241},"message",[227,507,321],{"class":309},[227,509,511],{"class":229,"line":510},15,[227,512,411],{"class":237},[227,514,516,518],{"class":229,"line":515},16,[227,517,417],{"class":233},[227,519,285],{"class":237},[227,521,523,526],{"class":229,"line":522},17,[227,524,525],{"class":233},"    throw",[227,527,528],{"class":241}," error\n",[227,530,532],{"class":229,"line":531},18,[227,533,411],{"class":237},[227,535,537],{"class":229,"line":536},19,[227,538,327],{"class":237},[205,540,541,542,544,545,544,548,550,551,554,555,558,559,562,563,566,567,571],{},"Errors carry ",[209,543,486],{},", ",[209,546,547],{},"instance",[209,549,496],{}," and ",[209,552,553],{},"method"," when the failure came from a request. ",[209,556,557],{},"ForgeApiError"," and its subclasses also have ",[209,560,561],{},"status"," and a truncated ",[209,564,565],{},"body",". The ",[568,569,570],"a",{"href":149},"error reference"," lists every class.",[573,574,576],"h2",{"id":575},"rate-limits","Rate limits",[205,578,579,580,583,584,587,588,590,591,593,594,597],{},"When a forge rate-limits a request and sets ",[209,581,582],{},"retry-after"," to one minute or less, the provider waits that long and retries once. Pass ",[209,585,586],{},"onRetry"," to log or count these retries. It receives the ",[209,589,496],{},", the ",[209,592,553],{}," and the ",[209,595,596],{},"wait"," in milliseconds:",[218,599,601],{"className":220,"code":600,"language":222,"meta":223,"style":223},"const forge = github({\n  auth,\n  onRetry: ({ method, url, wait }) =>\n    console.warn(`Retrying ${method} ${url} in ${wait} ms`),\n}).create()\n",[209,602,603,622,630,660,708],{"__ignoreMap":223},[227,604,605,609,612,615,618,620],{"class":229,"line":230},[227,606,608],{"class":607},"spNyl","const",[227,610,611],{"class":241}," forge ",[227,613,614],{"class":237},"=",[227,616,617],{"class":305}," github",[227,619,310],{"class":241},[227,621,339],{"class":237},[227,623,624,627],{"class":229,"line":272},[227,625,626],{"class":241},"  auth",[227,628,629],{"class":237},",\n",[227,631,632,635,637,640,644,646,649,651,654,657],{"class":229,"line":279},[227,633,634],{"class":305},"  onRetry",[227,636,216],{"class":237},[227,638,639],{"class":237}," ({",[227,641,643],{"class":642},"sHdIc"," method",[227,645,245],{"class":237},[227,647,648],{"class":642}," url",[227,650,245],{"class":237},[227,652,653],{"class":642}," wait",[227,655,656],{"class":237}," })",[227,658,659],{"class":607}," =>\n",[227,661,662,664,666,668,670,672,675,677,679,682,685,687,689,692,694,696,698,701,703,706],{"class":229,"line":288},[227,663,368],{"class":241},[227,665,297],{"class":237},[227,667,373],{"class":305},[227,669,310],{"class":241},[227,671,378],{"class":237},[227,673,674],{"class":265},"Retrying ",[227,676,384],{"class":237},[227,678,553],{"class":241},[227,680,681],{"class":237},"}",[227,683,684],{"class":237}," ${",[227,686,496],{"class":241},[227,688,681],{"class":237},[227,690,691],{"class":265}," in ",[227,693,384],{"class":237},[227,695,596],{"class":241},[227,697,681],{"class":237},[227,699,700],{"class":265}," ms",[227,702,378],{"class":237},[227,704,705],{"class":241},")",[227,707,629],{"class":237},[227,709,710,712,714,716,719],{"class":229,"line":324},[227,711,681],{"class":237},[227,713,705],{"class":241},[227,715,297],{"class":237},[227,717,718],{"class":305},"create",[227,720,444],{"class":241},[205,722,723,724,727,728,730,731,734,735,738],{},"A longer wait, or a second limit, rejects with ",[209,725,726],{},"RateLimitedError",". ",[209,729,391],{}," tells you when the limit resets, and ",[209,732,733],{},"secondary"," is ",[209,736,737],{},"true"," for an abuse limit that has no request counter.",[205,740,741,742,745],{},"After a listing, ",[209,743,744],{},"page.rateLimit"," reports the budget the forge sent with the response.",[573,747,749],{"id":748},"unsupported-operations","Unsupported operations",[205,751,752,753,756,757,297],{},"Calling an operation that the forge lacks rejects with ",[209,754,755],{},"UnsupportedOperationError",". Avoid it with ",[568,758,759],{"href":47},[209,760,761],{},"can()",[573,763,765],{"id":764},"warnings","Warnings",[205,767,768,769,771,772,775,776,297],{},"Some problems don't fail a call. A listing can skip an item it couldn't read, or ignore a filter that the forge lacks. The provider reports these as warnings with a stable ",[209,770,209],{},", such as ",[209,773,774],{},"filter_unsupported"," or ",[209,777,778],{},"thread_unreadable",[205,780,781,782,784],{},"Read ",[209,783,764],{}," on a page, or on an iterable during or after iteration:",[218,786,788],{"className":220,"code":787,"language":222,"meta":223,"style":223},"const threads = gh.threads.list(repo, { sort: 'comments' })\n\nfor await (const thread of threads) {\n  render(thread)\n}\n\nfor (const warning of threads.warnings) {\n  console.warn(warning.code, warning.message)\n}\n",[209,789,790,834,838,861,872,876,880,903,932],{"__ignoreMap":223},[227,791,792,794,797,799,801,803,805,807,810,813,815,817,820,822,824,827,830,832],{"class":229,"line":230},[227,793,608],{"class":607},[227,795,796],{"class":241}," threads ",[227,798,614],{"class":237},[227,800,294],{"class":241},[227,802,297],{"class":237},[227,804,300],{"class":241},[227,806,297],{"class":237},[227,808,809],{"class":305},"list",[227,811,812],{"class":241},"(repo",[227,814,245],{"class":237},[227,816,238],{"class":237},[227,818,819],{"class":309}," sort",[227,821,216],{"class":237},[227,823,262],{"class":237},[227,825,826],{"class":265},"comments",[227,828,829],{"class":237},"'",[227,831,256],{"class":237},[227,833,321],{"class":241},[227,835,836],{"class":229,"line":272},[227,837,276],{"emptyLinePlaceholder":275},[227,839,840,843,846,848,850,853,856,859],{"class":229,"line":279},[227,841,842],{"class":233},"for",[227,844,845],{"class":233}," await",[227,847,348],{"class":241},[227,849,608],{"class":607},[227,851,852],{"class":241}," thread ",[227,854,855],{"class":237},"of",[227,857,858],{"class":241}," threads) ",[227,860,339],{"class":237},[227,862,863,866,868,870],{"class":229,"line":288},[227,864,865],{"class":305},"  render",[227,867,310],{"class":309},[227,869,313],{"class":241},[227,871,321],{"class":309},[227,873,874],{"class":229,"line":324},[227,875,327],{"class":237},[227,877,878],{"class":229,"line":330},[227,879,276],{"emptyLinePlaceholder":275},[227,881,882,884,886,888,891,893,896,898,901],{"class":229,"line":342},[227,883,842],{"class":233},[227,885,348],{"class":241},[227,887,608],{"class":607},[227,889,890],{"class":241}," warning ",[227,892,855],{"class":237},[227,894,895],{"class":241}," threads",[227,897,297],{"class":237},[227,899,900],{"class":241},"warnings) ",[227,902,339],{"class":237},[227,904,905,908,910,912,914,917,919,921,923,926,928,930],{"class":229,"line":365},[227,906,907],{"class":241},"  console",[227,909,297],{"class":237},[227,911,373],{"class":305},[227,913,310],{"class":309},[227,915,916],{"class":241},"warning",[227,918,297],{"class":237},[227,920,209],{"class":241},[227,922,245],{"class":237},[227,924,925],{"class":241}," warning",[227,927,297],{"class":237},[227,929,505],{"class":241},[227,931,321],{"class":309},[227,933,934],{"class":229,"line":408},[227,935,327],{"class":237},[573,937,939],{"id":938},"timeouts","Timeouts",[205,941,942,943,946,947,950,951,297],{},"A request that exceeds the provider's ",[209,944,945],{},"timeout"," rejects with ",[209,948,949],{},"ForgeTimeoutError",". A request that gets no response, for example because of DNS or TLS failures, rejects with ",[209,952,953],{},"ForgeNetworkError",[955,956,957],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":223,"searchDepth":272,"depth":272,"links":959},[960,961,962,963],{"id":575,"depth":272,"text":576},{"id":748,"depth":272,"text":749},{"id":764,"depth":272,"text":765},{"id":938,"depth":272,"text":939},"Catch typed errors, and see how providers retry rate-limited requests.","md",null,{"icon":968},"i-lucide-triangle-alert",{"title":50,"description":964},"a9YksPf_RKQeOSRMaeQjjInbt-6aBlHYlkwYpyNfjag",[972,974],{"title":46,"path":47,"stem":48,"description":973,"children":-1},"Ask a provider whether it supports an operation before you call it.",{"title":54,"path":55,"stem":56,"description":975,"children":-1},"Iterate over listings, or fetch one page at a time and resume later.",1791296689727]