dynamic-api-integration
Enables dynamic discovery and integration of external HTTP APIs using OpenAPI specs, enhancing agent capabilities for real-time data retrieval.
Install this skill
Security score
The dynamic-api-integration skill was audited on May 12, 2026 and we found 53 security issues across 3 threat categories, including 3 critical. Review the findings below before installing.
Categories Tested
Security Issues
Template literal with variable interpolation in command context
| 351 | console.log(\`\${i+1}. \${item.title} — \${item.description?.substring(0, 80)}\`); |
Template literal with variable interpolation in command context
| 358 | ```bash |
Piping content to bash shell
| 306 | | Need raw JSON for further processing | Bash (curl) | Full control, parseable output | |
Piping content to bash shell
| 308 | | Need to check HTTP status codes | Bash (curl) | WebFetch abstracts status away | |
Piping content to bash shell
| 309 | | Large response (>50KB) | Bash (curl) + truncate | WebFetch may timeout on large pages | |
Curl to non-GitHub URL
| 216 | curl -s -X GET "https://api.example.com/data?q=test" \ |
Curl to non-GitHub URL
| 223 | curl -s -X GET "https://api.example.com/data" \ |
Curl to non-GitHub URL
| 230 | curl -s -X GET "https://api.example.com/data" \ |
Curl to non-GitHub URL
| 237 | curl -s -X GET "https://api.example.com/data?q=test" |
Curl to non-GitHub URL
| 245 | curl -s -X GET "https://api.example.com/search?q=test&limit=10&page=1" \ |
Curl to non-GitHub URL
| 253 | curl -s -X POST "https://api.example.com/items" \ |
Curl to non-GitHub URL
| 262 | curl -s -X PUT "https://api.example.com/items/123" \ |
Curl to non-GitHub URL
| 271 | curl -s -X DELETE "https://api.example.com/items/123" \ |
Curl to non-GitHub URL
| 283 | RESPONSE=$(curl -s -w "\n%{http_code}" -X GET "https://api.example.com/search?q=test" \ |
Curl to non-GitHub URL
| 451 | curl -s -X GET "https://api.github.com/users/octocat/repos?sort=updated&per_page=5" \ |
Curl to non-GitHub URL
| 499 | curl -s -X GET "https://openlibrary.org/search.json?q=george+orwell&limit=5" \ |
Curl to non-GitHub URL
| 507 | curl -s https://jsonplaceholder.typicode.com/posts?_limit=5 |
Curl to non-GitHub URL
| 510 | curl -s -X POST https://jsonplaceholder.typicode.com/posts \ |
Curl to non-GitHub URL
| 519 | curl -s "https://api.open-meteo.com/v1/forecast?latitude=51.5074&longitude=-0.1278¤t_weather=true" |
Curl to non-GitHub URL
| 541 | curl -s "https://api.example.com/search?q=test" | node -e " |
External URL reference
| 34 | This skill teaches agents how to dynamically discover, parse, and call external HTTP APIs at runtime. It is adapted from the [Universal Tool Calling Protocol (UTCP)](https://www.utcp.io/) patterns, tr |
External URL reference
| 80 | url: "https://api.example.com/openapi.json", |
External URL reference
| 99 | - `https://api.example.com/openapi.json` |
External URL reference
| 100 | - `https://api.example.com/swagger.json` |
External URL reference
| 101 | - `https://api.example.com/v3/api-docs` |
External URL reference
| 102 | - `https://api.example.com/.well-known/openapi.json` |
External URL reference
| 103 | - `https://api.example.com/docs` (HTML page may link to spec) |
External URL reference
| 113 | "base_url": "https://openlibrary.org/search.json", |
External URL reference
| 216 | curl -s -X GET "https://api.example.com/data?q=test" \ |
External URL reference
| 223 | curl -s -X GET "https://api.example.com/data" \ |
External URL reference
| 230 | curl -s -X GET "https://api.example.com/data" \ |
External URL reference
| 237 | curl -s -X GET "https://api.example.com/data?q=test" |
External URL reference
| 245 | curl -s -X GET "https://api.example.com/search?q=test&limit=10&page=1" \ |
External URL reference
| 253 | curl -s -X POST "https://api.example.com/items" \ |
External URL reference
| 262 | curl -s -X PUT "https://api.example.com/items/123" \ |
External URL reference
| 271 | curl -s -X DELETE "https://api.example.com/items/123" \ |
External URL reference
| 283 | RESPONSE=$(curl -s -w "\n%{http_code}" -X GET "https://api.example.com/search?q=test" \ |
External URL reference
| 296 | url: 'https://api.example.com/search?q=test', |
External URL reference
| 403 | Call: GET https://openlibrary.org/search.json?q=1984+george+orwell&limit=5 |
External URL reference
| 407 | Call: GET https://openlibrary.org/works/OL1168083W.json |
External URL reference
| 419 | Call: GET https://api.github.com/repos/facebook/react/issues?state=open&per_page=10&sort=created |
External URL reference
| 432 | Call: GET https://newsapi.org/v2/everything?q=AI+safety&sortBy=publishedAt&pageSize=5 |
External URL reference
| 451 | curl -s -X GET "https://api.github.com/users/octocat/repos?sort=updated&per_page=5" \ |
External URL reference
| 462 | "base_url": "https://api.github.com/users/{username}/repos", |
External URL reference
| 499 | curl -s -X GET "https://openlibrary.org/search.json?q=george+orwell&limit=5" \ |
External URL reference
| 507 | curl -s https://jsonplaceholder.typicode.com/posts?_limit=5 |
External URL reference
| 510 | curl -s -X POST https://jsonplaceholder.typicode.com/posts \ |
External URL reference
| 519 | curl -s "https://api.open-meteo.com/v1/forecast?latitude=51.5074&longitude=-0.1278¤t_weather=true" |
External URL reference
| 541 | curl -s "https://api.example.com/search?q=test" | node -e " |
External URL reference
| 634 | - [Universal Tool Calling Protocol (UTCP)](https://www.utcp.io/) — open standard for AI agent tool calling |
External URL reference
| 637 | - [OpenAPI Specification 3.1](https://spec.openapis.org/oas/v3.1.0.html) — API description standard |
External URL reference
| 638 | - [OpenAPI Best Practices](https://learn.openapis.org/best-practices.html) — community guidelines |
External URL reference
| 640 | - [API Integration Patterns (2026)](https://composio.dev/blog/apis-ai-agents-integration-patterns) — pattern taxonomy |