OpenAQ · Capability
OpenAQ — Projects
OpenAQ — Projects. 2 operations. Lead operation: OpenAQ Projects. Self-contained Naftiko capability covering one Openaq business surface.
What You Can Do
GET
Projectsgetv2projectsget
— OpenAQ Projects
/v1/v2/projects
GET
Projectsgetv2projectsprojectidget
— OpenAQ Project by ID
/v1/v2/projects/{project-id}
MCP Tools
openaq-projects
OpenAQ Projects
read-only
idempotent
openaq-project-id
OpenAQ Project by ID
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: OpenAQ — Projects
description: 'OpenAQ — Projects. 2 operations. Lead operation: OpenAQ Projects. Self-contained Naftiko capability covering
one Openaq business surface.'
tags:
- Openaq
- Projects
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
OPENAQ_API_KEY: OPENAQ_API_KEY
capability:
consumes:
- type: http
namespace: openaq-projects
baseUri: ''
description: OpenAQ — Projects business capability. Self-contained, no shared references.
resources:
- name: v2-projects
path: /v2/projects
operations:
- name: projectsgetv2projectsget
method: GET
description: OpenAQ Projects
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: country_id
in: query
type: string
required: true
- name: limit
in: query
type: string
required: true
- name: page
in: query
type: string
required: true
- name: offset
in: query
type: string
required: true
- name: sort
in: query
type: string
description: Limit results by a certain country using two digit country ID. e.g. 13
- name: parameter_id
in: query
type: string
description: Limit results by a certain country using two letter country code. e.g. ?country=US or ?country=US&country=MX
- name: parameter
in: query
type: string
description: Change the number of results returned. e.g. limit=1000 will return up to 1000 results
- name: unit
in: query
type: string
description: Paginate through results. e.g. page=1 will return first page of results
- name: project_id
in: query
type: string
- name: project
in: query
type: string
description: Define sort order. e.g. ?sort=asc
- name: order_by
in: query
type: string
description: (optional) A parameter ID to filter measurement results. e.g. parameter_id=2 (i.e. PM2.5) will limit
measurement results to only PM2.5 measurements
- name: is_mobile
in: query
type: string
description: (optional) A parameter name or ID by which to filter measurement results. e.g. parameter=pm25 or parameter=pm25¶meter=pm10
- name: is_analysis
in: query
type: string
- name: entity
in: query
type: string
- name: sensor_type
in: query
type: string
- name: source_name
in: query
type: string
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: v2-projects-project_id
path: /v2/projects/{project_id}
operations:
- name: projectsgetv2projectsprojectidget
method: GET
description: OpenAQ Project by ID
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: project_id
in: path
type: integer
required: true
authentication:
type: apikey
key: X-API-Key
value: '{{env.OPENAQ_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: openaq-projects-rest
port: 8080
description: REST adapter for OpenAQ — Projects. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/v2/projects
name: v2-projects
description: REST surface for v2-projects.
operations:
- method: GET
name: projectsgetv2projectsget
description: OpenAQ Projects
call: openaq-projects.projectsgetv2projectsget
with:
country_id: rest.country_id
limit: rest.limit
page: rest.page
offset: rest.offset
sort: rest.sort
parameter_id: rest.parameter_id
parameter: rest.parameter
unit: rest.unit
project_id: rest.project_id
project: rest.project
order_by: rest.order_by
is_mobile: rest.is_mobile
is_analysis: rest.is_analysis
entity: rest.entity
sensor_type: rest.sensor_type
source_name: rest.source_name
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/v2/projects/{project-id}
name: v2-projects-project-id
description: REST surface for v2-projects-project_id.
operations:
- method: GET
name: projectsgetv2projectsprojectidget
description: OpenAQ Project by ID
call: openaq-projects.projectsgetv2projectsprojectidget
with:
project_id: rest.project_id
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: openaq-projects-mcp
port: 9090
transport: http
description: MCP adapter for OpenAQ — Projects. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: openaq-projects
description: OpenAQ Projects
hints:
readOnly: true
destructive: false
idempotent: true
call: openaq-projects.projectsgetv2projectsget
with:
country_id: tools.country_id
limit: tools.limit
page: tools.page
offset: tools.offset
sort: tools.sort
parameter_id: tools.parameter_id
parameter: tools.parameter
unit: tools.unit
project_id: tools.project_id
project: tools.project
order_by: tools.order_by
is_mobile: tools.is_mobile
is_analysis: tools.is_analysis
entity: tools.entity
sensor_type: tools.sensor_type
source_name: tools.source_name
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: openaq-project-id
description: OpenAQ Project by ID
hints:
readOnly: true
destructive: false
idempotent: true
call: openaq-projects.projectsgetv2projectsprojectidget
with:
project_id: tools.project_id
outputParameters:
- type: object
mapping: $.