WeatherAPI.com provides access to weather and geo data via a JSON/XML restful API. It allows developers to create desktop, web and mobile applications using this data very easy.
We provide following data through our API:
- Real-time weather
- 14 day weather forecast
- Historical Weather
- Marine Weather and Tide Data
- Future Weather (Upto 365 days ahead)
- Daily and hourly intervals
- 15 min interval (Enterprise only)
- Astronomy
- Time zone
- Location data
- Sports
- Search or Autocomplete API
- Weather Alerts
- Air Quality Data
- Bulk Request
You need to signup and then you can find your API key under your account, and start using API right away!
Try our weather API by using interactive API Explorer.
We also have SDK for popular framework/languages available on Github for quick integrations.
If you find any features missing or have any suggestions, please contact us.
API access to the data is protected by an API key. If at anytime, you find the API key has become vulnerable, please regenerate the key using Regenerate button next to the API key.
Authentication to the WeatherAPI.com API is provided by passing your API key as request parameter through an API .
key=YOUR API KEY
PHP 5.5 and later
To install the bindings via Composer, add the following to composer.json
:
{
"repositories": [
{
"type": "git",
"url": "https://github.com//.git"
}
],
"require": {
"/": "*@dev"
}
}
Then run composer install
Download the files and include autoload.php
:
require_once('/path/to/SwaggerClient-php/vendor/autoload.php');
To run the unit tests:
composer install
./vendor/bin/phpunit
Please follow the installation procedure and then run the following:
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure API key authorization: ApiKeyAuth
$config = Swagger\Client\Configuration::getDefaultConfiguration()->setApiKey('key', 'YOUR_API_KEY');
// Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
// $config = Swagger\Client\Configuration::getDefaultConfiguration()->setApiKeyPrefix('key', 'Bearer');
$apiInstance = new Swagger\Client\Api\APIsApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$q = "q_example"; // string | Pass US Zipcode, UK Postcode, Canada Postalcode, IP address, Latitude/Longitude (decimal degree) or city name. Visit [request parameter section](https://www.weatherapi.com/docs/#intro-request) to learn more.
$dt = new \DateTime("2013-10-20"); // \DateTime | Date on or after 1st Jan, 2015 in yyyy-MM-dd format
try {
$result = $apiInstance->astronomy($q, $dt);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling APIsApi->astronomy: ', $e->getMessage(), PHP_EOL;
}
?>
All URIs are relative to https://api.weatherapi.com/v1
Class | Method | HTTP request | Description |
---|---|---|---|
APIsApi | astronomy | GET /astronomy.json | Astronomy API |
APIsApi | forecastWeather | GET /forecast.json | Forecast API |
APIsApi | futureWeather | GET /future.json | Future API |
APIsApi | historyWeather | GET /history.json | History API |
APIsApi | ipLookup | GET /ip.json | IP Lookup API |
APIsApi | marineWeather | GET /marine.json | Marine Weather API |
APIsApi | realtimeWeather | GET /current.json | Realtime API |
APIsApi | searchAutocompleteWeather | GET /search.json | Search/Autocomplete API |
APIsApi | timeZone | GET /timezone.json | Time Zone API |
- Alerts
- AlertsAlert
- ArrayOfSearch
- Astronomy
- AstronomyAstro
- Current
- CurrentAirQuality
- CurrentCondition
- Error400
- Error401
- Error403
- Forecast
- ForecastAstro
- ForecastCondition
- ForecastDay
- ForecastDayCondition
- ForecastForecastday
- ForecastHour
- Ip
- Location
- Marine
- MarineForecastday
- MarineHour
- Search
- Type: API key
- API key parameter name: key
- Location: URL query string