Skip to content

feat(catalog): add Muapi as an AI-generation provider - #534

Open
Anil-matcha wants to merge 1 commit into
superdesigndev:mainfrom
Anil-matcha:add-muapi-provider
Open

Anil-matcha wants to merge 1 commit into
superdesigndev:mainfrom
Anil-matcha:add-muapi-provider

Conversation

@Anil-matcha

Copy link
Copy Markdown

Summary

Adds Muapi — a unified API wrapping 500+ third-party generative media models (image, video, audio) — as an API-key catalog provider, following the fast-path playbook in docs/context/guides/expanding-a-category.md.

  • oauth_providers.py: MUAPI entry, x-api-key header auth. Live-tested the bogus-key rejection against the real API (GET /api/v1/account/balance403 {"detail":"Not authorized: missing or invalid credentials", ...}) and a valid key's success response.

  • muapi.yaml: three endpoints —

    • muapi.task.get (utility): poll a prediction's status/output.
    • muapi.image-gen.flux-schnell: FLUX Schnell text-to-image.
    • muapi.video-gen.seedance-lite: ByteDance Seedance 1 Lite text-to-video.

    Both generation endpoints join onto the existing image-gen.flux-schnell.from_text / video-gen.seedance-1-lite.from_text capabilities already used by replicate.yaml, since Muapi relays the same underlying models — this merges into a real price/comparison row on the model wall instead of creating a duplicate single-provider row.

  • Request/response shapes were live-verified end to end (submit → poll → completed output) with a $0-cost sandbox key (is_test=true); pricing is Muapi's own documented per-call rate ($0.003/image; $0.10–$0.50 per 5s of video by resolution), not an observed spend.

  • Placeholder lettermark logo (web/logos/muapi.svg), registry/test additions (test_oauth_providers_m3.py, test_key_providers.py), and updated model-wall assertions in test_catalog_api.py for the two rows that are now multi-provider instead of single.

Test plan

  • uv run python scripts/catalog_validate.py — 103 provider files, 3347 endpoints, 0 errors
  • uv run --with pytest-xdist pytest -n auto -q — 4170 passed, 8 skipped (one pre-existing, unrelated failure in test_plugin.py::test_the_plugin_skill_is_not_stale reproduces on a clean main checkout too — stale generated skill file, not touched by this PR)
  • Live bogus-key rejection test against api.muapi.ai
  • Live submit/poll round-trip for both generation endpoints with a sandbox key

🤖 Generated with Claude Code

Muapi (muapi.ai) is a unified API wrapping 500+ third-party generative
media models (image, video, audio). Adds it as an API-key provider
alongside the other AI-generation relays (Replicate, reAPI, PiAPI):

- oauth_providers.py: MUAPI entry (x-api-key header auth); the
  account-balance probe was live-tested against a bogus key
  (403 "Not authorized: missing or invalid credentials") and a real
  sandbox key.
- muapi.yaml: three endpoints — a task-status poller, FLUX Schnell
  image generation, and Seedance 1 Lite text-to-video — joined onto
  the existing image-gen.flux-schnell / video-gen.seedance-1-lite
  capabilities shared with Replicate's rows, since these are the same
  underlying models reached through a different relay. Requests and
  response shapes were live-verified with a $0-cost sandbox key;
  pricing is Muapi's documented per-call rate.
- Placeholder lettermark logo, registry/test updates, and updated
  model-wall assertions in test_catalog_api.py for the newly-joined
  rows.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the area:dashboard The web dashboard / landing / tutorials label Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dashboard The web dashboard / landing / tutorials

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant