Prowl
18/100
prowl
Benchmarked Aug 28, 2026

Open Movie Database

Movie information

saas api_benchmark api_keypublic
Benchmark Your API

Score Breakdown

Latency7/10
Auth Simplicity6/10
Documentation3/10
Token Efficiency2/10
Consistency1/10
Error Clarity1/10
Parseability1/10
First-Try Success0/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
{
  "service_type": "rest_api",
  "base_url": "https://omdbapi.com",
  "auth_method": "query_param",
  "auth_config": {"param": "apikey"},
  "endpoints": [
    {
      "path": "/",
      "method": "GET",
      "purpose": "Returns the most popular match for a given title using query parameter t",
      "params": {
        "t": {"type": "string", "required": true},
        "y": {"type": "integer", "required": false},
        "type": {"type": "string", "required": false},
        "plot": {"type": "string", "required": false},
        "r": {"type": "string", "required": false},
        "callback": {"type": "string", "required": false}
      },
      "response_format": "json",
      "is_primary": true
    },
    {
      "path": "/",
      "method": "GET",
      "purpose": "Returns a single result based on the IMDb ID provided using query parameter i",
      "params": {
        "i": {"type": "string", "required": true},
        "plot": {"type": "string", "required": false},
        "r": {"type": "string", "required": false},
        "callback": {"type": "string", "required": false}
      },
      "response_format": "json",
      "is_primary": true
    },
    {
      "path": "/",
      "method": "GET",
      "purpose": "Returns an array of results for a given title using query parameter s",
      "params": {
        "s": {"type": "string", "required": true},
        "y": {"type": "integer", "required": false},
        "type": {"type": "string", "required": false},
        "r": {"type": "string", "required": false},
        "callback": {"type": "string", "required": false}
      },
      "response_format": "json",
      "is_primary": true
    }
  ],
  "pricing_model": {
    "type": "subscription",
    "details": {},
    "free_tier": {"requests": 1000, "period": "day"},
    "paid_tiers": [
      {"name": "Free", "requests": 1000, "period": "day", "cost": 0},
      {"name": "Patron", "requests": 100000, "period": "day", "cost": 1},
      {"name": "Patron Plus", "requests": 1000000, "period": "day", "cost": 5}
    ]
  },
  "rate_limits": {"rpm": null, "tpm": null, "daily": 1000, "concurrent": null},
  "capabilities": ["movie information", "series information", "IMDb ID lookup", "title search"],
  "agent_readiness": {
    "supports_x402": false,
    "supports_streaming": false,
    "has_sandbox": false,
    "sdks": [],
    "agent_auth_methods": ["api_key"]
  }
}
Plan
{
  "tests": [
    {
      "name": "title_lookup_happy_path",
      "endpoint": "/?t=The+Matrix&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "happy_path",
      "expected_behavior": "Returns movie details for The Matrix",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "Title", "type": "string", "min_length": 1}
    },
    {
      "name": "id_lookup_happy_path",
      "endpoint": "/?i=tt0133093&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "happy_path",
      "expected_behavior": "Returns movie details for the given IMDb ID",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "imdbID", "type": "string", "min_length": 1}
    },
    {
      "name": "search_happy_path",
      "endpoint": "/?s=Inception&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "happy_path",
      "expected_behavior": "Returns a list of search results",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "Search", "type": "array", "min_length": 1}
    },
    {
      "name": "missing_api_key",
      "endpoint": "/?t=The+Matrix",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 401,
      "intent": "auth",
      "expected_behavior": "Rejects request without API key",
      "metrics": ["status_code"],
      "validation": {}
    },
    {
      "name": "invalid_api_key",
      "endpoint": "/?t=The+Matrix&apikey=INVALID_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 401,
      "intent": "auth",
      "expected_behavior": "Rejects request with invalid API key",
      "metrics": ["status_code"],
      "validation": {}
    },
    {
      "name": "missing_required_param",
      "endpoint": "/?apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 400,
      "intent": "validation",
      "expected_behavior": "Returns error indicating missing title or ID",
      "metrics": ["status_code"],
      "validation": {}
    },
    {
      "name": "invalid_year_type",
      "endpoint": "/?t=The+Matrix&y=notanumber&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 400,
      "intent": "validation",
      "expected_behavior": "Rejects non-integer year parameter",
      "metrics": ["status_code"],
      "validation": {}
    },
    {
      "name": "invalid_type_param",
      "endpoint": "/?t=The+Matrix&type=invalid&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 400,
      "intent": "validation",
      "expected_behavior": "Rejects invalid type value",
      "metrics": ["status_code"],
      "validation": {}
    },
    {
      "name": "nonexistent_title",
      "endpoint": "/?t=ThisMovieDoesNotExist12345&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "validation",
      "expected_behavior": "Returns error response with 'Movie not found'",
      "metrics": ["status_code"],
      "validation": {"field": "Response", "type": "string", "min_length": 1}
    },
    {
      "name": "search_empty_results",
      "endpoint": "/?s=zzzzzzqqqqqq&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "validation",
      "expected_behavior": "Returns error response with 'Movie not found'",
      "metrics": ["status_code"],
      "validation": {}
    },
    {
      "name": "xml_response_format",
      "endpoint": "/?t=The+Matrix&r=xml&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "happy_path",
      "expected_behavior": "Returns XML response",
      "metrics": ["latency", "status_code"],
      "validation": {}
    },
    {
      "name": "jsonp_callback",
      "endpoint": "/?t=The+Matrix&callback=myFunc&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "happy_path",
      "expected_behavior": "Returns JSONP wrapped response",
      "metrics": ["latency", "status_code"],
      "validation": {}
    },
    {
      "name": "search_pagination",
      "endpoint": "/?s=Matrix&page=2&apikey=TEST_KEY",
      "method": "GET",
      "headers": {},
      "payload": {},
      "expected_status": 200,
      "intent": "happy_path",
      "expected_behavior": "Returns second page of results",
      "metrics": ["latency", "status_code"],
      "validation": {"field": "Search", "type": "array", "min_length": 1}
    },
    {
      "name": "full_plot",
      "endpoint": "/?t=The+Matrix&plot=full&apikey=TEST_KEY",
  
Execute

14/14 tests passed

TestEndpointStatusLatency
title_lookup_happy_pathGET /?t=The+Matrix&apikey=TEST_KEY200196ms
id_lookup_happy_pathGET /?i=tt0133093&apikey=TEST_KEY20052ms
search_happy_pathGET /?s=Inception&apikey=TEST_KEY20050ms
missing_api_keyGET /?t=The+Matrix20055ms
invalid_api_keyGET /?t=The+Matrix&apikey=INVALID_KEY20054ms
missing_required_paramGET /?apikey=TEST_KEY20051ms
invalid_year_typeGET /?t=The+Matrix&y=notanumber&apikey=TEST_KEY20054ms
invalid_type_paramGET /?t=The+Matrix&type=invalid&apikey=TEST_KEY20050ms
nonexistent_titleGET /?t=ThisMovieDoesNotExist12345&apikey=TEST_KEY20055ms
search_empty_resultsGET /?s=zzzzzzqqqqqq&apikey=TEST_KEY20055ms
Interpret
{"model": "deepseek", "data": {"overall": 0, "dimensions": {"token_efficiency": 2.0, "first_try_success": 0.0, "response_parseability": 1.0, "error_clarity": 1.0, "doc_quality": 3.0, "auth_simplicity": 6.0, "latency": 7.0, "consistency": 1.0}, "pricing_normalized": {"cost_per_1k_requests": null, "cost_per_1m_input_tokens": null, "cost_per_1m_output_tokens": null, "free_tier_requests": 1000, "estimated_monthly_cost_light": 0, "estimated_monthly_cost_heavy": 5}, "issues": [{"severity": "critical", "detail": "Benchmark used wrong base URL \u2014 all 14 tests returned HTML pages (Google Analytics script) instead of JSON API responses. This is a configuration error, not an API defect.", "endpoint": "/?t=The+Matrix&apikey=TEST_KEY"}], "recommendations": ["Re-run benchmark with correct API base URL from the vendor's guide (likely https://www.omdbapi.com/ or similar, not the root HTML page).", "Verify that the API key `TEST_KEY` is valid or use the documented free key.", "Ensure the caller sends requests to the actual API endpoint, not the homepage of the service."]}}

Agent Readiness

x402 Payments
Not supported
Streaming
No
Sandbox
None
Agent Auth
api_key, public
SDKs
None listed
MCP Support
No

Embed your Prowl badge

Show your live agent-readiness score on your own site. Free, no auth — it updates as your score changes.

Prowl agent-readiness badge
<a href="https://prowl.world/service/open-movie-database">
  <img src="https://prowl.world/badge/open-movie-database.svg" height="56" alt="Agent-readiness on Prowl">
</a>

Options: ?style=light|dark · ?size=sm|md · ?variant=certified (claimed + DNS-verified only) · badge generator with preview

Want the full interactive view?

See operational metrics, LLM evaluations, agent readiness, and more.

Open in Dashboard