From 909b5f9993d9172ec101eb2810ceb2d1dd968d4d Mon Sep 17 00:00:00 2001 From: ata <33555998+ataniz@users.noreply.github.com> Date: Fri, 6 Nov 2026 22:39:49 +0300 Subject: [PATCH] Shell loops stop at a budget refusal, and the call budgets match the API's --- shared/api.md | 2 +- shared/cli.md | 2 +- shared/data.md | 2 +- skills/audit-discoverability/references/api.md | 2 +- skills/audit-discoverability/references/cli.md | 2 +- skills/audit-discoverability/references/data.md | 2 +- skills/design-widgets/references/api.md | 2 +- skills/design-widgets/references/cli.md | 2 +- skills/design-widgets/references/data.md | 2 +- skills/find-opening/references/api.md | 2 +- skills/find-opening/references/cli.md | 2 +- skills/find-opening/references/data.md | 2 +- skills/optimize-listing/references/api.md | 2 +- skills/optimize-listing/references/cli.md | 2 +- skills/optimize-listing/references/data.md | 2 +- skills/plugin-stack/references/api.md | 2 +- skills/plugin-stack/references/cli.md | 2 +- skills/plugin-stack/references/data.md | 2 +- skills/submit-plugin/references/api.md | 2 +- skills/submit-plugin/references/cli.md | 2 +- skills/submit-plugin/references/data.md | 2 +- skills/track-launch/references/api.md | 2 +- skills/track-launch/references/cli.md | 2 +- skills/track-launch/references/data.md | 2 +- skills/watch-competitors/references/api.md | 2 +- skills/watch-competitors/references/cli.md | 2 +- skills/watch-competitors/references/data.md | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/shared/api.md b/shared/api.md index eecbd79..f845fec 100644 --- a/shared/api.md +++ b/shared/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/shared/cli.md b/shared/cli.md index c702714..bf4611e 100644 --- a/shared/cli.md +++ b/shared/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/shared/data.md b/shared/data.md index f10f98f..19efad7 100644 --- a/shared/data.md +++ b/shared/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/audit-discoverability/references/api.md b/skills/audit-discoverability/references/api.md index eecbd79..f845fec 100644 --- a/skills/audit-discoverability/references/api.md +++ b/skills/audit-discoverability/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/audit-discoverability/references/cli.md b/skills/audit-discoverability/references/cli.md index c702714..bf4611e 100644 --- a/skills/audit-discoverability/references/cli.md +++ b/skills/audit-discoverability/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/audit-discoverability/references/data.md b/skills/audit-discoverability/references/data.md index f10f98f..19efad7 100644 --- a/skills/audit-discoverability/references/data.md +++ b/skills/audit-discoverability/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/design-widgets/references/api.md b/skills/design-widgets/references/api.md index eecbd79..f845fec 100644 --- a/skills/design-widgets/references/api.md +++ b/skills/design-widgets/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/design-widgets/references/cli.md b/skills/design-widgets/references/cli.md index c702714..bf4611e 100644 --- a/skills/design-widgets/references/cli.md +++ b/skills/design-widgets/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/design-widgets/references/data.md b/skills/design-widgets/references/data.md index f10f98f..19efad7 100644 --- a/skills/design-widgets/references/data.md +++ b/skills/design-widgets/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/find-opening/references/api.md b/skills/find-opening/references/api.md index eecbd79..f845fec 100644 --- a/skills/find-opening/references/api.md +++ b/skills/find-opening/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/find-opening/references/cli.md b/skills/find-opening/references/cli.md index c702714..bf4611e 100644 --- a/skills/find-opening/references/cli.md +++ b/skills/find-opening/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/find-opening/references/data.md b/skills/find-opening/references/data.md index f10f98f..19efad7 100644 --- a/skills/find-opening/references/data.md +++ b/skills/find-opening/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/optimize-listing/references/api.md b/skills/optimize-listing/references/api.md index eecbd79..f845fec 100644 --- a/skills/optimize-listing/references/api.md +++ b/skills/optimize-listing/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/optimize-listing/references/cli.md b/skills/optimize-listing/references/cli.md index c702714..bf4611e 100644 --- a/skills/optimize-listing/references/cli.md +++ b/skills/optimize-listing/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/optimize-listing/references/data.md b/skills/optimize-listing/references/data.md index f10f98f..19efad7 100644 --- a/skills/optimize-listing/references/data.md +++ b/skills/optimize-listing/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/plugin-stack/references/api.md b/skills/plugin-stack/references/api.md index eecbd79..f845fec 100644 --- a/skills/plugin-stack/references/api.md +++ b/skills/plugin-stack/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/plugin-stack/references/cli.md b/skills/plugin-stack/references/cli.md index c702714..bf4611e 100644 --- a/skills/plugin-stack/references/cli.md +++ b/skills/plugin-stack/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/plugin-stack/references/data.md b/skills/plugin-stack/references/data.md index f10f98f..19efad7 100644 --- a/skills/plugin-stack/references/data.md +++ b/skills/plugin-stack/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/submit-plugin/references/api.md b/skills/submit-plugin/references/api.md index eecbd79..f845fec 100644 --- a/skills/submit-plugin/references/api.md +++ b/skills/submit-plugin/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/submit-plugin/references/cli.md b/skills/submit-plugin/references/cli.md index c702714..bf4611e 100644 --- a/skills/submit-plugin/references/cli.md +++ b/skills/submit-plugin/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/submit-plugin/references/data.md b/skills/submit-plugin/references/data.md index f10f98f..19efad7 100644 --- a/skills/submit-plugin/references/data.md +++ b/skills/submit-plugin/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/track-launch/references/api.md b/skills/track-launch/references/api.md index eecbd79..f845fec 100644 --- a/skills/track-launch/references/api.md +++ b/skills/track-launch/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/track-launch/references/cli.md b/skills/track-launch/references/cli.md index c702714..bf4611e 100644 --- a/skills/track-launch/references/cli.md +++ b/skills/track-launch/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/track-launch/references/data.md b/skills/track-launch/references/data.md index f10f98f..19efad7 100644 --- a/skills/track-launch/references/data.md +++ b/skills/track-launch/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending. diff --git a/skills/watch-competitors/references/api.md b/skills/watch-competitors/references/api.md index eecbd79..f845fec 100644 --- a/skills/watch-competitors/references/api.md +++ b/skills/watch-competitors/references/api.md @@ -24,4 +24,4 @@ A ref fills `{store}/{id}`: `chatgpt:kiwi-com` is `/listings/chatgpt/kiwi-com`. Answers are always the whole JSON, about ten times the size of the rows a list needs, so keep `limit` small. -A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. +A cut returns 200. Not found is 404, budget spent is 429 and busy is 503. A shell loop has to check for 429 after each call and `break`, because `curl` exits 0 on it. The `x-openapps-budget` header says what's left: `calls-hour=264, calls-day=894, rows-day=4470`. diff --git a/skills/watch-competitors/references/cli.md b/skills/watch-competitors/references/cli.md index c702714..bf4611e 100644 --- a/skills/watch-competitors/references/cli.md +++ b/skills/watch-competitors/references/cli.md @@ -24,4 +24,4 @@ A wrong field name prints the allowed ones. When stderr says `truncated`, or a s ## Exit codes -A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. +A cut exits 0. Busy is 1 with "temporarily unavailable", not found is 3 with `Closest:` candidates, and budget spent is 4. A shell loop has to check for 4 after each call and `break`, because the shell carries on past a failed command. diff --git a/skills/watch-competitors/references/data.md b/skills/watch-competitors/references/data.md index f10f98f..19efad7 100644 --- a/skills/watch-competitors/references/data.md +++ b/skills/watch-competitors/references/data.md @@ -28,7 +28,7 @@ Budgets are per IP when signed out, and shared with the website, which holds bac | Countries | US | All | All | | Combining tags in `listings_list` | Refused | Within one group: capability tags, or job, brand and audience tags | Any | | Several apps at once | Refused | Refused | `apps`: 10 on `listings_ranks_history`, 5 on `listings_get` | -| Calls per hour, 24 hours | 300, 1,000 | 1,000, 5,000 | 5,000, 25,000 | +| Calls per hour, 24 hours | 1,000, 5,000 | 3,000, 15,000 | 5,000, 25,000 | | Rows per 24 hours | 5,000 | 25,000 | 250,000 | Each answer's `meta.tier` is the plan it was read at: `out`, `free` or `plus`, which is Pro. Keep `limit` small: a run that spends the rows locks the user out of the site too. Make the reads a step names, one at a time or in a short loop that stops at the first refusal. Don't write your own client with retries: it hides refusals and keeps spending.