Tomorrow.io Weather on Routes API

Retrieve weather along an arbitrary polyline of waypoints at the times each segment is expected to be traversed — powers route optimization, logistics planning, and ETA-aware hazard detection.

Tomorrow.io Weather on Routes API is one of 8 APIs that Tomorrow.io publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Weather, Route, Logistics, and ETA. The published artifact set on APIs.io includes an API reference, an OpenAPI specification, sample payloads, and 1 Naftiko capability spec.

OpenAPI Specification

tomorrow-io-route-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Tomorrow.io Weather on Routes API
  version: '4.0'
  description: |
    Retrieve weather conditions and forecast along an arbitrary route (polyline of
    waypoints) at the times each segment is expected to be traversed. Powers route
    optimization, logistics planning, and ETA-aware weather hazard detection.
  contact:
    name: Tomorrow.io Support
    url: https://support.tomorrow.io
servers:
  - url: https://api.tomorrow.io/v4
    description: Tomorrow.io Production
security:
  - apikeyAuth: []
tags:
  - name: Route
    description: Weather along a route.
paths:
  /route:
    post:
      tags:
        - Route
      summary: Retrieve Weather Along Route
      operationId: postRoute
      description: |
        Submit a polyline of waypoints with arrival times and receive weather data
        layers at each waypoint at its predicted arrival time.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RouteRequest'
      parameters:
        - name: apikey
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Per-waypoint weather payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouteResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: query
      name: apikey
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    RouteRequest:
      type: object
      required:
        - waypoints
        - fields
      properties:
        waypoints:
          type: array
          items:
            type: object
            required:
              - location
              - time
            properties:
              location:
                type: object
                properties:
                  type:
                    type: string
                    enum: [Point]
                  coordinates:
                    type: array
                    items:
                      type: number
              time:
                type: string
                format: date-time
        fields:
          type: array
          items:
            type: string
        units:
          type: string
          enum: [metric, imperial]
    RouteResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            waypoints:
              type: array
              items:
                type: object
                properties:
                  location:
                    type: object
                    properties:
                      lat:
                        type: number
                      lon:
                        type: number
                  time:
                    type: string
                    format: date-time
                  values:
                    type: object
                    additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
        type:
          type: string
        message:
          type: string