Claude-skill-registry api-use-external
Any time an external api needs to be understood or queried
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/api-use-external" ~/.claude/skills/majiayu000-claude-skill-registry-api-use-external && rm -rf "$T"
manifest:
skills/data/api-use-external/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- references .env files
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
External API use
Includes how to query and process the current existing external APIs:
- IMDb Primary API.
- IMDb Fallback API - To be used when IMDb primary API times out or is otherwise unreachable.
Index
- API configuration:
- API provider framework:
- Docs and examples: documenation, endpoints, and request/response examples for both IMDb Primary API and IMDb Fallback API.
API configuration
- All API settings such as keys, base URLs, and timeouts come from
.config.py - API credentials and other secrets come from
..env
API provider framework
API integration
- IMDb integration must remain active and fully operational.
- Core implementation is in
using RapidAPI-based providers.utils/imdb_core.py - Core function families include
,imdb_details_fetch_core
,imdb_search_core
,imdb_rating_core
,imdb_import_core
, andimdb_api_search_title
.imdb_api_get_details
- Core implementation is in
- Provider configuration switches are defined in
:config.py
must remain enabled.MEDIA_ENABLE_IMDB = True
Base API provider
definesutils/api_provider_core.py
for all external HTTP APIs.BaseApiProvider- Handles HTTP requests, authentication, token management, error handling, and response normalization.
- Stateless by design with no Flask context; safe to use in core modules.
- Includes retry strategy and standardized response format.
- Use this class instead of creating custom HTTP client code per API.
Provider descriptors
defines configuration descriptors for each external API.utils/api_provider_descriptors.py- New providers should be added by defining a descriptor in this module, not by creating new ad-hoc client modules.
- Descriptors capture base URL, authentication strategy, header builders, and normalization callbacks.
- Supports bearer tokens, API keys, and static tokens.
- Includes
for automatic token refresh and caching where needed.TokenCache
Core vs presentation for APIs
- Core API logic belongs in
modules that use BaseApiProvider and descriptors.utils/*_core.py - Flask-aware presentation logic belongs in
modules that call core functions.routes/utils_*.py - Keep API core code free of Flask imports and request context.
Docs and examples
- IMDb primary API:
(IMDb236 API)utils/imdb-01-docs.md - IMDb fallback API:
(IMDb8 API)utils/imdb-02-docs.md
Legacy unused but saved
Do not use or enable but do save:
- TVDB and TMDB are not currently enabled in the application.
- Supporting code and tests exist but must remain disabled unless explicitly authorized.
- Residual assets include templates under
, JavaScript undertemplates/admin
, and utilities understatic/js
andutils/api_tvdb
.utils/api_tmdb - Runtime disabling is enforced in routes and config.
- Presence does not imply enablement; do not enable or delete them without approval.
- Provider configuration switches are defined in
:config.py
must stay disabled for now.MEDIA_ENABLE_TVDB = False
must stay disabled for now.MEDIA_ENABLE_TMDB = False