rapidapi

PassAudited by VirusTotal on May 11, 2026.

Overview

Type: OpenClaw Skill Name: rapidapi Version: 0.1.0 The skill functions as a universal RapidAPI client but contains risky credential-handling logic. Specifically, lib/engine.js is designed to attach the 'X-RapidAPI-Key' to requests, and while it includes a host-validation check, the 'allowNonRapidApiHosts' setting (which defaults to true in index.js and config.example.json) allows the sensitive API key to be sent to any arbitrary host provided in the input. While no clear evidence of intentional malice or hardcoded exfiltration endpoints was found, the capability to direct credentials to non-RapidAPI infrastructure via user-controlled or agent-controlled input poses a high risk of accidental or forced credential leakage.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Your RapidAPI key could be disclosed to an unintended HTTPS host or used against APIs you did not mean to authorize.

Why it was flagged

The request destination is derived from input.host, and the RapidAPI key is attached to that request. With the skill's default non-RapidAPI host allowance, a mistaken or manipulated direct call can send the key outside the intended provider boundary.

Skill content
const url = new URL(`https://${input.host}${input.path}`); ... "X-RapidAPI-Key": rapidApiKey, "X-RapidAPI-Host": input.host
Recommendation

Default to an explicit host allowlist or set allowNonRapidApiHosts=false where possible, and require user approval before calling any new host.

What this means

An agent could make POST, PUT, DELETE, or other mutation-capable requests to third-party APIs using your RapidAPI key if prompted or misled.

Why it was flagged

The engine executes caller-selected HTTP methods and bodies through fetch. This broad escape-hatch bypasses the safer template action flow and can perform state-changing API calls.

Skill content
const method = (input.method || "GET").toUpperCase(); ... response = await fetch(url.toString(), { method, headers, body, signal: controller.signal });
Recommendation

Restrict the direct entrypoint, implement a method allowlist, prefer reviewed templates, and require explicit confirmation for non-GET or non-template calls.

What this means

Users may believe stronger safety controls are enforced than the supplied code actually provides.

Why it was flagged

The README presents these as security defaults, but the provided engine accepts the caller's method and does not show a body-size check; only the timeout limit is clearly implemented.

Skill content
- Method allow-list
- Body size and timeout limits
Recommendation

Either implement the documented method and body-size limits or update the documentation to accurately describe the real safeguards and defaults.