feat(catalog): add Muapi as an AI-generation provider - #534
Open
Anil-matcha wants to merge 1 commit into
Open
Anil-matcha wants to merge 1 commit into
Anil-matcha wants to merge 1 commit into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:MUAPIentry,x-api-keyheader auth. Live-tested the bogus-key rejection against the real API (GET /api/v1/account/balance→403 {"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_textcapabilities already used byreplicate.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.50per 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 intest_catalog_api.pyfor 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 errorsuv run --with pytest-xdist pytest -n auto -q— 4170 passed, 8 skipped (one pre-existing, unrelated failure intest_plugin.py::test_the_plugin_skill_is_not_stalereproduces on a cleanmaincheckout too — stale generated skill file, not touched by this PR)api.muapi.ai🤖 Generated with Claude Code