76
/100
prowl
Benchmarked Aug 21, 2026

TransitLand

Transit Aggregation

saas platform_profile
Benchmark Your API

Score Breakdown

Latency 9/10
Parseability 9/10
Consistency 8/10
Documentation 8/10
Token Efficiency 8/10
Auth Simplicity 7/10
Error Clarity 6/10
First-Try Success 6/10

Benchmark Analysis Log

Full LLM thinking from the 4-phase benchmark pipeline.

Analyze
{
  "service_type": "platform",
  "base_url": "https://www.transit.land",
  "auth_method": "api_key",
  "auth_config": {
    "header": "apikey",
    "query_param": "apikey",
    "description": "API keys are issued for the Transitland Datastore API. They can be passed via the `apikey` query parameter or the `apikey` HTTP header. Some endpoints are public without a key, but rate limits apply."
  },
  "endpoints": [
    {
      "path": "/api/v1/operators",
      "method": "GET",
      "description": "List transit operators (agencies)."
    },
    {
      "path": "/api/v1/operators/{id}",
      "method": "GET",
      "description": "Get details of a specific operator."
    },
    {
      "path": "/api/v1/feeds",
      "method": "GET",
      "description": "List transit feeds (GTFS, GTFS-RT, etc.)."
    },
    {
      "path": "/api/v1/feeds/{id}",
      "method": "GET",
      "description": "Get feed metadata and download URLs."
    },
    {
      "path": "/api/v1/stops",
      "method": "GET",
      "description": "Search for stops by location, name, or other filters."
    },
    {
      "path": "/api/v1/stops/{id}",
      "method": "GET",
      "description": "Get stop details."
    },
    {
      "path": "/api/v1/routes",
      "method": "GET",
      "description": "List routes."
    },
    {
      "path": "/api/v1/routes/{id}",
      "method": "GET",
      "description": "Get route details."
    },
    {
      "path": "/api/v1/trips",
      "method": "GET",
      "description": "List trips (scheduled journeys)."
    },
    {
      "path": "/api/v1/schedule_stop_times",
      "method": "GET",
      "description": "Query stop times for scheduled trips."
    },
    {
      "path": "/api/v1/realtime_stop_times",
      "method": "GET",
      "description": "Query realtime stop times from GTFS-RT feeds."
    },
    {
      "path": "/api/v1/feed_versions",
      "method": "GET",
      "description": "List past versions of feeds for historical analysis."
    },
    {
      "path": "/api/v1/feed_versions/{id}",
      "method": "GET",
      "description": "Get metadata and download URL for a specific feed version."
    },
    {
      "path": "/api/v1/feed_version_imports",
      "method": "GET",
      "description": "Check status of feed version imports."
    },
    {
      "path": "/api/v1/paths",
      "method": "GET",
      "description": "Query path geometries (shapes) for routes/trips."
    },
    {
      "path": "/api/v1/route_stop_patterns",
      "method": "GET",
      "description": "Get stop patterns for routes."
    },
    {
      "path": "/api/v1/gtfs_entities",
      "method": "GET",
      "description": "General entity search across GTFS entities."
    },
    {
      "path": "/api/v1/places",
      "method": "GET",
      "description": "Search for places/POIs (experimental)."
    }
  ],
  "pricing_model": {
    "type": "freemium",
    "details": {
      "free_tier": {
        "description": "Public API access with rate limits (e.g., 120 requests/hour per IP without API key). Some endpoints are public."
      },
      "paid_tier": {
        "description": "API key with higher rate limits and priority support. Pricing is not public; contact Interline Technologies for enterprise pricing. There is also a hosted SaaS offering (Transitland SaaS) for agencies."
      }
    }
  },
  "rate_limits": {
    "public": "120 requests per hour per IP address",
    "with_api_key": "Higher limits (not publicly documented; likely custom)",
    "notes": "Rate limits are per IP; API key increases limits. Check response headers for actual limits."
  },
  "capabilities": [
    "Transit data aggregation across multiple feeds (GTFS, GTFS-RT, GBFS, etc.)",
    "Search and query operators, routes, stops, trips, and stop times",
    "Realtime transit data from GTFS-RT",
    "Historical feed versioning for data analysis",
    "Geospatial queries (stops within bounding box, etc.)",
    "Route geometry and stop pattern extraction",
    "Import and validation of GTFS feeds",
    "Feed health monitoring and alerts",
    "Global coverage of many transit agencies",
    "API, web UI, and download access"
  ],
  "raw_analysis": "Transitland is a comprehensive transit data aggregation platform operated by Interline Technologies. It ingests GTFS static and realtime feeds from thousands of public transit agencies worldwide, normalizes them, and provides a unified REST API for querying operators, routes, stops, trips, and realtime arrival data. The platform is mature, with a long history since 2015, active development, and a large user base including researchers, developers, and agencies. It offers free public API access with rate limits and paid tiers for higher usage. The documentation at the provided URL lists numerous endpoints under '/api/v1'. The service is well-documented with examples, supports CORS for client-side use, and provides both JSON and GeoJSON outputs. It also offers a downloadable static dataset and a web interface. Integrat
Execute

3/3 tests passed

TestEndpointStatusLatency
website_uptimeGET /200178ms
robots_txtGET /robots.txt20069ms
llms_txtGET /llms.txt200118ms
Interpret
```json
{
  "overall": 72,
  "dimensions": {
    "token_efficiency": 8.5,
    "first_try_success": 6.5,
    "response_parseability": 9.0,
    "error_clarity": 6.0,
    "doc_quality": 8.0,
    "auth_simplicity": 7.0,
    "latency": 9.0,
    "consistency": 7.5
  },
  "pricing_normalized": {
    "free_tier": {
      "description": "Public API access with rate limits (120 req/hour per IP without key)",
      "access_model": "open",
      "suitable_for": "Light usage, exploration, prototyping"
    },
    "paid_tier": {
      "description": "API key with higher rate limits and priority support",
      "access_model": "contact_sales",
      "impacts_recommendation": true
    }
  },
  "issues": [
    "Pricing not public; requires contacting sales for paid tier, slowing agent-driven adoption",
    "Rate limit of 120 requests/hour is quite restrictive for production use",
    "No SSO/magic link auth mentioned; likely API key or manual signup",
    "Crawl-delay of 10 seconds in robots.txt suggests conservative server capacity",
    "No explicit error response format documentation found in llms.txt"
  ],
  "recommendations": [
    "Publish transparent pricing tiers to reduce friction for agent-led evaluation",
    "Increase default free tier rate limits (or document burst allowance) for practical testing",
    "Add standardized JSON error schemas with status codes and machine-readable codes",
    "Provide clear onboarding example in llms.txt showing first API call with auth",
    "Consider adding SSO or OAuth device flow for smoother agent authentication"
  ]
}
```

Agent Readiness

x402 Payments
Not supported
Streaming
No
Sandbox
None
Agent Auth
Unknown
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/transitland">
  <img src="https://prowl.world/badge/transitland.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