About superior-api-security
Superior API Security is a security skill for API development and review. It helps select server-side controls based on actual callers, resources, and deployment paths, while preserving documented contracts and requiring verification at the effective enforcement boundary.
Key features
- 01Map API callers and trust boundaries
- 02Choose authentication and authorization controls by risk
- 03Design rate limits and abuse controls deliberately
- 04Handle errors and telemetry safely
- 05Verify protections with threat-driven tests
Use cases
- 01Review API identity checks and resource authorization
- 02Plan rate limits for costly operations
- 03Check responses and logs for sensitive disclosures
- 04Plan security-control tests and deployment verification
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ kodekateam/ superior-skills --skill superior-api-securityAfter installing, type/superior-api-securityin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/api-security-controls.mdrate-limiting-and-abuse-controls.mdsecurity-verification.mdsession-token-and-webhook-security.mdDetails
From the project READMESuperior API Security
Protect the API at the server-side trust boundary while preserving its documented contract. Base controls on the actual actors, resources, business impact, deployment topology, and existing security architecture; do not add security middleware by checklist alone.
Establish the security contract
Before changing code, identify:
- exposed operations, versions, and consumers;
- public, authenticated, privileged, internal, webhook, and machine-to-machine callers;
- sensitive resources, properties, actions, and business flows;
- where identity is established and where authorization is enforced;
- proxies, gateways, caches, queues, third-party services, and outbound network access;
- expected traffic, burst behavior, payload size, operation cost, and failure tolerance;
- security controls already owned by infrastructure versus the application.
Trace the effective request path. Do not assume a gateway, framework default, or client-side check enforces the requirement until configuration and behavior prove it.
Select controls from risk
Read references/api-security-controls.md for authentication, object/function/property authorization, input and output boundaries, resource consumption, sensitive business flows, SSRF, browser-facing controls, errors, secrets, inventory, and third-party API consumption.
Prioritize controls that prevent a caller from:
- acting as another identity or outside its granted scope;
- reading or mutating another subject's object;
- setting or receiving properties it is not allowed to access;
- invoking privileged operations or skipping workflow invariants;
- exhausting compute, storage, bandwidth, paid integrations, or scarce inventory;
- making the server contact an unintended destination;
- learning sensitive internals through responses, logs, timing, or metadata.
Preserve maintained identity, cryptography, schema-validation, and secret-management libraries. Do not invent token formats, signing schemes, password storage, or encryption protocols.
Read references/session-token-and-webhook-security.md when sessions, bearer tokens, refresh or reset credentials, API keys, signed webhooks, key rotation, revocation, or replay resistance are in scope.
Apply rate and abuse controls deliberately
Read references/rate-limiting-and-abuse-controls.md whenever rate limiting, throttling, quotas, concurrency limits, credential attacks, scraping, spam, enumeration, costly operations, or sensitive business-flow automation is in scope.
A useful limit defines all of the following:
- the operation and harm being controlled;
- the identity dimensions used for accounting;
- sustained allowance, burst allowance, concurrency, and cost weighting;
- where counters live and how distributed instances coordinate;
- behavior when the limiter or counter store fails;
- the rejection contract, observability, exemptions, and recovery path;
- tests proving both enforcement and legitimate burst tolerance.
An IP-only request count is rarely sufficient for authenticated or distributed abuse. Request rate also does not bound payload size, query complexity, batch size, execution time, downstream cost, or concurrent work.
Keep responses and telemetry safe
- Use established HTTP semantics and the project's error schema. Return
429 Too Many Requestsfor an application-level rate rejection and includeRetry-Afterwhen a meaningful retry time is known. - Give clients stable, actionable error identifiers without exposing stack traces, secrets, queries, internal hostnames, token contents, or authorization policy details.
- Log security-relevant outcomes with request or trace correlation, actor and tenant identifiers where permitted, control decisions, and sanitized reason codes.
- Do not log credentials, session tokens, API keys, raw authorization headers, password-reset artifacts, or unnecessary sensitive payloads.
- Separate client-visible detail from diagnostic detail and follow the repository's privacy and retention rules.
Verify before claiming protection
Read references/security-verification.md for a threat-driven test matrix, including negative authorization, token validation, schema mutation, resource limits, limiter behavior, concurrency, SSRF, error disclosure, and proxy-boundary checks.
Security completion requires evidence at the effective enforcement point. Run the narrowest meaningful automated tests plus configuration or integration checks that exercise the deployed path. For design-only work, label tests as a proposed verification plan rather than evidence of protection. Report controls enforced elsewhere, assumptions not verified, rollout risk, and monitoring needed after release.
Combine skills narrowly
- Use
superior-code-reviewwhen security is one risk area in a broader diff, branch, or pull-request review. - Use
superior-logicwhen the work also changes business invariants, persistence, transactions, idempotency, or domain behavior. - Use
superior-databasewhen enforcement depends on tenant-scoped schema, constraints, query ownership, indexes, migrations, or sensitive-data storage. - Use
superior-performancewhen security-related resource controls require representative capacity, latency, or saturation measurement. - Use
superior-deliverywhen the security boundary is owned by pipeline identity, artifact provenance, publication, or deployment credentials. - Use
superior-reliabilitywhen abuse, dependency failure, or recovery must preserve an explicit availability objective. - Use
superior-testingwhen negative-security fixtures, isolation, concurrency, or deployed-boundary test design is a primary concern. - Use
superior-docswhen the security model, public contract, operational configuration, or incident-relevant procedure changes durably. - Use
superior-leanto avoid unnecessary security machinery, but never simplify away a control required by the identified risk.
Do not broaden a security review into unrelated penetration testing, infrastructure changes, or production traffic experiments without explicit authorization.