Developer Registry Name Check
Check whether a name is taken as an npm package, a PyPI project or a GitHub organisation, via each registry's official API.
social-profile-check Example
{
"username": "react"
} {
"profiles": [
{
"url": "https://www.npmjs.com/package/react",
"kind": "npm_package",
"exists": true,
"platform": "npm",
"status_code": 200
},
{
"url": "https://pypi.org/project/react/",
"kind": "pypi_project",
"exists": false,
"platform": "PyPI",
"status_code": 404
},
{
"url": "https://github.com/react",
"kind": "github_organization",
"exists": false,
"platform": "GitHub",
"status_code": 404
}
],
"username": "react",
"found_count": 1,
"unknown_count": 0,
"not_found_count": 2,
"available_platforms": [
"PyPI"
]
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
username | string | Yes | Package, project or organisation name to check (e.g. 'react', 'strale'). Company names are normalised: accents stripped, '&' becomes 'and', other punctuation and spaces become '-'. The same name is checked on every registry. |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
profiles | array | Always (present in every successful answer) |
username | string | Always (present in every successful answer) |
found_count | number | Always (present in every successful answer) |
unknown_count | number | Always (present in every successful answer) |
not_found_count | number | Always (present in every successful answer) |
available_platforms | array | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "social-profile-check",
"inputs": {
"username": "react"
},
"max_price_cents": 5
}' {
"tool": "strale_execute",
"arguments": {
"slug": "social-profile-check",
"inputs": {
"username": "react"
},
"max_price_cents": 5
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "social-profile-check",
inputs: {
"username": "react"
},
max_price_cents: 5,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="social-profile-check",
inputs={
"username": "react",
},
max_price_cents=5,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/social-profile-check?username=react' Limitations
Developer registries only; no personal profiles
Checks npm packages, PyPI projects and GitHub organisations through their official APIs. Social platforms and personal accounts, including personal GitHub, npm and PyPI profiles, are not checked.
What to do instead: To check a social handle, use that platform's official API, or ask the account owner to confirm it.
Checks registry HTTP status only
Each call checks only HTTP status through the npm, PyPI and GitHub organisation APIs, with one request per registry. It does not inspect page content or look up personal accounts.
A missing GitHub organisation does not mean the name is free
GitHub organisations and personal accounts share one namespace. A 404 from the organisations API means no organisation has the name; a personal account may still hold it, so GitHub is never listed in available_platforms.
What to do instead: Try registering the organisation on GitHub to confirm availability.
"Available" means not found, not guaranteed registrable
A 404 means no package, project or organisation was found, but does not guarantee the name can be registered. npm and PyPI can reject prohibited or similar names, and PyPI can return 404 for registered projects without releases.
What to do instead: Confirm by attempting the registration before relying on the name.
Rate limits and refusals are reported as unknown
When a registry rate-limits or refuses the request (HTTP 401/403/429) or cannot be reached, that registry's entry has exists null and a note, and is counted in unknown_count rather than treated as available.
What to do instead: Retry later for the registries reported as unknown.
Bundled checks that include it
Related tools
- Address Geocoding €0.02
- Barcode Lookup €0.05
- Container Tracking €0.05
- Country Lookup €0.02
- Country Tax Rates €0.02
- Country Trade Data €0.20