Searoutes CO2 Emissions API

Multimodal CO2e emission calculations (sea, road, rail, air, inland water).

OpenAPI Specification

searoutes-co2-emissions-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Searoutes CO2 Emissions API
  description: Maritime routing and carbon-emissions REST API. Compute sea routes and distances, geocode ports and places, calculate multimodal CO2e emissions, track vessels via AIS, look up carriers and services, and retrieve weather along routes. All endpoints are served from https://api.searoutes.com and authenticated with an x-api-key header. Endpoint paths are modeled from the published Searoutes developer documentation and llms.txt reference index; request/response schemas are summarized rather than exhaustive.
  termsOfService: https://searoutes.com/terms/
  contact:
    name: Searoutes
    email: contact@searoutes.com
    url: https://developer.searoutes.com/reference/introduction
  version: '2.0'
servers:
- url: https://api.searoutes.com
security:
- ApiKeyAuth: []
tags:
- name: CO2 Emissions
  description: Multimodal CO2e emission calculations (sea, road, rail, air, inland water).
paths:
  /co2/v2/shipment:
    get:
      operationId: getShipmentCo2
      tags:
      - CO2 Emissions
      summary: Get CO2e emissions for a multimodal shipment
      description: ISO 14083 / GLEC-accredited multimodal shipment CO2e (v2.1).
      parameters:
      - name: fromLocode
        in: query
        schema:
          type: string
      - name: toLocode
        in: query
        schema:
          type: string
      - name: nContainers
        in: query
        schema:
          type: integer
      - name: containerSizeTeu
        in: query
        schema:
          type: number
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/vessel:
    get:
      operationId: getVesselCo2
      tags:
      - CO2 Emissions
      summary: Compute emissions for an ocean voyage by vessel or trade lane
      parameters:
      - name: imo
        in: query
        schema:
          type: integer
      - name: fromLocode
        in: query
        schema:
          type: string
      - name: toLocode
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/road:
    get:
      operationId: getRoadCo2
      tags:
      - CO2 Emissions
      summary: Calculate road transport emissions
      parameters:
      - $ref: '#/components/parameters/Locations'
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/rail:
    get:
      operationId: getRailCo2
      tags:
      - CO2 Emissions
      summary: Compute rail journey emissions
      parameters:
      - $ref: '#/components/parameters/Locations'
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/aircraft:
    get:
      operationId: getAircraftCo2
      tags:
      - CO2 Emissions
      summary: Determine air cargo or passenger emissions
      parameters:
      - $ref: '#/components/parameters/Locations'
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/inland-water:
    get:
      operationId: getInlandWaterCo2
      tags:
      - CO2 Emissions
      summary: Calculate inland waterway emissions
      parameters:
      - $ref: '#/components/parameters/Locations'
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/run:
    post:
      operationId: getMilkRunCo2
      tags:
      - CO2 Emissions
      summary: Compute milk-run (collection/delivery) emissions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/plan:
    get:
      operationId: getPlanCo2
      tags:
      - CO2 Emissions
      summary: Get CO2e statistics for carriers on a port pair
      parameters:
      - name: fromLocode
        in: query
        schema:
          type: string
      - name: toLocode
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/proformas/{hash}:
    get:
      operationId: getProformaCo2
      tags:
      - CO2 Emissions
      summary: Retrieve CO2 details for a specific itinerary
      parameters:
      - name: hash
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /co2/v2/execution/{hash}:
    get:
      operationId: getExecutionCo2
      tags:
      - CO2 Emissions
      summary: Access CO2e breakdown for an ocean schedule execution
      parameters:
      - name: hash
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Co2Response'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Co2Response:
      description: CO2e emission results in grams/kilograms with methodology metadata.
      content:
        application/json:
          schema:
            type: object
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    Locations:
      name: locations
      in: path
      required: true
      description: Coordinate pairs (longitude,latitude) or UN/LOCODEs separated by semicolons. Up to 20 positions.
      schema:
        type: string
      example: -1.27,50.80;8.83,53.88
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key issued on signup and shown on the developer documentation authentication page. Pass it in the x-api-key request header.