openapi: 3.0.3 info: title: Tomorrow.io Weather Alerts Historical API description: Unified Tomorrow.io v4 HTTP API for weather and climate intelligence. Combines realtime observations, forecast timelines (minutely, hourly, daily, current), historical data up to 20 years, weather along a route, raster map tiles, plus management surfaces for Locations, Insights, Alerts, and Events. version: 4.0.1 contact: name: Tomorrow.io Support url: https://www.tomorrow.io/support/ license: name: Tomorrow.io Terms of Service url: https://www.tomorrow.io/terms-of-service/ x-generated-from: documentation x-last-validated: '2026-05-30' servers: - url: https://api.tomorrow.io/v4 description: Tomorrow.io v4 production API security: - apiKeyQuery: [] tags: - name: Historical description: Historical weather data for a point or polygon, up to 20 years back. paths: /historical: post: operationId: postHistoricalTimeline summary: Tomorrow.io Post Historical Timeline description: Returns historical weather timelines for a location, up to 20 years back. tags: - Historical requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/HistoricalRequest' examples: PostHistoricalTimelineRequestExample: summary: Default postHistoricalTimeline request x-microcks-default: true value: fields: - temperature - precipitationIntensity units: metric timesteps: - 1d startTime: '2024-01-01T00:00:00Z' endTime: '2024-01-31T23:59:59Z' timezone: example responses: '200': description: Historical timeline response. content: application/json: schema: $ref: '#/components/schemas/TimelinesResponse' examples: PostHistoricalTimeline200Example: summary: Default postHistoricalTimeline 200 response x-microcks-default: true value: data: timelines: - timestep: 1h startTime: '2026-05-30T13:00:00Z' endTime: '2026-05-30T13:00:00Z' intervals: - startTime: '2026-05-30T13:00:00Z' values: temperature: 21.2 temperatureApparent: 20.4 humidity: 64.0 dewPoint: 13.4 windSpeed: 3.1 windDirection: 220 windGust: 6.2 pressureSeaLevel: 1013.2 pressureSurfaceLevel: 1010.5 precipitationIntensity: 0.0 precipitationProbability: 5 precipitationType: 0 cloudCover: 12 cloudBase: 1.5 cloudCeiling: 2.4 visibility: 16 weatherCode: 1000 uvIndex: 6 uvHealthConcern: 2 epaIndex: 42 epaHealthConcern: 1 epaPrimaryPollutant: 0 particulateMatter25: 8.4 particulateMatter10: 14.1 pollutantO3: 28 pollutantNO2: 11 pollutantCO: 0.4 pollutantSO2: 1 treeIndex: 2 grassIndex: 1 weedIndex: 1 fireIndex: 8.2 solarGHI: 480 solarDIF: 120 solarDIR: 360 moonPhase: 3 hailBinary: 0 '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: TimelinesResponse: type: object description: Tomorrow.io Timelines response envelope. properties: data: type: object properties: timelines: type: array items: $ref: '#/components/schemas/Timeline' HistoricalRequest: type: object description: Historical Timelines request body. properties: location: oneOf: - type: string - $ref: '#/components/schemas/GeoJSONGeometry' fields: type: array items: type: string example: - temperature - precipitationIntensity units: type: string enum: - metric - imperial default: metric timesteps: type: array items: type: string enum: - 1h - 1d example: - 1d startTime: type: string format: date-time example: '2024-01-01T00:00:00Z' endTime: type: string format: date-time example: '2024-01-31T23:59:59Z' timezone: type: string default: UTC required: - location - fields - startTime - endTime GeoJSONGeometry: type: object description: GeoJSON geometry — Point, LineString, or Polygon. properties: type: type: string enum: - Point - LineString - Polygon example: Point coordinates: type: array items: {} example: - -71.0466 - 42.3478 required: - type - coordinates Timeline: type: object description: One timeline at a specific resolution. properties: timestep: type: string example: 1h startTime: type: string format: date-time endTime: type: string format: date-time intervals: type: array items: $ref: '#/components/schemas/TimelineInterval' WeatherValues: type: object description: Map of weather data field names to numeric values for one timestep. additionalProperties: true properties: temperature: type: number format: double description: Air temperature (Celsius for metric, Fahrenheit for imperial). example: 21.2 temperatureApparent: type: number format: double example: 20.4 humidity: type: number format: double example: 64.0 dewPoint: type: number format: double example: 13.4 windSpeed: type: number format: double example: 3.1 windDirection: type: number format: double example: 220 windGust: type: number format: double example: 6.2 pressureSeaLevel: type: number format: double example: 1013.2 pressureSurfaceLevel: type: number format: double example: 1010.5 precipitationIntensity: type: number format: double example: 0.0 precipitationProbability: type: number format: double example: 5 precipitationType: type: integer example: 0 cloudCover: type: number format: double example: 12 cloudBase: type: number format: double example: 1.5 cloudCeiling: type: number format: double example: 2.4 visibility: type: number format: double example: 16 weatherCode: type: integer example: 1000 uvIndex: type: integer example: 6 uvHealthConcern: type: integer example: 2 epaIndex: type: integer example: 42 epaHealthConcern: type: integer example: 1 epaPrimaryPollutant: type: integer example: 0 particulateMatter25: type: number format: double example: 8.4 particulateMatter10: type: number format: double example: 14.1 pollutantO3: type: number format: double example: 28 pollutantNO2: type: number format: double example: 11 pollutantCO: type: number format: double example: 0.4 pollutantSO2: type: number format: double example: 1 treeIndex: type: integer example: 2 grassIndex: type: integer example: 1 weedIndex: type: integer example: 1 fireIndex: type: number format: double example: 8.2 solarGHI: type: number format: double example: 480 solarDIF: type: number format: double example: 120 solarDIR: type: number format: double example: 360 moonPhase: type: integer example: 3 hailBinary: type: integer example: 0 TimelineInterval: type: object description: A single timestep entry in a timeline. properties: startTime: type: string format: date-time example: '2026-05-30T13:00:00Z' values: $ref: '#/components/schemas/WeatherValues' Error: type: object description: Standard Tomorrow.io error envelope. properties: code: type: integer example: 400001 description: Internal error code. type: type: string example: Invalid Body Parameters description: Short error type label. message: type: string example: The provided parameters are invalid. description: Human-readable error message. required: - code - type - message responses: TooManyRequests: description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Malformed request. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: apiKeyQuery: type: apiKey in: query name: apikey description: Tomorrow.io API key passed as `apikey` query parameter. Obtain at https://app.tomorrow.io/development/keys.