[{"data":1,"prerenderedAt":2128},["ShallowReactive",2],{"navigation":3,"page:\u002Fconcepts\u002Fcredits-and-billing":1019,"surround:\u002Fconcepts\u002Fcredits-and-billing":2119},[4,21,82,133,154,1010],[5,6,7,8],"Getting started","\u002Fgetting-started","i-lucide-rocket",[9,12,15,18],[10,6,11,11],"What Kaabist is",0,[13,14,11,11],"API keys and modes","keys-and-modes",[16,17,11,11],"Your first job","first-job",[19,20,11,11],"Understanding the envelope","envelope",[22,23,24,25],"Concepts","\u002Fconcepts","i-lucide-book-open",[26,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79],[27,23,11,11],"Overview",[29,30,11,11],"Programs and versions","programs-and-versions",[32,33,11,11],"Tiers and escalation","tiers-and-escalation",[35,36,11,11],"The http tier","http-tier",[38,39,11,11],"The browser tier","browser-tier",[41,42,11,11],"Sessions","sessions",[44,45,11,11],"Human in the loop","human-in-the-loop",[47,48,11,11],"How healing works","self-healing",[50,51,11,11],"Obstacles and captchas","obstacles",[53,54,11,11],"Validation and warnings","validation-and-warnings",[56,57,11,11],"Credits and billing","credits-and-billing",[59,60,11,11],"Limits","limits",[62,63,11,11],"Locators","locators",[65,66,11,11],"Snapshots","snapshots",[68,69,11,11],"Egress and proxies","egress-and-proxies",[71,72,11,11],"Queueing and fairness","queueing",[74,75,11,11],"Accounts, organisations and roles","accounts-and-roles",[77,78,11,11],"Data retention","data-retention",[80,81,11,11],"Documents and PDFs","documents-and-pdfs",[83,84,85,86],"Guides","\u002Fguides","i-lucide-map",[87,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130],[27,84,11,11],[89,90,11,11],"Authenticated flows","authenticated-flows",[92,93,11,11],"Hosted resolve pages","hosted-resolve",[95,96,11,11],"Lists and pagination","lists-and-pagination",[98,99,11,11],"JSON and network locators","json-and-network-locators",[101,102,11,11],"Schedules and change detection","schedules-and-change-detection",[104,105,11,11],"Webhooks","webhooks",[107,108,11,11],"Bring your own providers","byo-providers",[110,111,11,11],"Testing: replay, dry-run and test mode","testing",[113,114,11,11],"Side-effect safety","side-effect-safety",[116,117,11,11],"Security & data handling","security-and-data",[119,120,11,11],"Migrating from other tools","migrating",[122,123,11,11],"Drift detection and canaries","drift-and-canaries",[125,126,11,11],"SDKs","sdks",[128,129,11,11],"The kaab CLI","cli",[131,132,11,11],"Coding agents (MCP)","mcp",[134,135,136,137],"Panel","\u002Fpanel","i-lucide-layout-dashboard",[138,139,142,145,148,151],[27,135,11,11],[140,141,11,11],"The program builder","builder",[143,144,11,11],"Picking and recording","picking-and-recording",[146,147,11,11],"Taking over a job","takeover",[149,150,11,11],"Getting help","support",[152,153,11,11],"Referrals","referrals",[155,156,157,158],"Reference","\u002Freference","i-lucide-library",[159,160,520,834,837,840,1006,1007],[27,156,11,11],[161,162,11,163],"API","api",[164,166,169,212,222,274,297,316,347,376,389,396,403,410,426,447,454],[27,165,11,11],"\u002Freference\u002Fapi",[167,168,11,11],"Interactive reference","explorer",[170,171,11,172],"Jobs","jobs",[173,176,179,182,185,188,191,194,197,200,203,206,209],[174,175,11,11],"Create job","create-job",[177,178,11,11],"List jobs","list-jobs",[180,181,11,11],"Create job batch","create-job-batch",[183,184,11,11],"Estimate job","estimate-job",[186,187,11,11],"Get job","get-job",[189,190,11,11],"List job steps","list-job-steps",[192,193,11,11],"Get job snapshot","get-job-snapshot",[195,196,11,11],"Get job screenshot","get-job-screenshot",[198,199,11,11],"Get job artifact","get-job-artifact",[201,202,11,11],"Submit job input","submit-job-input",[204,205,11,11],"Resume job","resume-job",[207,208,11,11],"Takeover job","takeover-job",[210,211,11,11],"Cancel job","cancel-job",[213,214,11,215],"Batches","batches",[216,219],[217,218,11,11],"Get batch","get-batch",[220,221,11,11],"List batch jobs","list-batch-jobs",[223,224,11,225],"Programs","programs",[226,229,232,235,238,241,244,247,250,253,256,259,262,265,268,271],[227,228,11,11],"Create program","create-program",[230,231,11,11],"List programs","list-programs",[233,234,11,11],"Lint program","lint-program",[236,237,11,11],"Get program","get-program",[239,240,11,11],"Update program","update-program",[242,243,11,11],"Delete program","delete-program",[245,246,11,11],"List program versions","list-program-versions",[248,249,11,11],"Create program version","create-program-version",[251,252,11,11],"Update program version","update-program-version",[254,255,11,11],"Delete program version","delete-program-version",[257,258,11,11],"Get program version","get-program-version",[260,261,11,11],"Publish program version","publish-program-version",[263,264,11,11],"Diff program version","diff-program-version",[266,267,11,11],"Replay program version","replay-program-version",[269,270,11,11],"Set program alias","set-program-alias",[272,273,11,11],"Delete program alias","delete-program-alias",[41,42,11,275],[276,279,282,285,288,291,294],[277,278,11,11],"Create session","create-session",[280,281,11,11],"List sessions","list-sessions",[283,284,11,11],"Get session","get-session",[286,287,11,11],"Update session","update-session",[289,290,11,11],"Delete session","delete-session",[292,293,11,11],"Verify session","verify-session",[295,296,11,11],"Refresh session","refresh-session",[298,299,11,300],"Proposals","proposals",[301,304,307,310,313],[302,303,11,11],"List proposals","list-proposals",[305,306,11,11],"Get proposal","get-proposal",[308,309,11,11],"Approve proposal","approve-proposal",[311,312,11,11],"Reject proposal","reject-proposal",[314,315,11,11],"Edit proposal","edit-proposal",[317,318,11,319],"Schedules","schedules",[320,323,326,329,332,335,338,341,344],[321,322,11,11],"Create schedule","create-schedule",[324,325,11,11],"List schedules","list-schedules",[327,328,11,11],"Get schedule","get-schedule",[330,331,11,11],"Update schedule","update-schedule",[333,334,11,11],"Delete schedule","delete-schedule",[336,337,11,11],"Pause schedule","pause-schedule",[339,340,11,11],"Resume schedule","resume-schedule",[342,343,11,11],"List schedule runs","list-schedule-runs",[345,346,11,11],"Get schedule run diff","get-schedule-run-diff",[104,105,11,348],[349,352,355,358,361,364,367,370,373],[350,351,11,11],"Create webhook","create-webhook",[353,354,11,11],"List webhooks","list-webhooks",[356,357,11,11],"Get webhook","get-webhook",[359,360,11,11],"Update webhook","update-webhook",[362,363,11,11],"Delete webhook","delete-webhook",[365,366,11,11],"Rotate webhook secret","rotate-webhook-secret",[368,369,11,11],"List webhook deliveries","list-webhook-deliveries",[371,372,11,11],"Resend webhook delivery","resend-webhook-delivery",[374,375,11,11],"Test webhook","test-webhook",[377,378,11,379],"Organisation","org",[380,383,386],[381,382,11,11],"Rotate org webhook secret","rotate-org-webhook-secret",[384,385,11,11],"Get org","get-org",[387,388,11,11],"Request data deletion","request-data-deletion",[390,391,11,392],"Credits","credits",[393],[394,395,11,11],"Get credits","get-credits",[397,398,11,399],"Ledger","ledger",[400],[401,402,11,11],"List ledger entries","list-ledger-entries",[404,405,11,406],"Usage","usage",[407],[408,409,11,11],"Get usage","get-usage",[411,412,11,413],"API keys","api-keys",[414,417,420,423],[415,416,11,11],"List API keys","list-api-keys",[418,419,11,11],"Create API key","create-api-key",[421,422,11,11],"Rotate API key","rotate-api-key",[424,425,11,11],"Revoke API key","revoke-api-key",[427,108,11,428],"BYO providers",[429,432,435,438,441,444],[430,431,11,11],"List BYO providers","list-byo-providers",[433,434,11,11],"Create BYO provider","create-byo-provider",[436,437,11,11],"Get BYO provider","get-byo-provider",[439,440,11,11],"Update BYO provider","update-byo-provider",[442,443,11,11],"Delete BYO provider","delete-byo-provider",[445,446,11,11],"Test BYO provider","test-byo-provider",[448,449,11,450],"Sites","sites",[451],[452,453,11,11],"Get site profile","get-site-profile",[455,456,11,457],"Objects","schemas",[458,460,463,466,469,470,473,476,479,482,485,487,490,493,496,499,502,505,508,511,514,517],[27,459,11,11],"\u002Freference\u002Fapi\u002Fschemas",[461,462,11,11],"ApiKey","api-key",[464,465,11,11],"Batch","batch",[467,468,11,11],"ByoProvider","byo-provider",[390,391,11,11],[471,472,11,11],"ErrorResponse","error-response",[474,475,11,11],"ExtractSchema","extract-schema",[477,478,11,11],"Job","job",[480,481,11,11],"LedgerEntry","ledger-entry",[483,484,11,11],"LintResult","lint-result",[486,378,11,11],"Org",[488,489,11,11],"Program","program",[491,492,11,11],"ProgramDefinition","program-definition",[494,495,11,11],"ProgramVersion","program-version",[497,498,11,11],"Proposal","proposal",[500,501,11,11],"Schedule","schedule",[503,504,11,11],"Session","session",[506,507,11,11],"SiteProfile","site-profile",[509,510,11,11],"StepRecord","step-record",[512,513,11,11],"Webhook","webhook",[515,516,11,11],"WebhookDelivery","webhook-delivery",[518,519,11,11],"WebhookEvent","webhook-event",[521,522,11,523],"DSL","dsl",[524,526,529,532,535,538,603,637,640,751,754,756],[27,525,11,11],"\u002Freference\u002Fdsl",[527,528,11,11],"Inputs","inputs",[530,531,11,11],"Options","options",[533,534,11,11],"Policies","policies",[536,537,11,11],"Steps","steps",[539,540,11,541],"Actions","actions",[542,544,546,548,550,552,554,556,558,560,562,565,568,570,573,575,577,579,582,585,587,589,591,594,596,598,600],[27,543,11,11],"\u002Freference\u002Fdsl\u002Factions",[545,545,11,11],"fill",[547,547,11,11],"click",[549,549,11,11],"press",[551,551,11,11],"hover",[553,553,11,11],"select",[555,555,11,11],"check",[557,557,11,11],"uncheck",[559,559,11,11],"upload",[561,561,11,11],"scroll",[563,564,11,11],"wait_for","wait-for",[566,567,11,11],"set_session","set-session",[569,569,11,11],"extract",[571,572,11,11],"capture_response","capture-response",[574,574,11,11],"evaluate",[576,576,11,11],"paginate",[578,578,11,11],"download",[580,581,11,11],"read_pdf","read-pdf",[583,584,11,11],"set_vars","set-vars",[586,586,11,11],"sleep",[588,588,11,11],"reload",[590,590,11,11],"goto",[592,593,11,11],"await_input","await-input",[595,595,11,11],"checkpoint",[597,597,11,11],"screenshot",[599,599,11,11],"when",[601,602,11,11],"loop_until","loop-until",[604,605,11,606],"Conditions","conditions",[607,609,611,613,615,617,619,621,623,625,627,629,631,633,635],[27,608,11,11],"\u002Freference\u002Fdsl\u002Fconditions",[610,610,11,11],"url",[612,612,11,11],"title",[614,614,11,11],"visible",[616,616,11,11],"hidden",[618,618,11,11],"exists",[620,620,11,11],"absent",[622,622,11,11],"text",[624,624,11,11],"count",[626,626,11,11],"network",[628,628,11,11],"var",[630,630,11,11],"landmark",[632,632,11,11],"all",[634,634,11,11],"any",[636,636,11,11],"not",[638,639,11,11],"Targets","targets",[641,642,11,643],"Fields","fields",[644,646,649,651,654,656,659,661,663,666,668,671,672,674,677,679,681,683,685,687,690,693,695,698,701,703,704,707,709,712,714,716,718,720,722,724,726,728,731,733,734,736,738,740,743,745,747,749],[27,645,11,11],"\u002Freference\u002Fdsl\u002Ffields",[647,648,11,11],"allow_suffix","allow-suffix",[650,650,11,11],"attr",[652,653,11,11],"base_url","base-url",[655,655,11,11],"candidates",[657,658,11,11],"case_insensitive","case-insensitive",[660,660,11,11],"country",[662,662,11,11],"currency",[664,665,11,11],"date_format","date-format",[667,667,11,11],"decimal",[669,670,11,11],"false_values","false-values",[642,642,11,11],[673,673,11,11],"flags",[675,676,11,11],"follow_redirects","follow-redirects",[678,678,11,11],"frame",[680,680,11,11],"json",[682,682,11,11],"locale",[684,684,11,11],"many",[686,686,11,11],"max",[688,689,11,11],"max_items","max-items",[691,692,11,11],"max_length","max-length",[694,694,11,11],"min",[696,697,11,11],"min_items","min-items",[699,700,11,11],"min_length","min-length",[702,702,11,11],"name",[626,626,11,11],[705,706,11,11],"null_markers","null-markers",[708,708,11,11],"nullable",[710,711,11,11],"on_invalid","on-invalid",[713,713,11,11],"pattern",[715,715,11,11],"presence",[717,717,11,11],"regex",[719,719,11,11],"required",[721,721,11,11],"role",[723,723,11,11],"sample",[725,725,11,11],"selector",[727,727,11,11],"source",[729,730,11,11],"strip_fragment","strip-fragment",[732,732,11,11],"testid",[622,622,11,11],[735,735,11,11],"thousands",[737,737,11,11],"timezone",[739,739,11,11],"transforms",[741,742,11,11],"true_values","true-values",[744,744,11,11],"type",[746,746,11,11],"unique",[748,748,11,11],"values",[750,750,11,11],"xpath",[752,753,11,11],"Assertions","assertions",[755,739,11,11],"Transforms",[757,758,11,759],"Lint codes","lint",[760,762,765,768,771,774,777,780,783,786,789,792,795,798,801,804,807,810,813,816,819,822,825,828,831],[27,761,11,11],"\u002Freference\u002Fdsl\u002Flint",[763,764,11,11],"E001","e001",[766,767,11,11],"E002","e002",[769,770,11,11],"E003","e003",[772,773,11,11],"E004","e004",[775,776,11,11],"E005","e005",[778,779,11,11],"E006","e006",[781,782,11,11],"E007","e007",[784,785,11,11],"E008","e008",[787,788,11,11],"E009","e009",[790,791,11,11],"E010","e010",[793,794,11,11],"E011","e011",[796,797,11,11],"E012","e012",[799,800,11,11],"E013","e013",[802,803,11,11],"E014","e014",[805,806,11,11],"W001","w001",[808,809,11,11],"W002","w002",[811,812,11,11],"W003","w003",[814,815,11,11],"W004","w004",[817,818,11,11],"W005","w005",[820,821,11,11],"W006","w006",[823,824,11,11],"W007","w007",[826,827,11,11],"W008","w008",[829,830,11,11],"W009","w009",[832,833,11,11],"W010","w010",[835,836,11,11],"Codes","codes",[838,839,11,11],"Events","events",[841,129,11,842],"CLI",[843,845,847,850,853,856,859,862,865,868,871,874,877,880,883,886,889,892,895,898,901,904,907,910,913,916,919,922,925,928,931,934,937,940,943,946,949,952,955,958,961,964,967,970,973,976,979,982,985,988,991,994,997,1000,1003],[27,844,11,11],"\u002Freference\u002Fcli",[846,846,11,11],"kaab",[848,849,11,11],"kaab auth","kaab-auth",[851,852,11,11],"kaab auth login","kaab-auth-login",[854,855,11,11],"kaab auth logout","kaab-auth-logout",[857,858,11,11],"kaab auth status","kaab-auth-status",[860,861,11,11],"kaab completion","kaab-completion",[863,864,11,11],"kaab completion bash","kaab-completion-bash",[866,867,11,11],"kaab completion fish","kaab-completion-fish",[869,870,11,11],"kaab completion powershell","kaab-completion-powershell",[872,873,11,11],"kaab completion zsh","kaab-completion-zsh",[875,876,11,11],"kaab credits","kaab-credits",[878,879,11,11],"kaab jobs","kaab-jobs",[881,882,11,11],"kaab jobs cancel","kaab-jobs-cancel",[884,885,11,11],"kaab jobs get","kaab-jobs-get",[887,888,11,11],"kaab jobs input","kaab-jobs-input",[890,891,11,11],"kaab jobs list","kaab-jobs-list",[893,894,11,11],"kaab jobs resume","kaab-jobs-resume",[896,897,11,11],"kaab jobs run","kaab-jobs-run",[899,900,11,11],"kaab jobs snapshot","kaab-jobs-snapshot",[902,903,11,11],"kaab jobs steps","kaab-jobs-steps",[905,906,11,11],"kaab jobs takeover","kaab-jobs-takeover",[908,909,11,11],"kaab open","kaab-open",[911,912,11,11],"kaab open job","kaab-open-job",[914,915,11,11],"kaab programs","kaab-programs",[917,918,11,11],"kaab programs alias","kaab-programs-alias",[920,921,11,11],"kaab programs alias set","kaab-programs-alias-set",[923,924,11,11],"kaab programs diff","kaab-programs-diff",[926,927,11,11],"kaab programs lint","kaab-programs-lint",[929,930,11,11],"kaab programs list","kaab-programs-list",[932,933,11,11],"kaab programs pull","kaab-programs-pull",[935,936,11,11],"kaab programs push","kaab-programs-push",[938,939,11,11],"kaab proposals","kaab-proposals",[941,942,11,11],"kaab proposals approve","kaab-proposals-approve",[944,945,11,11],"kaab proposals list","kaab-proposals-list",[947,948,11,11],"kaab proposals reject","kaab-proposals-reject",[950,951,11,11],"kaab proposals show","kaab-proposals-show",[953,954,11,11],"kaab schedules","kaab-schedules",[956,957,11,11],"kaab schedules create","kaab-schedules-create",[959,960,11,11],"kaab schedules list","kaab-schedules-list",[962,963,11,11],"kaab schedules pause","kaab-schedules-pause",[965,966,11,11],"kaab schedules resume","kaab-schedules-resume",[968,969,11,11],"kaab schedules runs","kaab-schedules-runs",[971,972,11,11],"kaab sessions","kaab-sessions",[974,975,11,11],"kaab sessions create","kaab-sessions-create",[977,978,11,11],"kaab sessions delete","kaab-sessions-delete",[980,981,11,11],"kaab sessions list","kaab-sessions-list",[983,984,11,11],"kaab sessions verify","kaab-sessions-verify",[986,987,11,11],"kaab usage","kaab-usage",[989,990,11,11],"kaab version","kaab-version",[992,993,11,11],"kaab webhooks","kaab-webhooks",[995,996,11,11],"kaab webhooks create","kaab-webhooks-create",[998,999,11,11],"kaab webhooks deliveries","kaab-webhooks-deliveries",[1001,1002,11,11],"kaab webhooks list","kaab-webhooks-list",[1004,1005,11,11],"kaab webhooks test","kaab-webhooks-test",[125,126,11,11],[1008,1009,11,11],"Plans and pricing","plans",[1011,1012,1013,1014],"Changelog","\u002Fchangelog","i-lucide-history",[1015,1016],[27,1012,11,11],[1017,1018,11,11],"Deprecations","deprecations",{"id":1020,"title":56,"body":1021,"breaking":2109,"date":2110,"description":2111,"extension":2112,"generated":2109,"meta":2113,"navigation":2114,"path":2115,"seo":2116,"stem":2117,"version":2110,"__hash__":2118},"docs\u002F2.concepts\u002F10.credits-and-billing.md",{"type":1022,"value":1023,"toc":2091},"minimark",[1024,1028,1033,1053,1056,1060,1142,1149,1160,1167,1260,1267,1272,1286,1466,1470,1480,1484,1513,1524,1627,1641,1645,1651,1677,1686,1721,1735,1739,1759,1762,1802,1805,1808,1812,1815,1818,1829,1833,1839,1842,1896,1899,1904,1908,1915,1982,1986,2024,2027,2087],[1025,1026,1027],"p",{},"Everything Kaabist does for you is paid in credits: a job reserves what it may cost when you create it and settles what it did cost when it ends. Knowing how that works tells you what a program will cost, why a job is waiting, and what happens on the day the balance reaches zero.",[1029,1030,1032],"h2",{"id":1031},"when-to-use-it","When to use it",[1025,1034,1035,1036,1040,1041,1044,1045,1048,1049,1052],{},"Read this page before you put a program on a schedule or behind your own product, so you can estimate its cost and cap it with ",[1037,1038,1039],"code",{},"max_credits",". Come back to it when a request answers ",[1037,1042,1043],{},"402 insufficient_credits",", when a job sits in ",[1037,1046,1047],{},"queued"," with ",[1037,1050,1051],{},"meta.blocked_reason",", or when you choose between a bigger plan, credit packs and auto-recharge.",[1025,1054,1055],{},"You buy credits with a plan's monthly allowance, with credit packs, or automatically. Paddle is the merchant of record: it takes the payment, adds tax for your country and sends the invoices.",[1029,1057,1059],{"id":1058},"what-a-job-costs","What a job costs",[1061,1062,1063,1076],"table",{},[1064,1065,1066],"thead",{},[1067,1068,1069,1073],"tr",{},[1070,1071,1072],"th",{},"Item",[1070,1074,1075],{},"Price in credits",[1077,1078,1079,1088,1096,1104,1112,1126,1134],"tbody",{},[1067,1080,1081,1085],{},[1082,1083,1084],"td",{},"Compute, http tier",[1082,1086,1087],{},"1 per request",[1067,1089,1090,1093],{},[1082,1091,1092],{},"Compute, browser tier",[1082,1094,1095],{},"5, plus 1 for every started ten seconds past the first thirty",[1067,1097,1098,1101],{},[1082,1099,1100],{},"Compute, stealth tier",[1082,1102,1103],{},"20, plus 1 for every started ten seconds past the first thirty",[1067,1105,1106,1109],{},[1082,1107,1108],{},"Proxy traffic",[1082,1110,1111],{},"per megabyte: datacenter 0.05, residential 0.5, mobile 2",[1067,1113,1114,1117],{},[1082,1115,1116],{},"LLM (Kaabist's model)",[1082,1118,1119,1120,1125],{},"per thousand input and per thousand output tokens, at the model's own rates (",[1121,1122,1124],"a",{"href":1123},"\u002Freference\u002Fplans#what-a-credit-buys","by model",")",[1067,1127,1128,1131],{},[1082,1129,1130],{},"Captcha",[1082,1132,1133],{},"2 per solve",[1067,1135,1136,1139],{},[1082,1137,1138],{},"Session verification",[1082,1140,1141],{},"1 (http probe), 5 (browser probe)",[1025,1143,1144,1145,1148],{},"Model tokens are priced as the model's vendor prices them: what the model reads (input) and what it writes (output, its reasoning included) separately, output costing several times more. A job's ",[1037,1146,1147],{},"llm"," line adds the two.",[1025,1150,1151,1152,1155,1156,1159],{},"A job that escalates pays the compute of every tier it ran at. Time a job spends parked, waiting for input or for you, is free. A canary probe pays half its compute. A result served from the cache pays its compute and nothing else. If a provider is your own (bring your own proxy, LLM or captcha solver), its line costs nothing. A job that fails because of an internal error is refunded in full. A job created with a test key (",[1037,1153,1154],{},"sk_test_",") reserves and costs nothing; it counts against a daily quota instead (see ",[1121,1157,59],{"href":1158},"\u002Fconcepts\u002Flimits#test-keys",").",[1025,1161,1162,1163,1166],{},"Every finished job reports what it cost in ",[1037,1164,1165],{},"meta.credits",":",[1168,1169,1173],"pre",{"className":1170,"code":1171,"language":680,"meta":1172,"style":1172},"language-json shiki shiki-themes kaab-code kaab-code kaab-code","\"credits\": { \"reserved\": 12, \"settled\": 7, \"breakdown\": { \"compute\": 5, \"proxy\": 2, \"llm\": 0, \"captcha\": 0 } }\n","",[1037,1174,1175],{"__ignoreMap":1172},[1176,1177,1180,1184,1188,1192,1195,1199,1202,1205,1207,1210,1212,1215,1217,1220,1223,1225,1228,1230,1233,1235,1238,1240,1243,1245,1248,1250,1253,1255,1257],"span",{"class":1178,"line":1179},"line",1,[1176,1181,1183],{"class":1182},"suOy4","\"credits\"",[1176,1185,1187],{"class":1186},"sTzsn",": { ",[1176,1189,1191],{"class":1190},"sqn18","\"reserved\"",[1176,1193,1166],{"class":1194},"sQm2-",[1176,1196,1198],{"class":1197},"sHJIl"," 12",[1176,1200,1201],{"class":1194},",",[1176,1203,1204],{"class":1190}," \"settled\"",[1176,1206,1166],{"class":1194},[1176,1208,1209],{"class":1197}," 7",[1176,1211,1201],{"class":1194},[1176,1213,1214],{"class":1190}," \"breakdown\"",[1176,1216,1166],{"class":1194},[1176,1218,1219],{"class":1186}," { ",[1176,1221,1222],{"class":1190},"\"compute\"",[1176,1224,1166],{"class":1194},[1176,1226,1227],{"class":1197}," 5",[1176,1229,1201],{"class":1194},[1176,1231,1232],{"class":1190}," \"proxy\"",[1176,1234,1166],{"class":1194},[1176,1236,1237],{"class":1197}," 2",[1176,1239,1201],{"class":1194},[1176,1241,1242],{"class":1190}," \"llm\"",[1176,1244,1166],{"class":1194},[1176,1246,1247],{"class":1197}," 0",[1176,1249,1201],{"class":1194},[1176,1251,1252],{"class":1190}," \"captcha\"",[1176,1254,1166],{"class":1194},[1176,1256,1247],{"class":1197},[1176,1258,1259],{"class":1186}," } }\n",[1025,1261,1262,1263,1266],{},"The prices are also on ",[1121,1264,1008],{"href":1265},"\u002Freference\u002Fplans",".",[1268,1269,1271],"h3",{"id":1270},"estimating-before-you-run","Estimating before you run",[1025,1273,1274,1277,1278,1281,1282,1285],{},[1037,1275,1276],{},"POST \u002Fv1\u002Fjobs\u002Festimate"," takes the same body as ",[1037,1279,1280],{},"POST \u002Fv1\u002Fjobs"," and answers ",[1037,1283,1284],{},"{ \"credits_min\", \"credits_max\", \"tier_expected\", \"cache\" }"," without running anything:",[1287,1288,1289],"code-group",{},[1168,1290,1295],{"className":1291,"code":1292,"filename":1293,"language":1294,"meta":1172,"style":1172},"language-ts shiki shiki-themes kaab-code kaab-code kaab-code","const estimate = await kaab.jobs.estimate({\n  url: `${site}\u002Fp\u002F1`,\n  extract: { title: \"h1\", price: { selector: \".price\", type: \"money\" } },\n});\nconsole.log(\n  `between ${estimate.credits_min} and ${estimate.credits_max} credits at ${estimate.tier_expected} tier`,\n);\n","TypeScript","ts",[1037,1296,1297,1325,1351,1397,1403,1415,1460],{"__ignoreMap":1172},[1176,1298,1299,1302,1305,1308,1311,1314,1317,1319,1322],{"class":1178,"line":1179},[1176,1300,1301],{"class":1190},"const",[1176,1303,1304],{"class":1197}," estimate",[1176,1306,1307],{"class":1190}," =",[1176,1309,1310],{"class":1190}," await",[1176,1312,1313],{"class":1197}," kaab",[1176,1315,1266],{"class":1316},"sJugJ",[1176,1318,171],{"class":1197},[1176,1320,1321],{"class":1316},".estimate",[1176,1323,1324],{"class":1186},"({\n",[1176,1326,1328,1331,1333,1336,1339,1342,1345,1348],{"class":1178,"line":1327},2,[1176,1329,1330],{"class":1186},"  url",[1176,1332,1166],{"class":1190},[1176,1334,1335],{"class":1182}," `",[1176,1337,1338],{"class":1190},"${",[1176,1340,1341],{"class":1186},"site",[1176,1343,1344],{"class":1190},"}",[1176,1346,1347],{"class":1182},"\u002Fp\u002F1`",[1176,1349,1350],{"class":1194},",\n",[1176,1352,1354,1357,1359,1362,1364,1367,1369,1372,1374,1377,1379,1382,1384,1387,1389,1392,1395],{"class":1178,"line":1353},3,[1176,1355,1356],{"class":1186},"  extract",[1176,1358,1166],{"class":1190},[1176,1360,1361],{"class":1186}," { title",[1176,1363,1166],{"class":1190},[1176,1365,1366],{"class":1182}," \"h1\"",[1176,1368,1201],{"class":1194},[1176,1370,1371],{"class":1186}," price",[1176,1373,1166],{"class":1190},[1176,1375,1376],{"class":1186}," { selector",[1176,1378,1166],{"class":1190},[1176,1380,1381],{"class":1182}," \".price\"",[1176,1383,1201],{"class":1194},[1176,1385,1386],{"class":1186}," type",[1176,1388,1166],{"class":1190},[1176,1390,1391],{"class":1182}," \"money\"",[1176,1393,1394],{"class":1186}," } }",[1176,1396,1350],{"class":1194},[1176,1398,1400],{"class":1178,"line":1399},4,[1176,1401,1402],{"class":1186},"});\n",[1176,1404,1406,1409,1412],{"class":1178,"line":1405},5,[1176,1407,1408],{"class":1197},"console",[1176,1410,1411],{"class":1316},".log",[1176,1413,1414],{"class":1186},"(\n",[1176,1416,1418,1421,1423,1426,1429,1431,1434,1436,1438,1441,1443,1446,1448,1450,1453,1455,1458],{"class":1178,"line":1417},6,[1176,1419,1420],{"class":1182},"  `between ",[1176,1422,1338],{"class":1190},[1176,1424,1425],{"class":1197},"estimate",[1176,1427,1428],{"class":1186},".credits_min",[1176,1430,1344],{"class":1190},[1176,1432,1433],{"class":1182}," and ",[1176,1435,1338],{"class":1190},[1176,1437,1425],{"class":1197},[1176,1439,1440],{"class":1186},".credits_max",[1176,1442,1344],{"class":1190},[1176,1444,1445],{"class":1182}," credits at ",[1176,1447,1338],{"class":1190},[1176,1449,1425],{"class":1197},[1176,1451,1452],{"class":1186},".tier_expected",[1176,1454,1344],{"class":1190},[1176,1456,1457],{"class":1182}," tier`",[1176,1459,1350],{"class":1194},[1176,1461,1463],{"class":1178,"line":1462},7,[1176,1464,1465],{"class":1186},");\n",[1268,1467,1469],{"id":1468},"capping-a-job","Capping a job",[1025,1471,1472,1475,1476,1479],{},[1037,1473,1474],{},"options.max_credits"," is the most a job may spend. The worker keeps a running tally with the same prices settlement uses, and a job that would go past the cap stops and fails with ",[1037,1477,1478],{},"max_credits_exceeded",". Set it on any program whose cost depends on the page, such as a paginated list or a browser flow that may wait on slow pages.",[1029,1481,1483],{"id":1482},"reserve-settle-release","Reserve, settle, release",[1485,1486,1487,1501,1507],"ol",{},[1488,1489,1490,1494,1495,1497,1498,1500],"li",{},[1491,1492,1493],"strong",{},"Reserve."," Creating a job reserves what it is expected to cost: the price of its expected work at the tier it starts at (from the program's history, or the tier's price and three seconds a step for a browser program), with half again as a margin, and never more than ",[1037,1496,1039],{},". If the reservation cannot be made, the request answers ",[1037,1499,1043],{}," and no job is created.",[1488,1502,1503,1506],{},[1491,1504,1505],{},"Settle."," When the job ends, its actual cost is charged from the reservation.",[1488,1508,1509,1512],{},[1491,1510,1511],{},"Release."," What the reservation held beyond the actual cost is given back at the same moment.",[1025,1514,1515,1516,1519,1520,1523],{},"A job that parks gives its reservation back, and takes one again when you resume it; if it cannot, the resume answers ",[1037,1517,1518],{},"402"," and the job stays parked. An escalation reserves the difference for the stronger tier. A retry inside a job never reserves twice. ",[1037,1521,1522],{},"GET \u002Fv1\u002Fcredits"," shows the result:",[1168,1525,1527],{"className":1170,"code":1526,"language":680,"meta":1172,"style":1172},"{\n  \"balance\": 9840,\n  \"reserved\": 60,\n  \"available\": 9780,\n  \"pools\": [{ \"type\": \"allowance\", \"amount\": 9780, \"expires_at\": \"2026-11-01T00:00:00Z\" }],\n  \"auto_recharge\": null\n}\n",[1037,1528,1529,1534,1546,1558,1570,1612,1622],{"__ignoreMap":1172},[1176,1530,1531],{"class":1178,"line":1179},[1176,1532,1533],{"class":1186},"{\n",[1176,1535,1536,1539,1541,1544],{"class":1178,"line":1327},[1176,1537,1538],{"class":1190},"  \"balance\"",[1176,1540,1166],{"class":1194},[1176,1542,1543],{"class":1197}," 9840",[1176,1545,1350],{"class":1194},[1176,1547,1548,1551,1553,1556],{"class":1178,"line":1353},[1176,1549,1550],{"class":1190},"  \"reserved\"",[1176,1552,1166],{"class":1194},[1176,1554,1555],{"class":1197}," 60",[1176,1557,1350],{"class":1194},[1176,1559,1560,1563,1565,1568],{"class":1178,"line":1399},[1176,1561,1562],{"class":1190},"  \"available\"",[1176,1564,1166],{"class":1194},[1176,1566,1567],{"class":1197}," 9780",[1176,1569,1350],{"class":1194},[1176,1571,1572,1575,1577,1580,1583,1585,1588,1590,1593,1595,1597,1599,1602,1604,1607,1610],{"class":1178,"line":1405},[1176,1573,1574],{"class":1190},"  \"pools\"",[1176,1576,1166],{"class":1194},[1176,1578,1579],{"class":1186}," [{ ",[1176,1581,1582],{"class":1190},"\"type\"",[1176,1584,1166],{"class":1194},[1176,1586,1587],{"class":1182}," \"allowance\"",[1176,1589,1201],{"class":1194},[1176,1591,1592],{"class":1190}," \"amount\"",[1176,1594,1166],{"class":1194},[1176,1596,1567],{"class":1197},[1176,1598,1201],{"class":1194},[1176,1600,1601],{"class":1190}," \"expires_at\"",[1176,1603,1166],{"class":1194},[1176,1605,1606],{"class":1182}," \"2026-11-01T00:00:00Z\"",[1176,1608,1609],{"class":1186}," }]",[1176,1611,1350],{"class":1194},[1176,1613,1614,1617,1619],{"class":1178,"line":1417},[1176,1615,1616],{"class":1190},"  \"auto_recharge\"",[1176,1618,1166],{"class":1194},[1176,1620,1621],{"class":1197}," null\n",[1176,1623,1624],{"class":1178,"line":1462},[1176,1625,1626],{"class":1186},"}\n",[1025,1628,1629,1632,1633,1636,1637,1640],{},[1037,1630,1631],{},"available"," is ",[1037,1634,1635],{},"balance − reserved",": what new jobs can still take. Every API response carries it as ",[1037,1638,1639],{},"X-Credits-Remaining"," (cached for up to ten seconds), so a client can watch it without an extra call.",[1029,1642,1644],{"id":1643},"where-credits-come-from-and-in-what-order-they-are-spent","Where credits come from, and in what order they are spent",[1025,1646,1647,1650],{},[1037,1648,1649],{},"pools"," lists every lot with credits left, in the order they are consumed:",[1485,1652,1653,1661,1669],{},[1488,1654,1655,1660],{},[1491,1656,1657],{},[1037,1658,1659],{},"promo",": promotional credits, which expire first;",[1488,1662,1663,1668],{},[1491,1664,1665],{},[1037,1666,1667],{},"allowance",": your plan's monthly allowance, which expires at the end of the period;",[1488,1670,1671,1676],{},[1491,1672,1673],{},[1037,1674,1675],{},"purchased",": credit packs (1 000, 10 000 or 100 000 credits), which last twelve months.",[1025,1678,1679,1680,1685],{},"Within a pool, the credits that expire soonest are spent first. A fourth entry, ",[1491,1681,1682],{},[1037,1683,1684],{},"overage",", appears with a negative amount while overage is owed.",[1025,1687,1688,1691,1692,1695,1696,1695,1699,1695,1702,1695,1705,1695,1708,1695,1711,1695,1714,1433,1717,1720],{},[1037,1689,1690],{},"GET \u002Fv1\u002Fledger"," lists every entry behind your balance. The ledger is append-only: ",[1037,1693,1694],{},"purchase",", ",[1037,1697,1698],{},"grant",[1037,1700,1701],{},"subscription_allowance",[1037,1703,1704],{},"reserve",[1037,1706,1707],{},"settle",[1037,1709,1710],{},"release",[1037,1712,1713],{},"refund",[1037,1715,1716],{},"expire",[1037,1718,1719],{},"adjust"," are each their own entry, with the pool it touched and the job it belongs to, so an invoice can always be traced to the jobs behind it.",[1025,1722,1723,1726,1727,1730,1731,1734],{},[1037,1724,1725],{},"GET \u002Fv1\u002Fusage?from=…&to=…&group_by=day|program|tier|tag"," aggregates finished jobs: how many, what they cost, and the four itemised units (compute, proxy megabytes, LLM tokens, captcha solves). Grouping by ",[1037,1728,1729],{},"tag"," counts a job under each of its tags, so those rows sum to more than your total when jobs carry several: ",[1037,1732,1733],{},"customer:42"," means \"what did customer 42 cost\", not a share of something.",[1029,1736,1738],{"id":1737},"running-low-and-running-out","Running low and running out",[1025,1740,1741,1742,1745,1746,1750,1751,1754,1755,1758],{},"You are told by e-mail and by the ",[1037,1743,1744],{},"credits.low"," ",[1121,1747,1749],{"href":1748},"\u002Freference\u002Fevents","event"," when 80 % and then 95 % of the period's allowance is used (once per level per period), by ",[1037,1752,1753],{},"credits.exhausted"," when nothing more can be spent, and by ",[1037,1756,1757],{},"credits.recharged"," when credits arrive again.",[1025,1760,1761],{},"When nothing is left:",[1763,1764,1765,1771,1789,1796,1799],"ul",{},[1488,1766,1767,1768,1770],{},"new jobs are refused with ",[1037,1769,1043],{},";",[1488,1772,1773,1774,1048,1776,1779,1780,1783,1784,1788],{},"a queued job that needs a reservation it does not hold waits in ",[1037,1775,1047],{},[1037,1777,1778],{},"meta.blocked_reason: \"insufficient_credits\"",", and the ",[1037,1781,1782],{},"job.blocked"," event fires once; it runs when credits arrive (see ",[1121,1785,1787],{"href":1786},"\u002Fconcepts\u002Fqueueing#worked-example","Queueing",");",[1488,1790,1791,1792,1795],{},"schedules and canaries pause (",[1037,1793,1794],{},"paused_reason: \"credits\"",") and resume by themselves when credits arrive;",[1488,1797,1798],{},"a parked job cannot be resumed until credits arrive;",[1488,1800,1801],{},"jobs already running finish, and everything you have already run stays readable, along with the panel, webhooks and every read endpoint.",[1268,1803,1804],{"id":1684},"Overage",[1025,1806,1807],{},"Organisations with a payment method can run past zero up to their plan's overage limit. The overage is invoiced at the end of the period in whole packs of 1 000 credits, and whatever the rounding bought beyond the overage is added as purchased credits. The free plan has no overage.",[1268,1809,1811],{"id":1810},"auto-recharge","Auto-recharge",[1025,1813,1814],{},"Auto-recharge buys a pack whenever your available credits drop below a threshold you choose. It charges your plan's payment method, tries at most once every ten minutes, and waits a day after a declined payment.",[1029,1816,1817],{"id":1009},"Plans",[1025,1819,1820,1821,1823,1824,1826,1827,1266],{},"Every organisation starts on the free plan: 500 credits a month, the http tier only, one job at a time. The browser and stealth tiers, bring-your-own providers, ",[1037,1822,574],{}," and programs that sign in need a verified payment method, which buying a plan or a pack adds; the tiers above http, bring-your-own providers and ",[1037,1825,574],{}," also need a plan that includes them. Upgrading takes effect immediately; a downgrade takes effect at the end of the period; cancelling returns the organisation to the free plan when the period ends. What each plan includes, including its allowance, overage limit, concurrency and retention, is on ",[1121,1828,1008],{"href":1265},[1029,1830,1832],{"id":1831},"the-billing-page","The billing page",[1025,1834,1835,1838],{},[1491,1836,1837],{},"Billing"," in the panel is where an owner or admin buys and changes things; everybody else sees it read-only, with a note that an owner or admin makes purchases. Owners and admins without two-factor authentication see a prompt to set it up first, because purchases need it.",[1025,1840,1841],{},"From top to bottom:",[1763,1843,1844,1859,1876,1886],{},[1488,1845,1846,1849,1850,1854,1855,1858],{},[1491,1847,1848],{},"Current plan."," The plan's name and status, the allowance used this period as a bar with \"used \u002F total\", the renewal date and the percentage used, the credits available now (with how many came from packs, and a link to the ledger), and, on a plan with overage, how much is owed of the limit, invoiced at the end of the period. A scheduled downgrade shows as \"changes to ",[1851,1852,1853],"em",{},"plan"," at the end of this period\". ",[1491,1856,1857],{},"Payment method & invoices"," opens Paddle's customer portal. Without a payment method, the card says which features need one.",[1488,1860,1861,1864,1865,1867,1868,1871,1872,1875],{},[1491,1862,1863],{},"Plans."," A comparison table, one column per plan, with rows for credits a month, overage allowed, highest tier, concurrent jobs per tier, API requests a minute, shortest schedule, seats, result retention, bring-your-own providers, ",[1037,1866,574],{}," steps and regions. Each other plan has an ",[1491,1869,1870],{},"Upgrade"," or ",[1491,1873,1874],{},"Downgrade"," button; enterprise says \"Contact us\". Prices exclude tax.",[1488,1877,1878,1881,1882,1885],{},[1491,1879,1880],{},"Credit packs."," One card per pack size, with its price and price per 1 000 credits, valid for 12 months, and a ",[1491,1883,1884],{},"Buy"," button.",[1488,1887,1888,1891,1892,1895],{},[1491,1889,1890],{},"Auto-recharge."," An on\u002Foff switch, \"when available credits fall below\" a number, the pack to buy, and ",[1491,1893,1894],{},"Save",". Without a subscription it explains that it needs one. A failed recharge shows when it failed and that it is retried a day later.",[1025,1897,1898],{},"Buying opens Paddle's checkout. When you come back, the page says the payment was received and updates by itself when Paddle confirms it, usually within seconds; if the confirmation is slow, it says so, and nothing is charged twice.",[1025,1900,1901,1903],{},[1491,1902,390],{}," (linked from Billing) shows the available balance, what running jobs have reserved, the pools with their expiry, the auto-recharge setting, and the ledger, filterable by entry type and exportable as CSV. A banner across the panel says when credits are running low, when they have run out, and when a payment failed.",[1029,1905,1907],{"id":1906},"worked-example","Worked example",[1025,1909,1910,1911,1914],{},"A program reads a shop's catalogue (",[1037,1912,1913],{},"https:\u002F\u002Fshop.example.com\u002Fc\u002Fshoes",") over five pages at the http tier, and a schedule runs it every hour.",[1485,1916,1917,1934,1944,1958,1970],{},[1488,1918,1919,1920,1922,1923,1433,1926,1929,1930,1933],{},"Estimate it: ",[1037,1921,1276],{}," with the program returns ",[1037,1924,1925],{},"credits_min",[1037,1927,1928],{},"credits_max"," at ",[1037,1931,1932],{},"tier_expected: \"http\"",". Five pages are five requests: five credits of compute, plus datacenter proxy traffic at 0.05 per megabyte.",[1488,1935,1936,1937,1940,1941,1943],{},"Cap it: add ",[1037,1938,1939],{},"\"max_credits\": 10"," to the program's options, so a site change that sends it through far more pages fails with ",[1037,1942,1478],{}," instead of spending.",[1488,1945,1946,1947,1949,1950,1953,1954,1957],{},"Run it, and read ",[1037,1948,1165],{},": ",[1037,1951,1952],{},"reserved"," is the estimate with its margin, ",[1037,1955,1956],{},"settled"," the actual cost, and the difference was released when the job ended.",[1488,1959,1960,1961,1963,1964,1966,1967,1266],{},"Watch the balance: every response carries ",[1037,1962,1639],{},". On the day 80 % of the allowance is used, ",[1037,1965,1744],{}," arrives with ",[1037,1968,1969],{},"level: 80",[1488,1971,1972,1973,1975,1976,1978,1979,1981],{},"If the balance runs out, the hourly schedule pauses with ",[1037,1974,1794],{},", and a new job answers ",[1037,1977,1518],{},". Buying a pack on the billing page sends ",[1037,1980,1757],{},", and the schedule resumes by itself.",[1029,1983,1985],{"id":1984},"pitfalls","Pitfalls",[1763,1987,1988,1996,2002,2012,2018],{},[1488,1989,1990,1995],{},[1491,1991,1992,1994],{},[1037,1993,1518],{}," on creation means the reservation failed, not the job."," Nothing was created and nothing was charged. Retry after credits arrive.",[1488,1997,1998,2001],{},[1491,1999,2000],{},"Parked jobs hold no credits."," A job that has waited three days for input needs a fresh reservation to resume.",[1488,2003,2004,2007,2008,2011],{},[1491,2005,2006],{},"Escalation is paid twice."," A job that starts at http and moves to a browser pays both. If a site always needs a browser, set ",[1037,2009,2010],{},"prefer_tier"," so it starts there.",[1488,2013,2014,2017],{},[1491,2015,2016],{},"Proxy traffic is billed per megabyte."," Browser jobs that load images and fonts move more bytes; asset blocking is on by default for that reason.",[1488,2019,2020,2023],{},[1491,2021,2022],{},"Overage needs a payment method."," Without one, the balance stops at zero.",[1029,2025,155],{"id":2026},"reference",[1763,2028,2029,2042,2048,2058,2071,2075],{},[1488,2030,2031,1695,2034,1695,2038],{},[1121,2032,394],{"href":2033},"\u002Freference\u002Fapi\u002Fcredits\u002Fget-credits",[1121,2035,2037],{"href":2036},"\u002Freference\u002Fapi\u002Fledger\u002Flist-ledger-entries","list ledger entries",[1121,2039,2041],{"href":2040},"\u002Freference\u002Fapi\u002Fusage\u002Fget-usage","get usage",[1488,2043,2044],{},[1121,2045,2047],{"href":2046},"\u002Freference\u002Fapi\u002Fjobs\u002Festimate-job","Estimate a job",[1488,2049,2050,1433,2054],{},[1121,2051,2053],{"href":2052},"\u002Freference\u002Fapi\u002Fschemas\u002Fcredits","Credits schema",[1121,2055,2057],{"href":2056},"\u002Freference\u002Fapi\u002Fschemas\u002Fledger-entry","ledger entry schema",[1488,2059,2060,2061,1695,2063,1695,2065,1433,2067,1745,2069],{},"The ",[1037,2062,1744],{},[1037,2064,1753],{},[1037,2066,1757],{},[1037,2068,1782],{},[1121,2070,839],{"href":1748},[1488,2072,2073],{},[1121,2074,1008],{"href":1265},[1488,2076,2077,1433,2082],{},[1121,2078,2080],{"href":2079},"\u002Freference\u002Fcli\u002Fkaab-credits",[1037,2081,875],{},[1121,2083,2085],{"href":2084},"\u002Freference\u002Fcli\u002Fkaab-usage",[1037,2086,986],{},[2088,2089,2090],"style",{},"html pre.shiki code .suOy4, html code.shiki .suOy4{--shiki-light:var(--kaab-code-token-string-expression);--shiki-default:var(--kaab-code-token-string-expression);--shiki-dark:var(--kaab-code-token-string-expression)}html pre.shiki code .sTzsn, html code.shiki .sTzsn{--shiki-light:var(--kaab-code-foreground);--shiki-default:var(--kaab-code-foreground);--shiki-dark:var(--kaab-code-foreground)}html pre.shiki code .sqn18, html code.shiki .sqn18{--shiki-light:var(--kaab-code-token-keyword);--shiki-default:var(--kaab-code-token-keyword);--shiki-dark:var(--kaab-code-token-keyword)}html pre.shiki code .sQm2-, html code.shiki .sQm2-{--shiki-light:var(--kaab-code-token-punctuation);--shiki-default:var(--kaab-code-token-punctuation);--shiki-dark:var(--kaab-code-token-punctuation)}html pre.shiki code .sHJIl, html code.shiki .sHJIl{--shiki-light:var(--kaab-code-token-constant);--shiki-default:var(--kaab-code-token-constant);--shiki-dark:var(--kaab-code-token-constant)}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 .sJugJ, html code.shiki .sJugJ{--shiki-light:var(--kaab-code-token-function);--shiki-default:var(--kaab-code-token-function);--shiki-dark:var(--kaab-code-token-function)}",{"title":1172,"searchDepth":1353,"depth":1353,"links":2092},[2093,2094,2098,2099,2100,2104,2105,2106,2107,2108],{"id":1031,"depth":1327,"text":1032},{"id":1058,"depth":1327,"text":1059,"children":2095},[2096,2097],{"id":1270,"depth":1353,"text":1271},{"id":1468,"depth":1353,"text":1469},{"id":1482,"depth":1327,"text":1483},{"id":1643,"depth":1327,"text":1644},{"id":1737,"depth":1327,"text":1738,"children":2101},[2102,2103],{"id":1684,"depth":1353,"text":1804},{"id":1810,"depth":1353,"text":1811},{"id":1009,"depth":1327,"text":1817},{"id":1831,"depth":1327,"text":1832},{"id":1906,"depth":1327,"text":1907},{"id":1984,"depth":1327,"text":1985},{"id":2026,"depth":1327,"text":155},false,null,"What a job costs, how credits are reserved and settled, the pools they come from, running out, plans, packs, auto-recharge and overage.","md",{},true,"\u002Fconcepts\u002Fcredits-and-billing",{"title":56,"description":2111},"2.concepts\u002F10.credits-and-billing","-VaZFfElBnZsvaJh1fU5UdCjyzKBvHMtzNpZItjPPhY",[2120,2124],{"title":53,"path":2121,"stem":2122,"description":2123,"children":-1},"\u002Fconcepts\u002Fvalidation-and-warnings","2.concepts\u002F09.validation-and-warnings","How Kaabist turns page text into typed values, what it does when a value is missing or unreadable, and every warning a job can carry.",{"title":59,"path":2125,"stem":2126,"description":2127,"children":-1},"\u002Fconcepts\u002Flimits","2.concepts\u002F11.limits","Request rates, concurrent jobs, test-mode quotas, per-job budgets and plan gates: every limit Kaabist applies, and the error each one answers with.",1793593412645]