Atmospore Pollen Forecasts · Arazzo Workflow

Plan an allergy week for a location

Version 1.0.0

Resolve the Atmospore species catalogue, rank the worst allergens for the coming week at a coordinate, then pull the day-by-day forecast for the species the user actually reacts to. Every operationId below exists verbatim in the referenced OpenAPI.

1 workflow 1 source API 1 provider
View Spec View on GitHub weatherpollenallergyenvironmental-datahealthgeospatialforecastingsmart-homemcpopenapinorwayclimateArazzoWorkflows

Provider

atmospore-pollen-forecasts

Workflows

plan-allergy-week
Rank this week's allergens at a point, then forecast the ones that matter.
Step 1 is unauthenticated and cacheable for 24 hours. Steps 2 and 3 require the x-api-key header. Two API calls per run against the plan quota.
3 steps inputs: apiKey, dt, forecast_days, lat, lon outputs: daily_detail, units, worst_species
1
list-species
getSpecies
Resolve the 25 species slugs, categories, localised names and risk thresholds. No API key required; cache for 24 hours (Cache-Control max-age=86400).
2
rank-allergens
getPollenTop
Rank every species by severity across the requested window.
3
daily-detail-for-worst
getPollenForecast
Pull the day-by-day point forecast filtered to the worst-ranked species, so the answer can name the specific days to avoid.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Plan an allergy week for a location
  version: 1.0.0
  description: >-
    Resolve the Atmospore species catalogue, rank the worst allergens for the coming week at a
    coordinate, then pull the day-by-day forecast for the species the user actually reacts to.
    Every operationId below exists verbatim in the referenced OpenAPI.
sourceDescriptions:
  - name: atmospore
    url: ../openapi/atmospore-pollen-forecasts-openapi-original.json
    type: openapi
workflows:
  - workflowId: plan-allergy-week
    summary: Rank this week's allergens at a point, then forecast the ones that matter.
    description: >-
      Step 1 is unauthenticated and cacheable for 24 hours. Steps 2 and 3 require the x-api-key
      header. Two API calls per run against the plan quota.
    inputs:
      type: object
      required: [lat, lon, dt]
      properties:
        apiKey:
          type: string
          description: Atmospore API key from https://atmospore.com/account (x-api-key header).
        lat:
          type: number
          description: Latitude. Example 59.913868 (Oslo).
        lon:
          type: number
          description: Longitude. Example 10.7522 (Oslo).
        dt:
          type: string
          format: date
          description: Start date, YYYY-MM-DD.
        forecast_days:
          type: integer
          default: 7
          description: Horizon, 1-14.
    steps:
      - stepId: list-species
        description: >-
          Resolve the 25 species slugs, categories, localised names and risk thresholds. No API
          key required; cache for 24 hours (Cache-Control max-age=86400).
        operationId: getSpecies
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          species_catalogue: $response.body#/data
          total_species: $response.body#/meta/total_species
          units: $response.body#/meta/units

      - stepId: rank-allergens
        description: Rank every species by severity across the requested window.
        operationId: getPollenTop
        parameters:
          - name: lat
            in: query
            value: $inputs.lat
          - name: lon
            in: query
            value: $inputs.lon
          - name: dt
            in: query
            value: $inputs.dt
          - name: forecast_days
            in: query
            value: $inputs.forecast_days
          - name: x-api-key
            in: header
            value: $inputs.apiKey
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          ranked: $response.body#/data
          worst_species: $response.body#/data/0/species
          worst_display_name: $response.body#/data/0/display_name
          date_range: $response.body#/meta/date_range

      - stepId: daily-detail-for-worst
        description: >-
          Pull the day-by-day point forecast filtered to the worst-ranked species, so the answer
          can name the specific days to avoid.
        operationId: getPollenForecast
        parameters:
          - name: lat
            in: query
            value: $inputs.lat
          - name: lon
            in: query
            value: $inputs.lon
          - name: dt
            in: query
            value: $inputs.dt
          - name: forecast_days
            in: query
            value: $inputs.forecast_days
          - name: species
            in: query
            value: $steps.rank-allergens.outputs.worst_species
          - name: x-api-key
            in: header
            value: $inputs.apiKey
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          days: $response.body#/data
          generated_at: $response.body#/meta/generated_at
    outputs:
      worst_species: $steps.rank-allergens.outputs.worst_display_name
      daily_detail: $steps.daily-detail-for-worst.outputs.days
      units: $steps.list-species.outputs.units