{
  "name": "Positionstack",
  "slug": "positionstack",
  "website_url": "https://positionstack.com",
  "vendor_description": "\"Free, Real-Time Geocoding & Maps API\" - built to offer a straightforward and reliable solution for forward and reverse geocoding, covering more than 2 billion places and addresses worldwide.",
  "categories": [
    "geocoding"
  ],
  "summary": "Positionstack is a REST-based geocoding API covering more than 2 billion places worldwide, supporting forward geocoding, reverse geocoding, batch geocoding, and embeddable maps integration. It is self-serve with a free tier of 100 requests per month restricted to personal, non-commercial use, and paid subscription plans starting at $9.99 per month scaling up to 3 million monthly requests on the Business plan, with an enterprise option available. SDKs are published for seven languages including Python, Node.js, Go, and Java, and the service is GDPR-compliant.",
  "capabilities": {
    "supported_actions": [
      "forward_geocode",
      "reverse_geocode",
      "batch_geocode"
    ],
    "supported_regions": [
      "global"
    ],
    "supported_languages": [
      "multiple languages"
    ],
    "input_types": [
      "free-form address",
      "place name",
      "lat/lon coordinates"
    ],
    "output_types": [
      "JSON",
      "XML",
      "GeoJSON"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [
      "PHP",
      "Python",
      "Java",
      "Node.js",
      "Ruby",
      "Go",
      "JavaScript"
    ],
    "mcp_server_available": false
  },
  "integration": {
    "api_style": "rest",
    "base_url": "https://api.positionstack.com/v1/",
    "api_version": "v1",
    "versioning_scheme": "url",
    "stability": "ga",
    "deprecation_policy_url": null,
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://positionstack.com/documentation",
    "idempotency_supported": false,
    "error_format": "vendor-specific JSON: {code, message, context}",
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": null,
    "rate_limit_window": null,
    "sdk_packages": [],
    "mcp_url": null,
    "quickstart_url": "https://docs.apilayer.com/positionstack/docs/getting-started"
  },
  "pricing": {
    "pricing_model": "subscription",
    "has_published_pricing": true,
    "starting_price_usd": "9.9900",
    "price_basis": "month",
    "free_tier_available": true,
    "free_tier_limit": "100 requests/month",
    "free_tier_details": "Free plan at $0/month includes 100 requests/month; personal license only; no commercial use; no support included.",
    "minimum_commitment": null,
    "self_serve_signup": true,
    "requires_sales_call": false,
    "requires_verification": false,
    "enterprise_plan_available": true,
    "price_points": [
      {
        "plan": "Free",
        "item": "geocoding requests",
        "amount_usd": "0.0000",
        "amount_percent": null,
        "per": "month (100 requests included)",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Basic",
        "item": "100,000 geocoding requests",
        "amount_usd": "9.9900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Basic (annual)",
        "item": "100,000 geocoding requests",
        "amount_usd": "8.9900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Basic",
        "item": "overage geocoding request",
        "amount_usd": "0.0004",
        "amount_percent": null,
        "per": "request",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Professional",
        "item": "1,000,000 geocoding requests",
        "amount_usd": "49.9900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Professional (annual)",
        "item": "1,000,000 geocoding requests",
        "amount_usd": "43.9900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Professional",
        "item": "overage geocoding request",
        "amount_usd": "0.0002",
        "amount_percent": null,
        "per": "request",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Business",
        "item": "3,000,000 geocoding requests",
        "amount_usd": "99.9900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Business (annual)",
        "item": "3,000,000 geocoding requests",
        "amount_usd": "84.9900",
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Business",
        "item": "overage geocoding request",
        "amount_usd": "0.0001",
        "amount_percent": null,
        "per": "request",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      },
      {
        "plan": "Enterprise",
        "item": "custom volume geocoding requests",
        "amount_usd": null,
        "amount_percent": null,
        "per": "month",
        "currency": "USD",
        "source_url": "https://positionstack.com/pricing"
      }
    ]
  },
  "compliance": {
    "soc2": null,
    "hipaa": null,
    "gdpr": true,
    "iso_27001": null,
    "pci_dss": null,
    "sla_published": false,
    "sla_url": null,
    "data_retention_policy_url": "https://positionstack.com/privacy",
    "documented_rate_limits": "Monthly request quotas per plan (100 free; 100K Basic; 1M Professional; 3M Business); no per-second or per-minute rate documented. Response headers include X-RateLimit-Limit-Day and X-RateLimit-Limit-Month. Quota may be exceeded by up to 5% before access is disabled.",
    "known_restrictions": [
      "Free plan limited to personal (non-commercial) use only",
      "Users cannot store, distribute, or otherwise exploit positionstack API data outside of their application(s)",
      "End users must use data strictly for their own personal use; commercial redistribution of data prohibited",
      "Unused monthly quota does not carry over to the next month",
      "API access key must be kept private; do not embed in client-side code",
      "Attribution is optional but encouraged (link to positionstack.com)",
      "Quota may be exceeded by a maximum of 5%, after which API access is disabled",
      "GitHub SDK repository archived (read-only) as of June 2024"
    ]
  },
  "developer": {
    "docs_url": "https://docs.apilayer.com/positionstack/docs/api-documentation?utm_source=PositionstackHomePage&utm_medium=Referral",
    "api_reference_url": null,
    "openapi_spec_url": null,
    "postman_collection_url": null,
    "changelog_url": null,
    "status_page_url": "https://status.positionstack.com",
    "llms_txt_url": null,
    "markdown_docs_url": null,
    "rendering": "static"
  },
  "adoption": {
    "launched_at": "2020-01-01",
    "ga_date": null,
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": []
  },
  "scores": {
    "agent_friendliness": 30,
    "pricing_transparency": 100,
    "setup_speed": 85,
    "docs_quality": 15,
    "procurement_friction": 100,
    "trust_readiness": 15,
    "best_for": [
      "Prototypes and side projects - free to start, no sales call",
      "Cost-sensitive teams - low, transparent entry price"
    ],
    "avoid_if": [
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "vendor_description",
      "url": "https://positionstack.com/about",
      "excerpt": "A free and reliable alternative to expensive Enterprise-grade geocoding software that processes over 1 billion geocode lookups daily with a dataset of 2+ billion places and addresses worldwide.",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://positionstack.com/product",
      "excerpt": "Forward Geocoding, Reverse Geocoding, Batch Requests (Professional plan and above), Embeddable Maps, Multiple Languages.",
      "confidence": "high"
    },
    {
      "field": "output_types",
      "url": "https://positionstack.com/product",
      "excerpt": "The API returns data in multiple formats: JSON, XML, GeoJSON.",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Free Plan: $0/month. Basic Plan: $9.99/month (monthly) or $8.99/month (annual). Professional Plan: $49.99/month. Business Plan: $99.99/month. Enterprise Plan: Custom pricing available upon request.",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Free Plan: $0/month, 100 requests/month, forward/reverse geocoding, HTTPS encryption, personal license only, no support included.",
      "confidence": "high"
    },
    {
      "field": "free_tier_details",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Free Plan — Cost: $0/month — Limit: 100 Requests — Features: Personal use, forward/reverse geocoding, HTTPS encryption. No commercial license, no support.",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://positionstack.com/signup/free",
      "excerpt": "Free tier available with immediate access after signup — users receive access key upon registration.",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://positionstack.com/faq",
      "excerpt": "The FAQ mentions 99.9% uptime as an average historical figure, but contains no formal SLA document, contractual uptime guarantee, or link to a published SLA. The statement is a marketing claim, not a binding SLA.",
      "confidence": "high"
    },
    {
      "field": "soc2",
      "url": "https://www.ideracorp.com/Legal/APILayer/SecurityStatement",
      "excerpt": "We use robust security measures, which encompass both technical and organizational security controls, to prevent data loss, information leaks, or other unauthorized data processing operations. No SOC2, HIPAA, ISO 27001, or PCI DSS certifications are mentioned.",
      "confidence": "high"
    },
    {
      "field": "iso_27001",
      "url": "https://www.ideracorp.com/Legal/APILayer/SecurityStatement",
      "excerpt": "Security statement covers physical access, system access, data access controls, and breach notification — no mention of ISO 27001 certification.",
      "confidence": "high"
    },
    {
      "field": "webhooks_supported",
      "url": "https://positionstack.com/faq",
      "excerpt": "No webhook functionality mentioned anywhere in official documentation or FAQ pages. Positionstack is a synchronous REST API.",
      "confidence": "medium"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://positionstack.com/faq",
      "excerpt": "Rate limits vary by subscription tier — from hundreds of API lookups per month all the way to millions of geocoding requests per hour. Specific per-second/per-minute rates are not published.",
      "confidence": "medium"
    },
    {
      "field": "known_restrictions",
      "url": "https://positionstack.com/terms",
      "excerpt": "Users cannot store, distribute, or otherwise exploit positionstack API Data & Services for any other purposes beyond personal reference use within applications. End users must use data strictly for their own personal use. Unused amounts of call usage will not be carried over from one monthly period to the next.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://www.tutorialsteacher.com/articles/geocoding-rest-api-positionstack",
      "excerpt": "Each registered positionstack account is associated with a unique API access key, which is used to authenticate with the API when geocoding. A basic example of a forward geocoding request looks like: https://api.positionstack.com/v1/forward?access_key=YOUR_ACCESS_KEY",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://www.tutorialsteacher.com/articles/geocoding-rest-api-positionstack",
      "excerpt": "Base URL: https://api.positionstack.com/v1/ — Average API response times range between 10ms and 100ms depending on the size of your request",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://www.tutorialsteacher.com/articles/geocoding-rest-api-positionstack",
      "excerpt": "https://api.positionstack.com/v1/forward — the version number is embedded in the URL path",
      "confidence": "high"
    },
    {
      "field": "error_format",
      "url": "https://docs.apilayer.com/positionstack/docs/getting-started",
      "excerpt": "When an API request fails, the API returns an error object which contains the sub-objects code and message indicating which type of error has occurred. If a validation_error occurs, there will be an additional context sub-object containing information about one or multiple validation errors.",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Basic Plan — Cost: $9.99/month (monthly) or $8.99/month (annual billing) — Limit: 100,000 requests monthly — Features: Commercial license, standard support, extended rate limit, multiple output formats",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://positionstack.com/faq",
      "excerpt": "average uptime rate of nearly 100% (99.9%), calculated based on the past 12 months",
      "confidence": "medium"
    },
    {
      "field": "vendor_description",
      "url": "https://github.com/apilayer/positionstack",
      "excerpt": "Free, Real-Time Geocoding & Maps API. positionstack was built to offer a free, reliable and powerful alternative to Enterprise-geocoding providers.",
      "confidence": "high"
    },
    {
      "field": "primary_use_cases",
      "url": "https://positionstack.com/product",
      "excerpt": "Forward Geocoding: the process of looking up a plain-text address or place name. Reverse Geocoding: performed by passing latitude and longitude values of a desired location to the API.",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Professional and Business plans include access to a batch endpoint for processing multiple requests.",
      "confidence": "high"
    },
    {
      "field": "sdk_languages",
      "url": "https://github.com/apilayer/positionstack",
      "excerpt": "The documentation mentions compatibility with multiple programming languages: PHP, Python, Java, Node, Ruby, Angular, Go and JavaScript.",
      "confidence": "medium"
    },
    {
      "field": "has_published_pricing",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Free: $0/month. Basic: $9.99/month. Professional: $49.99/month. Business: $99.99/month. Enterprise: Custom pricing upon request.",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://positionstack.com/signup/free",
      "excerpt": "The free plan offers 100 requests per month at no cost ($0.00/mo).",
      "confidence": "high"
    },
    {
      "field": "enterprise_plan_available",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Enterprise Plan: Custom pricing available upon request. Flexible volume-based request quota. Custom solutions, flexible rate limits, all standard features included.",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://positionstack.com/faq",
      "excerpt": "Every effort is made to ensure the highest possible level of availability and consistency, and we are proud to have an average uptime rate of nearly 100% (99.9%), calculated based on the past 12 months.",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://positionstack.com/privacy",
      "excerpt": "The processing of personal data takes place in compliance with the General Data Protection Regulation (GDPR) and the Austrian data protection act. apilayer Data Products GmbH (Vienna, Austria) serves as the data controller.",
      "confidence": "high"
    },
    {
      "field": "hipaa",
      "url": "https://www.ideracorp.com/Legal/APILayer/SecurityStatement",
      "excerpt": "Security statement covers physical access, system access, data access controls, and breach notification — no mention of HIPAA, SOC2, ISO 27001, or PCI DSS compliance.",
      "confidence": "high"
    },
    {
      "field": "pci_dss",
      "url": "https://www.ideracorp.com/Legal/APILayer/SecurityStatement",
      "excerpt": "Security statement covers physical access, system access, data access controls, and breach notification — no mention of PCI DSS compliance.",
      "confidence": "high"
    },
    {
      "field": "sandbox_available",
      "url": "https://positionstack.com/faq",
      "excerpt": "No sandbox or test environment is mentioned in the official FAQ, documentation, or pricing pages. Only the live production API is documented.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://marketplace.apilayer.com/docs/article/rate-limits",
      "excerpt": "Rate limits define your allowance for the number of API requests in a given time period. Response headers include X-RateLimit-Limit-Day, X-RateLimit-Limit-Month. Once limits are reached, the API returns HTTP 429.",
      "confidence": "medium"
    },
    {
      "field": "known_restrictions",
      "url": "https://github.com/apilayer/positionstack",
      "excerpt": "Repository archived (read-only) as of June 20, 2024.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://positionstack.com/documentation",
      "excerpt": "Each registered positionstack account is associated with a unique API access key, which is used to authenticate with the API when geocoding.",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://docs.apilayer.com/positionstack/docs/positionstack-api-v-1-0-0",
      "excerpt": "Positionstack API V 1.0.0 — endpoint structure uses /v1/ path prefix for all requests",
      "confidence": "high"
    },
    {
      "field": "api_style",
      "url": "https://www.programmableweb.com/news/introduction-to-positionstacks-forward-and-reverse-batch-geocoding-rest-api/sponsored-content/2020/02/03",
      "excerpt": "Introduction to positionstack's Forward and Reverse Batch Geocoding REST API",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://positionstack.com/pricing",
      "excerpt": "Free Tier — Cost: $0/month — Limit: 100 Requests — Features: Personal use, forward/reverse geocoding, HTTPS encryption",
      "confidence": "high"
    },
    {
      "field": "price_basis",
      "url": "https://positionstack.com/pricing",
      "excerpt": "All plans charge per API request consumed (monthly allocation with overage fees).",
      "confidence": "high"
    },
    {
      "field": "data_retention_policy_url",
      "url": "https://positionstack.com/privacy",
      "excerpt": "positionstack retains user data as long as you are a registered user of the Product. Beyond that, we only store Data, if it is legally necessary (because of warranty, limitation or retention periods) or otherwise required.",
      "confidence": "high"
    },
    {
      "field": "idempotency_supported",
      "url": "https://positionstack.com/documentation",
      "excerpt": "No idempotency key mechanism is documented in the positionstack API; the API is a read-only geocoding service with no write endpoints requiring idempotency.",
      "confidence": "medium"
    },
    {
      "field": "quickstart_url",
      "url": "https://docs.apilayer.com/positionstack/docs/getting-started",
      "excerpt": "Getting Started — Positionstack — APILayer — the canonical quickstart guide at docs.apilayer.com/positionstack/docs/getting-started",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://www.programmableweb.com/news/introduction-to-positionstacks-forward-and-reverse-batch-geocoding-rest-api/sponsored-content/2020/02/03",
      "excerpt": "Introduction to positionstack's Forward and Reverse Batch Geocoding REST API — published February 3, 2020 on ProgrammableWeb as sponsored content at launch",
      "confidence": "medium"
    },
    {
      "field": "requires_verification",
      "url": "https://positionstack.com/",
      "excerpt": "Free tier available with immediate access after signup — no verification step documented; users receive access key upon registration",
      "confidence": "high"
    }
  ],
  "fields_not_found": [
    "documented_rate_limits per-second/per-minute (not published)",
    "soc2",
    "hipaa",
    "iso_27001",
    "pci_dss",
    "specific_languages_for_results",
    "deprecation_policy_url",
    "sla_url",
    "ga_date",
    "rate_limit_requests",
    "rate_limit_window",
    "webhook_signing",
    "webhook_events_url",
    "mcp_url",
    "notable_customers",
    "sdk_packages"
  ],
  "source_confidence": "high",
  "last_verified_at": "2026-06-14T00:00:00.000Z",
  "contribute": {
    "note": "This data is crowd-editable. Suggest corrections or leave a review via these endpoints - no auth required, requests are rate-limited, and every submission is reviewed before it goes live. For a field edit, {field} is any key in this response and a citation is required.",
    "endpoints": [
      {
        "action": "review",
        "label": "Leave a review or comment",
        "method": "POST",
        "url": "https://apio.sh/api/feedback/positionstack",
        "example_body": {
          "kind": "review",
          "rating": 5,
          "body": "Your experience with this API…"
        }
      },
      {
        "action": "field_edit",
        "label": "Suggest a correction to a field (cite a source)",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/positionstack/{field}",
        "example_body": {
          "value": "corrected value",
          "citations": [
            {
              "url": "https://source.example/page",
              "excerpt": "supporting quote"
            }
          ],
          "note": "what changed and why"
        }
      },
      {
        "action": "new_api",
        "label": "Suggest a new API to add",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/api",
        "example_body": {
          "value": {
            "name": "Acme API",
            "website_url": "https://acme.example"
          },
          "citations": [
            {
              "url": "https://acme.example"
            }
          ]
        }
      },
      {
        "action": "token",
        "label": "Optional - raise your rate limit",
        "method": "GET",
        "url": "https://apio.sh/api/feedback/token"
      }
    ]
  }
}