> ## Documentation Index
> Fetch the complete documentation index at: https://docs.geekflare.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Load Time: Multi-Location Testing

> Test website load time and reachability from multiple countries in a single Load Time API request.

By default, [Load Time](/endpoint/load-time) tests a URL from Geekflare's US server. Pass `targetCountries` to also test reachability from up to **3 additional locations** via proxy, alongside the default US test — useful for confirming a site loads correctly for visitors in different regions, or diagnosing geo-specific outages. Costs a flat **8 credits** per request, regardless of how many locations (1–3) you test.

## How It Works

For each request with `targetCountries` set, Geekflare tests the URL from:

1. The default **US server** (no proxy)
2. Each country listed in `targetCountries`, routed through a proxy in that location

The response reports whether the site was reachable from every tested location, both as an overall summary and a per-location breakdown.

## Testing from Multiple Locations

Pass an array of up to 3 ISO alpha-2 country codes in `targetCountries`:

<CodeGroup>
  ```typescript Node.js SDK theme={null}
  const result = await client.loadTime({
    url: 'https://example.com',
    targetCountries: ['gb', 'ca']
  });
  ```

  ```python Python SDK theme={null}
  result = client.load_time(LoadTimeDto(
      url='https://example.com',
      target_countries=['gb', 'ca']
  ))
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.geekflare.com/loadtime \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"url": "https://example.com", "targetCountries": ["gb", "ca"]}'
  ```
</CodeGroup>

<Accordion title="Response">
  ```json theme={null}
  {
    "timestamp": 1785938505112,
    "apiStatus": "success",
    "apiCode": 200,
    "message": "Reachable from all 3 tested locations.",
    "meta": {
      "url": "https://example.com",
      "test": { "id": "cc20cf78-3bfb-4ad4-8e75-4be137f7fb3d" },
      "targetCountries": ["us", "gb", "ca"],
      "followRedirect": true
    },
    "summary": {
      "reachable": ["us", "gb", "ca"]
    },
    "locations": [
      { "location": "us", "countryName": "United States", "status": "reachable", "data": {} },
      { "location": "gb", "countryName": "Great Britain", "status": "reachable", "data": {} },
      { "location": "ca", "countryName": "Canada", "status": "reachable", "data": {} }
    ]
  }
  ```
</Accordion>

<Info>
  `meta.targetCountries` in the response always includes the default `us`
  location plus every country you requested. So a 2-country request
  returns 3 tested locations total.
</Info>

## Without `targetCountries`

If you omit `targetCountries`, Load Time behaves as before: a single test from the US server, with the full [timing breakdown](/endpoint/load-time) (DNS, connect, TLS, timings, headers, etc.) returned directly in `data`.

## Next Steps

<CardGroup cols={2}>
  <Card title="Load Time Reference" icon="clock" href="/endpoint/load-time">
    Full parameter and response reference.
  </Card>

  <Card title="Using Proxies" icon="globe" href="/using-proxies">
    See which other endpoints support proxy routing.
  </Card>
</CardGroup>
