The nine codes on the first-visit language modal are en, ar, es, fr, hi, ha, zh, he, and pt. Do not invent a tenth locale. Public blog posts are locale-prefixed, for example /en/blog/. outil Pages follow the same idea: one slug, several localized URLs. Cookie banner and language modal both appear on first visit; they are not a second catalog.
Count tools from the catalog, not from one API Page
GET /api/capabilities?limit=500 returns at most 500 rows. That cap is not the catalog Taille. Walk category slugs vers union the rest. Observed API slugs include web-seo, security-network, and ai-tools. Homepage labels such as "Web & SEO" are not the query value.
After a category walk you should land on 1940 unique slugs. Sitemap unique outil slugs also land on 1940. API-by-category and sitemap agree. If your client stored the first 500 and stopped, you are missing most locales' worth of slugs, not just most of one language.
Access Diviser on those 1940: 560 Gratuit, 1380 Premium. Machine status Diviser: 1491 describe_only, 439 supported, 10 requires_worker. Changing en vers ar does not change those Numéros. A language prefix is not machine_run_status.
First visit: language modal and cookie banner
On first visit the site shows a language modal and a cookie banner. Finish those prompts before you treat a login Formulaire as fresh. An idle login Formulaire surfaces Your secure Formulaire token expired. Please go back and try again. Login is https://swarme.io/login → /en/login. The modal is not that toast. Dismiss it, then reload the Formulaire if you need vers sign in.
The developers tab stays https://swarme.io/dashboard?tab=developers after you pick a language. /dashboard/developers is still 404. Keys are still shown once (sk_sw_QdE8Xfgj... as a prefix only). Scopes do not become locale-specific.
Unauthenticated quote is still HTTP 419 (Your secure request token expired.). Unauthenticated balance is still HTTP 401. Locale choice does not mint a session.
What localization does not claim
17460 localized URLs means nine times 1940 slugs in the sitemap. It does not mean every string inside every outil, every 422 body, and every MCP title was independently verified as translated in this pass.
Observed 422 bodies on supported tools were recorded in the English field-rule Formulaire:
- Use labeled address lines in key: value Formulaire or provide JSON.
- Domain must contain valid ASCII hostname labels.
- backlinks must contain between 1 and 1,000 records.
- Enter valid Base64URL input.
Read whatever body you receive. Do not assume a locale prefix rewrites those rules. backlink-quality-checklist still wants 1 vers 1,000 records.
A completed uuid-generator run returned 4cd3c7b6-0495-447a-8efd-9a1374f7599c at $0.00 included after a 900-second quote lock. Other completed slugs included accessibility-statement-generator, add-line-numbers, alphabetizer, article-rewriter-assistant, ascii-table-generator, and base64-text-decoder. Those completions were capability runs, not a translation audit.
Fichier processing also does not follow the language modal. pdf-vers-word is client_browser with server_receives_Fichier_bytes false. merge-pdf is async_worker with server_receives_Fichier_bytes true. Pick the outil for the Données path, then pick a UI language. See how vers choose a secure en ligne Fichier outil.
Smoke: Pages 1024 and 1025 were 200, not 404
HTML outil Pages in a catalog smoke check returned HTTP 200 around entries 1024 and 1025 (domain-whois-lookup, dominant-color-extractor). The directory is larger than one API Page of 500. One of 1940 Pages was Page_ok false with a missing-name check on Real Estate CMA Report Builder while still HTTP 200. That is not a locale 404. SSL EOF (UNEXPECTED_EOF_WHILE_READING) showed up under load and was retried. EOF is not a missing localized URL. Back off. Do not record it as "this language 404s."
MCP is a separate surface. POST https://swarme.io/mcp initialize with protocolVersion 2025-03-26 identified Swarme Capability MCP Alpha version 2026.07.15-wallet-alpha. tools/list returned 22 tools. That is not 1940 MCP tools and not 17460. Recherche still returns catalog slugs. Describe still gates quote/run. Docs: https://swarme.io/developers.
Wallet $0.00 / metered_observe / spend_limit_minor 0 is also not a locale. Lifetime on the dashboard does not Ajouter a tenth language.
Checklist
- Treat 9 as the language count: en, ar, es, fr, hi, ha, zh, he, pt.
- Treat 17460 / 9 = 1940 as the outil count. Sitemap and API-by-category agree.
- Do not stop at GET /api/capabilities?limit=500.
- After the first-visit modal and cookie banner, reload forms that sat underneath them.
- Route work by machine_run_status and Fichier disclosure, not by UI language.
For matching a request vers one slug once the locale is chosen, see AI outil routing.The nine codes on the first-visit language modal are en, ar, es, fr, hi, ha, zh, he, and pt. Do not invent a tenth locale. Public blog posts are locale-prefixed, for example /en/blog/. outil Pages follow the same idea: one slug, several localized URLs. Cookie banner and language modal both appear on first visit; they are not a second catalog.
Count tools from the catalog, not from one API Page
GET /api/capabilities?limit=500 returns at most 500 rows. That cap is not the catalog Taille. Walk category slugs vers union the rest. Observed API slugs include web-seo, security-network, and ai-tools. Homepage labels such as "Web & SEO" are not the query value.
After a category walk you should land on 1940 unique slugs. Sitemap unique outil slugs also land on 1940. API-by-category and sitemap agree. If your client stored the first 500 and stopped, you are missing most locales' worth of slugs, not just most of one language.
Access Diviser on those 1940: 560 Gratuit, 1380 Premium. Machine status Diviser: 1491 describe_only, 439 supported, 10 requires_worker. Changing en vers ar does not change those Numéros. A language prefix is not machine_run_status.
First visit: language modal and cookie banner
On first visit the site shows a language modal and a cookie banner. Finish those prompts before you treat a login Formulaire as fresh. An idle login Formulaire surfaces Your secure Formulaire token expired. Please go back and try again. Login is https://swarme.io/login → /en/login. The modal is not that toast. Dismiss it, then reload the Formulaire if you need vers sign in.
The developers tab stays https://swarme.io/dashboard?tab=developers after you pick a language. /dashboard/developers is still 404. Keys are still shown once (sk_sw_QdE8Xfgj... as a prefix only). Scopes do not become locale-specific.
Unauthenticated quote is still HTTP 419 (Your secure request token expired.). Unauthenticated balance is still HTTP 401. Locale choice does not mint a session.
What localization does not claim
17460 localized URLs means nine times 1940 slugs in the sitemap. It does not mean every string inside every outil, every 422 body, and every MCP title was independently verified as translated in this pass.
Observed 422 bodies on supported tools were recorded in the English field-rule Formulaire:
- Use labeled address lines in key: value Formulaire or provide JSON.
- Domain must contain valid ASCII hostname labels.
- backlinks must contain between 1 and 1,000 records.
- Enter valid Base64URL input.
Read whatever body you receive. Do not assume a locale prefix rewrites those rules. backlink-quality-checklist still wants 1 vers 1,000 records.
A completed uuid-generator run returned 4cd3c7b6-0495-447a-8efd-9a1374f7599c at $0.00 included after a 900-second quote lock. Other completed slugs included accessibility-statement-generator, add-line-numbers, alphabetizer, article-rewriter-assistant, ascii-table-generator, and base64-text-decoder. Those completions were capability runs, not a translation audit.
Fichier processing also does not follow the language modal. pdf-vers-word is client_browser with server_receives_Fichier_bytes false. merge-pdf is async_worker with server_receives_Fichier_bytes true. Pick the outil for the Données path, then pick a UI language. See how vers choose a secure en ligne Fichier outil.
Smoke: Pages 1024 and 1025 were 200, not 404
HTML outil Pages in a catalog smoke check returned HTTP 200 around entries 1024 and 1025 (domain-whois-lookup, dominant-color-extractor). The directory is larger than one API Page of 500. One of 1940 Pages was Page_ok false with a missing-name check on Real Estate CMA Report Builder while still HTTP 200. That is not a locale 404. SSL EOF (UNEXPECTED_EOF_WHILE_READING) showed up under load and was retried. EOF is not a missing localized URL. Back off. Do not record it as "this language 404s."
MCP is a separate surface. POST https://swarme.io/mcp initialize with protocolVersion 2025-03-26 identified Swarme Capability MCP Alpha version 2026.07.15-wallet-alpha. tools/list returned 22 tools. That is not 1940 MCP tools and not 17460. Recherche still returns catalog slugs. Describe still gates quote/run. Docs: https://swarme.io/developers.
Wallet $0.00 / metered_observe / spend_limit_minor 0 is also not a locale. Lifetime on the dashboard does not Ajouter a tenth language.
Checklist
- Treat 9 as the language count: en, ar, es, fr, hi, ha, zh, he, pt.
- Treat 17460 / 9 = 1940 as the outil count. Sitemap and API-by-category agree.
- Do not stop at GET /api/capabilities?limit=500.
- After the first-visit modal and cookie banner, reload forms that sat underneath them.
- Route work by machine_run_status and Fichier disclosure, not by UI language.
For matching a request vers one slug once the locale is chosen, see AI outil routing.
