Claude Code Plugins

Community-maintained marketplace

Feedback
13
0

Any time an external api needs to be understood or queried

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name api-use-external
description Any time an external api needs to be understood or queried

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 utils/imdb_core.py using RapidAPI-based providers.
    • Core function families include imdb_details_fetch_core, imdb_search_core, imdb_rating_core, imdb_import_core, imdb_api_search_title, and imdb_api_get_details.
  • Provider configuration switches are defined in config.py:
    • MEDIA_ENABLE_IMDB = True must remain enabled.

Base API provider

  • utils/api_provider_core.py defines BaseApiProvider for all external HTTP APIs.
  • 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

  • utils/api_provider_descriptors.py defines configuration descriptors for each external API.
  • 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 TokenCache for automatic token refresh and caching where needed.

Core vs presentation for APIs

  • Core API logic belongs in utils/*_core.py modules that use BaseApiProvider and descriptors.
  • Flask-aware presentation logic belongs in routes/utils_*.py modules that call core functions.
  • Keep API core code free of Flask imports and request context.

Docs and examples

  • IMDb primary API: utils/imdb-01-docs.md (IMDb236 API)
  • IMDb fallback API: utils/imdb-02-docs.md (IMDb8 API)

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 templates/admin, JavaScript under static/js, and utilities under utils/api_tvdb and 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:
    • MEDIA_ENABLE_TVDB = False must stay disabled for now.
    • MEDIA_ENABLE_TMDB = False must stay disabled for now.