{
  "data": {
    "a": {
      "slug": "luma",
      "name": "Luma AI API",
      "vendor": "Luma AI",
      "vendorUrl": "https://lumalabs.ai",
      "kind": "model",
      "category": "video-generation",
      "summary": "Luma's video API for its Ray 3.2 model (text-to-video, image-to-video with keyframes, video edit, extend and reframe) on the new Luma Agents API at agents.lumalabs.ai.",
      "url": "https://www.anchorterminal.com/tools/luma",
      "markdownUrl": "https://www.anchorterminal.com/tools/luma.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/luma.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/luma.json",
      "dns": "luma.grade.anchorterminal.com",
      "repo": "https://github.com/lumalabs/luma-agents-python",
      "license": "Apache-2.0 (SDKs)",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://agents.lumalabs.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "luma-agents"
        },
        {
          "registry": "npm",
          "name": "luma-agents"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer key (prefix luma-api-) created in the Luma API Platform (platform.lumalabs.ai). Keys are shown once. Quota and rate limits are per client, shared by all its keys.",
      "pricing": "usage",
      "pricingNotes": "Pay-as-you-go in credits with no minimum spend. Luma's published list rate is $0.003 a credit, and the dollar rate can differ by plan or contract. Ray 3.2 standard video is 20, 50, 100 or 400 credits ($0.06, $0.15, $0.30 or $1.20 at list rate) per 5 second clip at 360p draft, 540p, 720p or 1080p, and three times that for 10 seconds. HDR doubles the 5 second rate, HDR plus EXR triples it. Video edit from 180 credits per 5 seconds, reframe 10 to 120 credits per second, extend billed as one 5 second block. Video rates may change before general availability. Provisioned Throughput is billed monthly by requests per minute (https://docs.agents.lumalabs.ai/guides/pricing/).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 in the Agents API docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 982,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.agents.lumalabs.ai",
      "rateLimitsUrl": "https://docs.agents.lumalabs.ai/guides/rate-limits/",
      "capabilities": [
        "video.generate",
        "video.image-to-video",
        "video.edit",
        "video.extend"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "card-required",
        "async-jobs",
        "python",
        "typescript",
        "commercial-licence"
      ],
      "lastRelease": "2026-08-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.5,
        "grade": "D",
        "agentReady": false,
        "rank": 1058,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 47,
          "payments": 20,
          "reliability": 57,
          "schema": 53,
          "security": 53,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -2,
        "negativeNotes": [
          "-2, misleading claim. The Luma Agents API pricing page's comparison table says Pay-as-you-go has no no-train guarantee and only Provisioned Throughput plans include one, while the API Terms of Use (28 April 2026) commit that Luma won't use any API input or output to train, fine-tune or develop its models. One contradiction on the vendor's own pages, charged once, as celeris-1-decision's and rime-prism's were. https://docs.agents.lumalabs.ai/guides/pricing/ and https://lumalabs.ai/legal/api-terms-of-use"
        ],
        "verdict": "Clip prices are published per generation in credits at a $0.003 list rate, and 429s say which limit was hit. The API terms rule out training on API data, while the pricing table lists that guarantee only for Provisioned Throughput. Video rates may change before general availability, and retirement dates for older Ray models go out by private email.",
        "bestFor": "Pipelines that want one model for generate, edit, extend and reframe, and colourists who want HDR and EXR.",
        "strengths": [
          "Per-clip prices published in credits with a $0.003 list rate, $0.30 for 5 seconds at 720p",
          "429s carry Retry-After and say whether the per-minute or concurrency limit was hit",
          "API terms rule out training on API inputs and outputs",
          "A documented deletion call for generations, and a subprocessor list dated 4 October 2026",
          "Official Python, TypeScript and Go SDKs and a CLI"
        ],
        "weaknesses": [
          "Video rates are marked as subject to change before general availability",
          "Retirement dates for Ray 2 and Ray 3 go out by private email, not on a page",
          "The pricing table says Pay-as-you-go has no no-train guarantee, while the API terms say API data isn't used for training",
          "Rate-limit numbers only in the dashboard, no OpenAPI file or llms.txt, and no API changelog",
          "No SDK release since 5 August 2026, and the deletion routes aren't in the SDKs"
        ],
        "agentNotes": [
          "Send model `ray-3.2` and type `video`, with resolution and duration inside `video`. Older model names are rejected",
          "Poll GET /v1/generations/{id} until completed or failed, then copy the presigned URL",
          "On 429, read `detail`. Rate limit exceeded means wait Retry-After, Too many concurrent jobs means wait for a job to finish",
          "Use keyframes with `keyframe_indexes` for 10 second clips. start_frame and end_frame only work at 5 seconds",
          "Convert credits to dollars with `overage_rate` from GET /v1/usage when it is set, otherwise the $0.003 list rate"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.5
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 47,
          "payments": 20,
          "reliability": 57,
          "schema": 53,
          "security": 53,
          "transparency": 55
        },
        "provenanceScore": 78,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install luma-agents   # or: npm i luma-agents",
        "http": "curl -X POST https://agents.lumalabs.ai/v1/generations \\\n  -H \"Authorization: Bearer $LUMA_AGENTS_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"model\":\"ray-3.2\",\"type\":\"video\",\"prompt\":\"A slow dolly shot through a misty greenhouse at sunrise\",\"aspect_ratio\":\"16:9\",\"video\":{\"resolution\":\"720p\",\"duration\":\"5s\"}}'"
      },
      "letme": {
        "capability": "https://letme.dev/video.generate",
        "tool": "https://letme.dev/luma"
      },
      "area": "content",
      "unitPrices": [
        {
          "item": "Ray 3.2 720p",
          "unit": "video-second",
          "usd": 0.06,
          "note": "$0.30 per 5 second clip. 10 seconds is $0.90"
        },
        {
          "item": "Ray 3.2 1080p",
          "unit": "video-second",
          "usd": 0.24,
          "note": "$1.20 per 5 second clip. 10 seconds is $3.60"
        },
        {
          "item": "Ray 3.2 540p",
          "unit": "video-second",
          "usd": 0.03,
          "note": "$0.15 per 5 second clip"
        },
        {
          "item": "Ray 3.2 1080p HDR",
          "unit": "video-second",
          "usd": 0.48,
          "note": "$2.40 per 5 second clip"
        },
        {
          "item": "Ray 3.2 video edit 720p",
          "unit": "video-second",
          "usd": 0.216,
          "note": "$1.08 per 5 seconds"
        },
        {
          "item": "Ray 3.2 reframe 1080p",
          "unit": "video-second",
          "usd": 0.36
        }
      ],
      "provenance": {
        "legalEntity": "Luma AI, Inc.",
        "domain": "lumalabs.ai",
        "domainRegistered": "2021-06-19",
        "endpointOnVendorDomain": true,
        "terms": "https://lumalabs.ai/legal/tos",
        "privacy": "https://lumalabs.ai/legal/privacy",
        "statusPage": "https://status.lumalabs.ai",
        "changelog": "https://docs.lumalabs.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The changelog is on the legacy docs site. The new Agents API docs have no changelog page"
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/luma.json",
      "live": {
        "slug": "luma",
        "probe": {
          "target": "https://agents.lumalabs.ai/v1",
          "method": "get",
          "lastAt": "2026-11-08T00:55:49.814221739Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 446,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 73.96,
          "p50ms24h": 372,
          "p95ms24h": 483,
          "samples24h": 244,
          "samples30d": 7704,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 0
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 0
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 0
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 0
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 0
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 3
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 243,
              "ok": 243
            },
            {
              "date": "2026-11-08",
              "probes": 10,
              "ok": 10
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.lumalabs.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-08T00:31:35.985662419Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "lumalabs/luma-agents-python",
            "version": "v0.5.0",
            "released": "2026-08-05",
            "seenAt": "2026-11-06T23:41:34.567584886Z"
          },
          {
            "registry": "npm",
            "name": "luma-agents",
            "version": "0.1.2",
            "seenAt": "2026-11-06T23:41:32.824231599Z"
          },
          {
            "registry": "pypi",
            "name": "luma-agents",
            "version": "0.5.0",
            "released": "2026-08-05",
            "seenAt": "2026-11-06T23:41:32.514698179Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 2150,
        "pypiWeekly": 1074,
        "securityTxt": {
          "url": "https://lumalabs.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:52.063089676Z"
        },
        "domain": {
          "domain": "lumalabs.ai",
          "registered": "2021-06-19",
          "source": "https://rdap.identitydigital.services/rdap/domain/lumalabs.ai",
          "checkedAt": "2026-11-01T14:22:31.559622877Z"
        },
        "pages": [
          {
            "url": "https://docs.lumalabs.ai/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:53.750765224Z",
            "changedAt": "2026-10-13T20:15:10.827350564Z",
            "fingerprint": "d4e54b2878ea"
          },
          {
            "url": "https://docs.agents.lumalabs.ai/guides/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:04:57.291736322Z",
            "changedAt": "2026-10-27T03:43:09.912861947Z",
            "fingerprint": "86de33886b1b"
          },
          {
            "url": "https://lumalabs.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:35.89659717Z",
            "changedAt": "2026-11-06T13:35:40.124281462Z",
            "fingerprint": "ce1f62b9bf85"
          },
          {
            "url": "https://lumalabs.ai/legal/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:13:38.269199244Z",
            "changedAt": "2026-11-06T13:35:43.175451416Z",
            "fingerprint": "6d53fe4a16f9"
          }
        ],
        "github": {
          "repo": "lumalabs/luma-agents-python",
          "checkedAt": "2026-11-02T09:01:57.081936683Z",
          "stars": 2,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-09-17T22:09:08Z",
          "openIssues": 0,
          "openPRs": 1,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 1,
          "ci": {
            "branch": "main",
            "runs": 6,
            "success": 6,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-08-05T00:47:23Z"
          }
        },
        "updatedAt": "2026-11-08T00:55:49.814221739Z"
      }
    },
    "answer": "Magic Hour MCP and Luma AI API score within a point of each other on agent readiness, 50.7 (D) and 50.5 (D). Luma AI API leads on reliability, agent ergonomics, security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.",
    "b": {
      "slug": "magic-hour-mcp",
      "name": "Magic Hour MCP",
      "vendor": "Magic Hour AI, Inc.",
      "vendorUrl": "https://magichour.ai",
      "kind": "mcp",
      "category": "video-generation",
      "summary": "Magic Hour MCP is a hosted server with 50 tools that create and edit images and video, from text-to-video, lip sync and face swap to upscaling, subtitles and music, billed in Magic Hour credits.",
      "url": "https://www.anchorterminal.com/tools/magic-hour-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/magic-hour-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/magic-hour-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/magic-hour-mcp.json",
      "dns": "magic-hour-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/magichourhq/magic-hour-mcp",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.magichour.ai/",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Tool discovery is public. Calls need a Magic Hour API key as a Bearer token (Claude Code, Codex CLI, Manus), or OAuth sign-in through the Claude and ChatGPT connectors.",
      "pricing": "freemium",
      "pricingNotes": "Paid plans from $12 a month billed yearly ($19 monthly) with 144,000 credits a year and API access; one-time credit packs without a subscription. A free account gets 400 sign-up credits, and some public tools work without an account; API access is listed on paid plans (checked 2026-11-07).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP docs or pricing page (checked 2026-11-07).",
        "endpoints": []
      },
      "toolCount": 50,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://docs.magichour.ai/integration/model-context-protocol",
      "llmsTxt": "https://docs.magichour.ai/llms.txt",
      "registryName": "io.github.magichourhq/magic-hour",
      "capabilities": [
        "video.generate",
        "video.image-to-video",
        "video.edit",
        "image.generate",
        "image.edit",
        "image.upscale",
        "music.generate"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "api-key",
        "oauth",
        "freemium",
        "status-page",
        "llms-txt",
        "mcp-registry",
        "annotated-tools"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.7,
        "grade": "D",
        "agentReady": false,
        "rank": 1053,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 15,
          "reliability": 35,
          "schema": 82,
          "security": 45,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "Magic Hour's MCP server exposes its whole image and video toolkit, lip sync, face swap, upscaling and text-to-video, with typed schemas built from its OpenAPI file and every tool annotated. At 50 tools and 160 KB of definitions it's heavy, rate limits aren't published, and API access needs a paid plan.",
        "bestFor": "Agents making short-form video and images, from talking photos and ads to lip-synced translations, on a credit plan.",
        "strengths": [
          "50 tools with typed JSON Schema built from the OpenAPI specification",
          "Every tool annotated; deletes marked destructive",
          "A workflow guide and wait tools for long generation jobs",
          "Prompts, uploads and outputs aren't used for training",
          "Tool discovery works without a key"
        ],
        "weaknesses": [
          "About 160 KB of tool definitions",
          "No published rate limits or error docs",
          "API access sits on paid plans",
          "Face swap and head swap tools need care with consent"
        ],
        "agentNotes": [
          "Call get_workflow_guide first to pick the right tool",
          "Use the wait_for_* tools instead of polling project status yourself",
          "Check credits with get_account_info before long video jobs",
          "Only swap faces or voices of people who consented"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.7
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 15,
          "reliability": 35,
          "schema": 82,
          "security": 45,
          "transparency": 50
        },
        "provenanceScore": 65,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-07",
            "maintenance": "2026-11-07",
            "payments": "2026-11-07",
            "reliability": "2026-11-07",
            "schema": "2026-11-07",
            "security": "2026-11-07",
            "transparency": "2026-11-07"
          },
          "last": "2026-11-07",
          "oldest": "2026-11-07",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add magic-hour --transport http https://mcp.magichour.ai/ --header \"Authorization: Bearer $MAGIC_HOUR_API_KEY\"",
        "config": {
          "mcpServers": {
            "magic-hour": {
              "headers": {
                "Authorization": "Bearer YOUR_MAGIC_HOUR_API_KEY"
              },
              "url": "https://mcp.magichour.ai/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/video.generate",
        "tool": "https://letme.dev/magic-hour-mcp"
      },
      "area": "content",
      "provenance": {
        "legalEntity": "Magic Hour AI, Inc.",
        "domain": "magichour.ai",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "https://magichour.ai/terms-of-service",
        "privacy": "https://magichour.ai/privacy-policy",
        "statusPage": "https://status.magichour.ai",
        "changelog": "https://docs.magichour.ai/changelog",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "Terms revised 3 October 2026 naming Magic Hour AI, Inc."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/magic-hour-mcp.json",
      "live": {
        "slug": "magic-hour-mcp",
        "probe": {
          "target": "https://mcp.magichour.ai/",
          "method": "mcp-initialize",
          "lastAt": "2026-11-08T00:55:50.057619643Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 133,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 163,
          "p95ms24h": 240,
          "samples24h": 63,
          "samples30d": 63,
          "days": [
            {
              "date": "2026-11-07",
              "probes": 53,
              "ok": 53
            },
            {
              "date": "2026-11-08",
              "probes": 10,
              "ok": 10
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.magichour.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-08T00:31:36.150831428Z"
        },
        "updatedAt": "2026-11-08T00:55:50.057619643Z"
      }
    },
    "edges": [
      {
        "by": 29,
        "category": "schema",
        "leads": "magic-hour-mcp",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No public OpenAPI document is linked from the docs. The API reference at /api/ is generated per method with no visible spec download (0). docs.agents.lumalabs.ai/llms.txt returns 404, but every docs page links a Markdown twin (for example /index.md and /guides/pricing/index.md) (10). Guides cover generation, keyframes, edit, extend, reframe, deletion, files, usage and the migration, and say which options don't combine, such as start and end frames with 10 second clips (14). Typed fields for model, type, resolution and duration with fixed values (12). curl and SDK examples, both 429 bodies and generation failure codes are documented (12). Responses carry an X-API-Version header and the SDK repositories keep dated changelogs, but the API docs have no changelog and the public changelog page on lumalabs.ai was last updated in June 2025 (5). 0+10+14+12+12+5 = 53.",
          "b": "All 50 tools read from tools/list with JSON Schema inputs and 29 enums, built from Magic Hour's OpenAPI specification (25). llms.txt (10). Long descriptions with a get_workflow_guide tool for choosing between them (17 of 20). Typed inputs with enums and no free-form objects (15). Worked examples; error responses not documented (5 of 15). Dated changelog with entries on 3 to 5 November 2026 (10 of 15, product changelog rather than MCP versions). 25 + 10 + 17 + 15 + 5 + 10 = 82."
        },
        "scores": {
          "a": 53,
          "b": 82
        }
      },
      {
        "by": 28,
        "category": "maintenance",
        "leads": "magic-hour-mcp",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Model reading. The latest dated API change found is SDK v0.5.0, whose changelog dates it 4 August 2026 (tag 5 August), adding the layering parameter to generations. That is more than 90 days before 4 November, so 10 (within 180 days). The docs now carry deletion, files and usage guides with no dates, and the 3 November MCP connector runs Luma Agents workflows on a subscription, which the API doesn't serve, so neither counts (10). Ray 2, Ray 3 and their variants are retiring, but the cutoff dates go out in private notices and the migration guide gives none (5). No API changelog. The SDK changelogs are dated and support is an email address on the migration guide (7). Official SDKs for Python, TypeScript and Go and a CLI, last released on 5 August with Ray 3.2 and files support, though the new deletion routes aren't in them yet (15). Each SDK repository has a CI workflow (10). 10+5+7+15+10 = 47.",
          "b": "Changelog entries on 3, 4 and 5 November 2026 (30). More than three dated entries in 90 days (20). Changelog and support; issues on the public MCP repository not read (10 of 25). Registry entry io.github.magichourhq/magic-hour (0.1.1, 4 November) (15). No package health read (0). 30 + 20 + 10 + 15 + 0 = 75. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API."
        },
        "scores": {
          "a": 47,
          "b": 75
        }
      },
      {
        "by": 22,
        "category": "reliability",
        "leads": "luma",
        "name": "Reliability",
        "reasons": {
          "a": "Better Stack status page at status.lumalabs.ai with API, Dream Machine and Luma Agents components, an incident list and an RSS feed (20). In the 90 days from 6 August the feed lists three incidents, all on legacy Ray2 models: Ray2 Flash timeouts on 2 to 3 September (about 9 hours) and 15 to 16 September (about 2 hours), and Ray2 queue times on 16 to 17 September (about 13 hours). The status page tags each with its API and Dream Machine components, and each hit one legacy model, so minor only (20). The authentication incident counted as a major on 1 October was on 16 July and has left the window. Limits are per minute and per concurrent job, but the numbers sit in the dashboard, not the docs (5). Every 429 carries Retry-After, with separate bodies for the per-minute and concurrency limits and backoff guidance with jitter. Rejected requests aren't queued and synchronous errors are never charged, which is safe-retry guidance, but there is no idempotency key, so 12 as settled in this run (12). No SLA document. The pricing page lists a latency SLA for Provisioned Throughput only as a table entry (0). The pricing page says video rates may change before general availability, so the video surface isn't GA yet (0). 20+20+5+12+0+0 = 57.",
          "b": "Status page at status.magichour.ai, all services online, with maintenance and previous incidents sections; no MCP component read (15). Incident history not read (5). No API rate limits found (0). No retry guidance found; wait_for_* tools poll long jobs (5 of 15). No SLA found (0). Not labelled beta (10). 15 + 5 + 0 + 5 + 0 + 10 = 35."
        },
        "scores": {
          "a": 57,
          "b": 35
        }
      },
      {
        "by": 11,
        "category": "ergonomics",
        "leads": "luma",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Generations come back as small JSON objects with a presigned URL for the output (15). We found no callback for the Agents API, so jobs are polled (0 of 10). Resolution and duration set output size (10). The API reference lists create, get and delete for generations and a list call only for files, so there is no list of past generations (0 of 10). The 429 detail string tells an agent whether to wait for Retry-After or for a job to finish, and failures carry codes (16). No idempotency key. Moderated and failed generations are refunded and synchronous errors aren't charged, so a retry after a failure is safe (10). One generation endpoint with few required fields, and official SDKs for Python, TypeScript and Go plus a CLI (15). 15+0+10+0+16+10+15 = 66.",
          "b": "50 tools totalling about 160 KB of definitions (5). list_saved_items and project getters; limited size controls (10 of 20). Error handling not documented (5 of 20). Every tool annotated, 14 read-only and the three deletes marked destructive (20). Few required inputs and SDKs (Python, Node and others listed in the docs) (15). 5 + 10 + 5 + 20 + 15 = 55."
        },
        "scores": {
          "a": 66,
          "b": 55
        }
      },
      {
        "by": 9,
        "category": "transparency",
        "leads": "luma",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed models. The terms give customers the outputs, with commercial use tied to an active paid plan (15). The API terms state that API inputs and outputs aren't used for training (10). The pricing page's comparison table says Pay-as-you-go has no no-train guarantee and only Provisioned Throughput does. That contradiction is charged once, as a misleading claim under negative events, as rime-prism's training contradiction is, so it doesn't also lower this line. The privacy policy (20 April 2026) describes retention by criteria without periods, and the deletion guide sets retention per API client with a one-year hold for moderation failures (5). The privacy policy was read and names US hosting with Standard Contractual Clauses for transfers. No DPA was read (5). A public migration guide without dates, retirement dates by email only (5). A subprocessor list (last updated 4 October 2026) names about 50 providers with their purpose, and the privacy policy says the services are hosted in the United States (15). 15+10+5+5+5+15 = 55.",
          "b": "Closed service under terms naming Magic Hour AI, Inc., revised 3 October 2026 (15). The privacy policy says prompts, uploads and outputs aren't sold or used to train models, for free and paid accounts, and MCP requests are handled the same way; retention periods aren't given (20 of 30). No deprecation policy found (5 of 20). Subprocessors not read (10 of 20, model providers named in tool docs). 15 + 20 + 5 + 10 = 50."
        },
        "scores": {
          "a": 67,
          "b": 58
        }
      },
      {
        "by": 8,
        "category": "security",
        "leads": "luma",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Model reading of the checklist (credential, training, retention, operator visibility, programme). Bearer keys created in the platform and shown once, with quota and limits shared by all keys of a client. No scopes found (20). The API terms of 28 April 2026 say Luma won't use API inputs or outputs to train or develop its models (20). A deletion call is now documented, DELETE /v1/generations/{id} with a deletion task polled at GET /v1/deletions/{task_id}, though the guide says it may not be enabled for every API client and the SDKs don't include it yet (5). Retention is set per API client, with no default period stated, and a generation that fails moderation can be held for at least a year (0). Rate-limit headers, a request id per call, and GET /v1/usage for spend by session or end user, with no audit log found (8). No security.txt (lumalabs.ai/.well-known/security.txt returns 404), bug bounty or certification found for Luma AI (0). 20+20+5+0+8+0 = 53.",
          "b": "API keys as Bearer tokens or OAuth through the Claude and ChatGPT connectors (20 of 30). Destructive deletes are annotated; no read-only key (8 of 20). Tools return generated media, not third-party text (10). No audit log found (0). No security.txt or certifications found; face and voice tools come with policy limits in the terms (7 of 20). 20 + 8 + 10 + 0 + 7 = 45."
        },
        "scores": {
          "a": 53,
          "b": 45
        }
      }
    ],
    "facts": [
      {
        "a": "Model API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Luma AI",
        "b": "Magic Hour AI, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://agents.lumalabs.ai/v1",
        "b": "https://mcp.magichour.ai/",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (SDKs)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "50",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.magichourhq/magic-hour",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-05",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-05-14",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "2026-04-20",
        "b": "not read yet",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2 stars, 982 npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Magic Hour MCP and Luma AI API score within a point of each other on agent readiness, 50.7 (D) and 50.5 (D). Luma AI API leads on reliability, agent ergonomics, security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Luma AI API or Magic Hour MCP?"
      },
      {
        "answer": "Luma AI API needs an API key. Magic Hour MCP takes an API key or an OAuth sign-in.",
        "question": "Do Luma AI API and Magic Hour MCP need an API key?"
      },
      {
        "answer": "Yes. Luma AI API has a hosted endpoint at https://agents.lumalabs.ai/v1 and Magic Hour MCP at https://mcp.magichour.ai/.",
        "question": "Can an agent call Luma AI API and Magic Hour MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 57 against 35",
          "Agent ergonomics, 66 against 55",
          "Security \u0026 auth, 53 against 45",
          "Payments \u0026 pricing, 20 against 15",
          "Transparency \u0026 trust, 67 against 58"
        ],
        "also": null,
        "goodFor": "Pipelines that want one model for generate, edit, extend and reframe, and colourists who want HDR and EXR.",
        "slug": "luma",
        "watchFor": "Video rates are marked as subject to change before general availability"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 82 against 53",
          "Maintenance \u0026 community, 75 against 47"
        ],
        "also": null,
        "goodFor": "Agents making short-form video and images, from talking photos and ads to lip-synced translations, on a credit plan.",
        "slug": "magic-hour-mcp",
        "watchFor": "About 160 KB of tool definitions"
      }
    ],
    "history": {
      "luma": [
        {
          "causes": [
            "evidence",
            "time"
          ],
          "date": "2026-11-04",
          "delta": 2.2,
          "from": 48.3,
          "fromGrade": "D",
          "to": 50.5,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 48.2,
          "fromGrade": "D",
          "to": 48.3,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.5,
          "from": 48.7,
          "fromGrade": "D",
          "to": 48.2,
          "toGrade": "D"
        }
      ],
      "magic-hour-mcp": null
    },
    "job": {
      "capability": "video.generate",
      "name": "Video generation"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alibaba-wan-vs-luma.json",
        "title": "Alibaba Wan (Model Studio) vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alibaba-wan-vs-magic-hour-mcp.json",
        "title": "Alibaba Wan (Model Studio) vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/alibaba-wan-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-luma.json",
        "title": "fal video models vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fal-video-vs-magic-hour-mcp.json",
        "title": "fal video models vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/fal-video-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-luma.json",
        "title": "framefields vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.json",
        "title": "framefields vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-veo-vs-luma.json",
        "title": "Google Veo vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/google-veo-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-veo-vs-magic-hour-mcp.json",
        "title": "Google Veo vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/google-veo-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/higgsfield-vs-luma.json",
        "title": "Higgsfield API vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/higgsfield-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/higgsfield-vs-magic-hour-mcp.json",
        "title": "Higgsfield API vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/higgsfield-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperframes-vs-luma.json",
        "title": "HyperFrames vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/hyperframes-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperframes-vs-magic-hour-mcp.json",
        "title": "HyperFrames vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/hyperframes-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kling-vs-luma.json",
        "title": "Kling AI API vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/kling-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kling-vs-magic-hour-mcp.json",
        "title": "Kling AI API vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/kling-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-minimax-video.json",
        "title": "Luma AI API vs MiniMax Video API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-minimax-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-openai-sora.json",
        "title": "Luma AI API vs OpenAI Sora API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-openai-sora"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-pika.json",
        "title": "Luma AI API vs Pika API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-pika"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-pixverse.json",
        "title": "Luma AI API vs PixVerse API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-pixverse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-popcraft-mcp.json",
        "title": "Luma AI API vs Popcraft MCP",
        "url": "https://www.anchorterminal.com/compare/luma-vs-popcraft-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-replicate-video.json",
        "title": "Luma AI API vs Replicate video models",
        "url": "https://www.anchorterminal.com/compare/luma-vs-replicate-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-runway.json",
        "title": "Luma AI API vs Runway API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-runway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-seedance-on-byteplus-modelark.json",
        "title": "Luma AI API vs Seedance on BytePlus ModelArk",
        "url": "https://www.anchorterminal.com/compare/luma-vs-seedance-on-byteplus-modelark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-vidu.json",
        "title": "Luma AI API vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/luma-vs-vidu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-minimax-video.json",
        "title": "Magic Hour MCP vs MiniMax Video API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-minimax-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-openai-sora.json",
        "title": "Magic Hour MCP vs OpenAI Sora API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-openai-sora"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pika.json",
        "title": "Magic Hour MCP vs Pika API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pika"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pixverse.json",
        "title": "Magic Hour MCP vs PixVerse API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pixverse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-popcraft-mcp.json",
        "title": "Magic Hour MCP vs Popcraft MCP",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-popcraft-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-replicate-video.json",
        "title": "Magic Hour MCP vs Replicate video models",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-replicate-video"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-runway.json",
        "title": "Magic Hour MCP vs Runway API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-runway"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-seedance-on-byteplus-modelark.json",
        "title": "Magic Hour MCP vs Seedance on BytePlus ModelArk",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-seedance-on-byteplus-modelark"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-vidu.json",
        "title": "Magic Hour MCP vs Vidu API",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-vidu"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clueso-video-vs-luma.json",
        "title": "Clueso vs Luma AI API",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-luma"
      },
      {
        "json": "https://www.anchorterminal.com/compare/clueso-video-vs-magic-hour-mcp.json",
        "title": "Clueso vs Magic Hour MCP",
        "url": "https://www.anchorterminal.com/compare/clueso-video-vs-magic-hour-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/luma-vs-sync-labs-mcp.json",
        "title": "Luma AI API vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/luma-vs-sync-labs-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-sync-labs-mcp.json",
        "title": "Magic Hour MCP vs sync. labs MCP server",
        "url": "https://www.anchorterminal.com/compare/magic-hour-mcp-vs-sync-labs-mcp"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 22,
        "edge": "luma",
        "key": "reliability",
        "luma": 57,
        "magic-hour-mcp": 35,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "edge": "magic-hour-mcp",
        "key": "schema",
        "luma": 53,
        "magic-hour-mcp": 82,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 11,
        "edge": "luma",
        "key": "ergonomics",
        "luma": 66,
        "magic-hour-mcp": 55,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 8,
        "edge": "luma",
        "key": "security",
        "luma": 53,
        "magic-hour-mcp": 45,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "edge": "luma",
        "key": "payments",
        "luma": 20,
        "magic-hour-mcp": 15,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 28,
        "edge": "magic-hour-mcp",
        "key": "maintenance",
        "luma": 47,
        "magic-hour-mcp": 75,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 9,
        "edge": "luma",
        "key": "transparency",
        "luma": 67,
        "magic-hour-mcp": 58,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Magic Hour MCP and Luma AI API score within a point of each other on agent readiness, 50.7 (D) and 50.5 (D). Luma AI API leads on reliability, agent ergonomics, security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust. Both do video generation.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "luma": "Clip prices are published per generation in credits at a $0.003 list rate, and 429s say which limit was hit. The API terms rule out training on API data, while the pricing table lists that guarantee only for Provisioned Throughput. Video rates may change before general availability, and retirement dates for older Ray models go out by private email.",
      "magic-hour-mcp": "Magic Hour's MCP server exposes its whole image and video toolkit, lip sync, face swap, upscaling and text-to-video, with typed schemas built from its OpenAPI file and every tool annotated. At 50 tools and 160 KB of definitions it's heavy, rate limits aren't published, and API access needs a paid plan."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp",
    "json": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.min.md"
  },
  "markdown": "Magic Hour MCP and Luma AI API score within a point of each other on agent readiness, 50.7 (D) and 50.5 (D). Luma AI API leads on reliability, agent ergonomics, security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust. Both do video generation.\n\n- Luma AI API: grade D, 50.5/100, rank #1058 of 1510. Markdown https://www.anchorterminal.com/tools/luma.md · JSON https://www.anchorterminal.com/api/v1/tools/luma.json\n- Magic Hour MCP: grade D, 50.7/100, rank #1053 of 1510. Markdown https://www.anchorterminal.com/tools/magic-hour-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/magic-hour-mcp.json\n- Best video generation for AI agents: https://www.anchorterminal.com/best/video-generation/index.md\n- All 183 video comparisons: https://www.anchorterminal.com/compare/video-generation/index.md\n\n## Which one, for what\n\n### Luma AI API (D)\n\nGood for: Pipelines that want one model for generate, edit, extend and reframe, and colourists who want HDR and EXR.\n\nAhead on:\n- Reliability, 57 against 35\n- Agent ergonomics, 66 against 55\n- Security \u0026 auth, 53 against 45\n- Payments \u0026 pricing, 20 against 15\n- Transparency \u0026 trust, 67 against 58\n\nWatch for: Video rates are marked as subject to change before general availability\n\n### Magic Hour MCP (D)\n\nGood for: Agents making short-form video and images, from talking photos and ads to lip-synced translations, on a credit plan.\n\nAhead on:\n- Schema \u0026 documentation, 82 against 53\n- Maintenance \u0026 community, 75 against 47\n\nWatch for: About 160 KB of tool definitions\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Magic Hour MCP +29\n\n- Luma AI API (53): No public OpenAPI document is linked from the docs. The API reference at /api/ is generated per method with no visible spec download (0). docs.agents.lumalabs.ai/llms.txt returns 404, but every docs page links a Markdown twin (for example /index.md and /guides/pricing/index.md) (10). Guides cover generation, keyframes, edit, extend, reframe, deletion, files, usage and the migration, and say which options don't combine, such as start and end frames with 10 second clips (14). Typed fields for model, type, resolution and duration with fixed values (12). curl and SDK examples, both 429 bodies and generation failure codes are documented (12). Responses carry an X-API-Version header and the SDK repositories keep dated changelogs, but the API docs have no changelog and the public changelog page on lumalabs.ai was last updated in June 2025 (5). 0+10+14+12+12+5 = 53.\n- Magic Hour MCP (82): All 50 tools read from tools/list with JSON Schema inputs and 29 enums, built from Magic Hour's OpenAPI specification (25). llms.txt (10). Long descriptions with a get_workflow_guide tool for choosing between them (17 of 20). Typed inputs with enums and no free-form objects (15). Worked examples; error responses not documented (5 of 15). Dated changelog with entries on 3 to 5 November 2026 (10 of 15, product changelog rather than MCP versions). 25 + 10 + 17 + 15 + 5 + 10 = 82.\n\n### Maintenance \u0026 community: Magic Hour MCP +28\n\n- Luma AI API (47): Model reading. The latest dated API change found is SDK v0.5.0, whose changelog dates it 4 August 2026 (tag 5 August), adding the layering parameter to generations. That is more than 90 days before 4 November, so 10 (within 180 days). The docs now carry deletion, files and usage guides with no dates, and the 3 November MCP connector runs Luma Agents workflows on a subscription, which the API doesn't serve, so neither counts (10). Ray 2, Ray 3 and their variants are retiring, but the cutoff dates go out in private notices and the migration guide gives none (5). No API changelog. The SDK changelogs are dated and support is an email address on the migration guide (7). Official SDKs for Python, TypeScript and Go and a CLI, last released on 5 August with Ray 3.2 and files support, though the new deletion routes aren't in them yet (15). Each SDK repository has a CI workflow (10). 10+5+7+15+10 = 47.\n- Magic Hour MCP (75): Changelog entries on 3, 4 and 5 November 2026 (30). More than three dated entries in 90 days (20). Changelog and support; issues on the public MCP repository not read (10 of 25). Registry entry io.github.magichourhq/magic-hour (0.1.1, 4 November) (15). No package health read (0). 30 + 20 + 10 + 15 + 0 = 75. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API.\n\n### Reliability: Luma AI API +22\n\n- Luma AI API (57): Better Stack status page at status.lumalabs.ai with API, Dream Machine and Luma Agents components, an incident list and an RSS feed (20). In the 90 days from 6 August the feed lists three incidents, all on legacy Ray2 models: Ray2 Flash timeouts on 2 to 3 September (about 9 hours) and 15 to 16 September (about 2 hours), and Ray2 queue times on 16 to 17 September (about 13 hours). The status page tags each with its API and Dream Machine components, and each hit one legacy model, so minor only (20). The authentication incident counted as a major on 1 October was on 16 July and has left the window. Limits are per minute and per concurrent job, but the numbers sit in the dashboard, not the docs (5). Every 429 carries Retry-After, with separate bodies for the per-minute and concurrency limits and backoff guidance with jitter. Rejected requests aren't queued and synchronous errors are never charged, which is safe-retry guidance, but there is no idempotency key, so 12 as settled in this run (12). No SLA document. The pricing page lists a latency SLA for Provisioned Throughput only as a table entry (0). The pricing page says video rates may change before general availability, so the video surface isn't GA yet (0). 20+20+5+12+0+0 = 57.\n- Magic Hour MCP (35): Status page at status.magichour.ai, all services online, with maintenance and previous incidents sections; no MCP component read (15). Incident history not read (5). No API rate limits found (0). No retry guidance found; wait_for_* tools poll long jobs (5 of 15). No SLA found (0). Not labelled beta (10). 15 + 5 + 0 + 5 + 0 + 10 = 35.\n\n### Agent ergonomics: Luma AI API +11\n\n- Luma AI API (66): Generations come back as small JSON objects with a presigned URL for the output (15). We found no callback for the Agents API, so jobs are polled (0 of 10). Resolution and duration set output size (10). The API reference lists create, get and delete for generations and a list call only for files, so there is no list of past generations (0 of 10). The 429 detail string tells an agent whether to wait for Retry-After or for a job to finish, and failures carry codes (16). No idempotency key. Moderated and failed generations are refunded and synchronous errors aren't charged, so a retry after a failure is safe (10). One generation endpoint with few required fields, and official SDKs for Python, TypeScript and Go plus a CLI (15). 15+0+10+0+16+10+15 = 66.\n- Magic Hour MCP (55): 50 tools totalling about 160 KB of definitions (5). list_saved_items and project getters; limited size controls (10 of 20). Error handling not documented (5 of 20). Every tool annotated, 14 read-only and the three deletes marked destructive (20). Few required inputs and SDKs (Python, Node and others listed in the docs) (15). 5 + 10 + 5 + 20 + 15 = 55.\n\n### Transparency \u0026 trust: Luma AI API +9\n\n- Luma AI API (67): Closed models. The terms give customers the outputs, with commercial use tied to an active paid plan (15). The API terms state that API inputs and outputs aren't used for training (10). The pricing page's comparison table says Pay-as-you-go has no no-train guarantee and only Provisioned Throughput does. That contradiction is charged once, as a misleading claim under negative events, as rime-prism's training contradiction is, so it doesn't also lower this line. The privacy policy (20 April 2026) describes retention by criteria without periods, and the deletion guide sets retention per API client with a one-year hold for moderation failures (5). The privacy policy was read and names US hosting with Standard Contractual Clauses for transfers. No DPA was read (5). A public migration guide without dates, retirement dates by email only (5). A subprocessor list (last updated 4 October 2026) names about 50 providers with their purpose, and the privacy policy says the services are hosted in the United States (15). 15+10+5+5+5+15 = 55.\n- Magic Hour MCP (58): Closed service under terms naming Magic Hour AI, Inc., revised 3 October 2026 (15). The privacy policy says prompts, uploads and outputs aren't sold or used to train models, for free and paid accounts, and MCP requests are handled the same way; retention periods aren't given (20 of 30). No deprecation policy found (5 of 20). Subprocessors not read (10 of 20, model providers named in tool docs). 15 + 20 + 5 + 10 = 50.\n\n### Security \u0026 auth: Luma AI API +8\n\n- Luma AI API (53): Model reading of the checklist (credential, training, retention, operator visibility, programme). Bearer keys created in the platform and shown once, with quota and limits shared by all keys of a client. No scopes found (20). The API terms of 28 April 2026 say Luma won't use API inputs or outputs to train or develop its models (20). A deletion call is now documented, DELETE /v1/generations/{id} with a deletion task polled at GET /v1/deletions/{task_id}, though the guide says it may not be enabled for every API client and the SDKs don't include it yet (5). Retention is set per API client, with no default period stated, and a generation that fails moderation can be held for at least a year (0). Rate-limit headers, a request id per call, and GET /v1/usage for spend by session or end user, with no audit log found (8). No security.txt (lumalabs.ai/.well-known/security.txt returns 404), bug bounty or certification found for Luma AI (0). 20+20+5+0+8+0 = 53.\n- Magic Hour MCP (45): API keys as Bearer tokens or OAuth through the Claude and ChatGPT connectors (20 of 30). Destructive deletes are annotated; no read-only key (8 of 20). Tools return generated media, not third-party text (10). No audit log found (0). No security.txt or certifications found; face and voice tools come with policy limits in the terms (7 of 20). 20 + 8 + 10 + 0 + 7 = 45.\n\n## Score by category\n\n| Category | Weight | Luma AI API | Magic Hour MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 57 | 35 | Luma AI API +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 53 | 82 | Magic Hour MCP +29 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 55 | Luma AI API +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 53 | 45 | Luma AI API +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 15 | Luma AI API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 47 | 75 | Magic Hour MCP +28 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 58 | Luma AI API +9 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **50.5 · D** | **50.7 · D** | |\n\n## Facts side by side\n\n| Fact | Luma AI API | Magic Hour MCP |\n| --- | --- | --- |\n| Kind | Model API | MCP server |\n| Vendor | Luma AI | Magic Hour AI, Inc. |\n| Hosted endpoint | `https://agents.lumalabs.ai/v1` | `https://mcp.magichour.ai/` |\n| Transports | HTTP | Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (SDKs) | none |\n| Tools exposed | none | 50 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `io.github.magichourhq/magic-hour` |\n| Last release | 2026-08-05 | none |\n| Terms last updated | 2026-05-14 | not read yet |\n| Privacy policy last updated | 2026-04-20 | not read yet |\n| Customer content may train models | yes | not read yet |\n| Terms restrict automated access | yes | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | yes | not read yet |\n| Arbitration or class-action waiver | yes | not read yet |\n| Popularity | 2 stars, 982 npm/wk | none |\n| Agent reviews | 3/5 (2) | none |\n\n## How the scores have moved\n\n### Luma AI API\n\n- +2.2 on 4 November 2026: new evidence, time\n- +0.1 on 27 October 2026: checklist\n- -0.5 on 8 October 2026: checklist\n\n### Magic Hour MCP\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Luma AI API.** Clip prices are published per generation in credits at a $0.003 list rate, and 429s say which limit was hit. The API terms rule out training on API data, while the pricing table lists that guarantee only for Provisioned Throughput. Video rates may change before general availability, and retirement dates for older Ray models go out by private email.\n\n**Magic Hour MCP.** Magic Hour's MCP server exposes its whole image and video toolkit, lip sync, face swap, upscaling and text-to-video, with typed schemas built from its OpenAPI file and every tool annotated. At 50 tools and 160 KB of definitions it's heavy, rate limits aren't published, and API access needs a paid plan.\n\n## Before you call either\n\n### Luma AI API\n\n1. Send model `ray-3.2` and type `video`, with resolution and duration inside `video`. Older model names are rejected\n2. Poll GET /v1/generations/{id} until completed or failed, then copy the presigned URL\n3. On 429, read `detail`. Rate limit exceeded means wait Retry-After, Too many concurrent jobs means wait for a job to finish\n4. Use keyframes with `keyframe_indexes` for 10 second clips. start_frame and end_frame only work at 5 seconds\n5. Convert credits to dollars with `overage_rate` from GET /v1/usage when it is set, otherwise the $0.003 list rate\n\n### Magic Hour MCP\n\n1. Call get_workflow_guide first to pick the right tool\n2. Use the wait_for_* tools instead of polling project status yourself\n3. Check credits with get_account_info before long video jobs\n4. Only swap faces or voices of people who consented\n\n## Questions\n\n### Which is better for AI agents, Luma AI API or Magic Hour MCP?\n\nMagic Hour MCP and Luma AI API score within a point of each other on agent readiness, 50.7 (D) and 50.5 (D). Luma AI API leads on reliability, agent ergonomics, security \u0026 auth, payments \u0026 pricing and transparency \u0026 trust.\n\n### Do Luma AI API and Magic Hour MCP need an API key?\n\nLuma AI API needs an API key. Magic Hour MCP takes an API key or an OAuth sign-in.\n\n### Can an agent call Luma AI API and Magic Hour MCP without installing anything?\n\nYes. Luma AI API has a hosted endpoint at https://agents.lumalabs.ai/v1 and Magic Hour MCP at https://mcp.magichour.ai/.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"luma\", \"b\": \"magic-hour-mcp\"}`. From a terminal: `anchor compare luma magic-hour-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/luma.json and https://www.anchorterminal.com/api/v1/tools/magic-hour-mcp.json\n\n## Other comparisons with Luma AI API or Magic Hour MCP\n\n- [Alibaba Wan (Model Studio) vs Luma AI API](https://www.anchorterminal.com/compare/alibaba-wan-vs-luma.md)\n- [Alibaba Wan (Model Studio) vs Magic Hour MCP](https://www.anchorterminal.com/compare/alibaba-wan-vs-magic-hour-mcp.md)\n- [fal video models vs Luma AI API](https://www.anchorterminal.com/compare/fal-video-vs-luma.md)\n- [fal video models vs Magic Hour MCP](https://www.anchorterminal.com/compare/fal-video-vs-magic-hour-mcp.md)\n- [framefields vs Luma AI API](https://www.anchorterminal.com/compare/framefields-vs-luma.md)\n- [framefields vs Magic Hour MCP](https://www.anchorterminal.com/compare/framefields-vs-magic-hour-mcp.md)\n- [Google Veo vs Luma AI API](https://www.anchorterminal.com/compare/google-veo-vs-luma.md)\n- [Google Veo vs Magic Hour MCP](https://www.anchorterminal.com/compare/google-veo-vs-magic-hour-mcp.md)\n- [Higgsfield API vs Luma AI API](https://www.anchorterminal.com/compare/higgsfield-vs-luma.md)\n- [Higgsfield API vs Magic Hour MCP](https://www.anchorterminal.com/compare/higgsfield-vs-magic-hour-mcp.md)\n- [HyperFrames vs Luma AI API](https://www.anchorterminal.com/compare/hyperframes-vs-luma.md)\n- [HyperFrames vs Magic Hour MCP](https://www.anchorterminal.com/compare/hyperframes-vs-magic-hour-mcp.md)\n- [Kling AI API vs Luma AI API](https://www.anchorterminal.com/compare/kling-vs-luma.md)\n- [Kling AI API vs Magic Hour MCP](https://www.anchorterminal.com/compare/kling-vs-magic-hour-mcp.md)\n- [Luma AI API vs MiniMax Video API](https://www.anchorterminal.com/compare/luma-vs-minimax-video.md)\n- [Luma AI API vs OpenAI Sora API](https://www.anchorterminal.com/compare/luma-vs-openai-sora.md)\n- [Luma AI API vs Pika API](https://www.anchorterminal.com/compare/luma-vs-pika.md)\n- [Luma AI API vs PixVerse API](https://www.anchorterminal.com/compare/luma-vs-pixverse.md)\n- [Luma AI API vs Popcraft MCP](https://www.anchorterminal.com/compare/luma-vs-popcraft-mcp.md)\n- [Luma AI API vs Replicate video models](https://www.anchorterminal.com/compare/luma-vs-replicate-video.md)\n- [Luma AI API vs Runway API](https://www.anchorterminal.com/compare/luma-vs-runway.md)\n- [Luma AI API vs Seedance on BytePlus ModelArk](https://www.anchorterminal.com/compare/luma-vs-seedance-on-byteplus-modelark.md)\n- [Luma AI API vs Vidu API](https://www.anchorterminal.com/compare/luma-vs-vidu.md)\n- [Magic Hour MCP vs MiniMax Video API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-minimax-video.md)\n- [Magic Hour MCP vs OpenAI Sora API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-openai-sora.md)\n- [Magic Hour MCP vs Pika API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pika.md)\n- [Magic Hour MCP vs PixVerse API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-pixverse.md)\n- [Magic Hour MCP vs Popcraft MCP](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-popcraft-mcp.md)\n- [Magic Hour MCP vs Replicate video models](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-replicate-video.md)\n- [Magic Hour MCP vs Runway API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-runway.md)\n- [Magic Hour MCP vs Seedance on BytePlus ModelArk](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-seedance-on-byteplus-modelark.md)\n- [Magic Hour MCP vs Vidu API](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-vidu.md)\n- [Clueso vs Luma AI API](https://www.anchorterminal.com/compare/clueso-video-vs-luma.md)\n- [Clueso vs Magic Hour MCP](https://www.anchorterminal.com/compare/clueso-video-vs-magic-hour-mcp.md)\n- [Luma AI API vs sync. labs MCP server](https://www.anchorterminal.com/compare/luma-vs-sync-labs-mcp.md)\n- [Magic Hour MCP vs sync. labs MCP server](https://www.anchorterminal.com/compare/magic-hour-mcp-vs-sync-labs-mcp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Luma AI API vs Magic Hour MCP",
        "url": ""
      }
    ],
    "description": "Magic Hour MCP and Luma AI score within a point of each other for video generation, 50.7 and 50.5 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Luma AI API D 50.5",
      "Magic Hour MCP D 50.7",
      "scores"
    ],
    "h1": "Luma AI API vs Magic Hour MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/luma-vs-magic-hour-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Luma AI vs Magic Hour MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/luma-vs-magic-hour-mcp"
  },
  "tokens": {
    "markdown": 4950,
    "slim": 2880
  },
  "version": 1
}
