Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/aleva-se:aleva-se-web-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
contact:
email: hello@aleva.se
description: Public datasets as API endpoints. Every response carries the attribution and licence of its sources in _meta and the X-Attribution header; show the attribution where you use the data.
title: Aleva Web API
version: endpoint:air-passengers-monthly:1:true,endpoint:airport-passengers:1:true,endpoint:consumer-prices:1:true,endpoint:court-rulings:1:true,endpoint:court-rulings-by-court:1:true,endpoint:debt-restructuring:1:true,endpoint:debt-restructuring-by-age:1:true,endpoint:domain-lookup:1:true,endpoint:domains-dropped:1:true,endpoint:domains-expiring:1:true,endpoint:domains-new:1:true,endpoint:domains-valuable:1:true,endpoint:electricity-balance:1:true,endpoint:electricity-forecast:1:true,endpoint:foods:1:true,endpoint:guest-nights:1:true,endpoint:guest-nights-by-country:1:true,endpoint:guest-nights-by-county:1:true,endpoint:house-prices:1:true,endpoint:job-ads:1:true,endpoint:job-ads-national:1:true,endpoint:medicine-shortages:1:true,endpoint:medicine-shortages-by-group:1:true,endpoint:medicine-shortages-monthly:1:true,endpoint:municipal-figures:1:true,endpoint:municipal-figures-latest:1:true,endpoint:party-agreement:1:true,endpoint:party-attendance:1:true,endpoint:population:1:true,endpoint:population-latest:1:true,endpoint:riksbank-rates:1:true,endpoint:stats-dnssec:1:true,endpoint:stats-nameservers:1:true,endpoint:swestr:1:true,endpoint:train-punctuality:1:true,endpoint:train-punctuality-daily:1:true,endpoint:weather-history:1:true,endpoint:weather-now:1:true,endpoint:web-agents:1:true,endpoint:web-ai-stance:1:true,endpoint:web-apis:1:true,endpoint:web-commerce-agents:1:true,endpoint:web-llms:1:true,endpoint:web-mcp-registry:2:true,endpoint:web-mcp-servers:1:true,showcase:agentic-commerce:1:true,showcase:aviation:1:true,showcase:debt:1:true,showcase:domains:1:true,showcase:energy:1:true,showcase:expiring-domains:1:true,showcase:foods:1:true,showcase:jobs:1:true,showcase:llms-txt:1:true,showcase:mcp-registry:2:true,showcase:medicines:1:true,showcase:municipalities:1:true,showcase:rates:1:true,showcase:riksdag:1:true,showcase:rulings:1:true,showcase:sweden:1:true,showcase:swedish-agents:1:true,showcase:swedish-apis:1:true,showcase:tourism:1:true,showcase:trains:1:true,showcase:weather:1:true
servers:
- url: https://api.aleva.se
tags:
- name: Web
paths:
/v1/web/agents:
get:
operationId: web-agents
parameters:
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- description: se or nu one of (comma-separated)
in: query
name: tld.in
required: false
schema:
type: string
- description: Sweep month (first of month) equals
in: query
name: month
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at least
in: query
name: month.gte
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at most
in: query
name: month.lte
required: false
schema:
format: date
type: string
- description: Domain equals
in: query
name: domain
required: false
schema:
type: string
- description: Supports streaming equals
in: query
name: streaming
required: false
schema:
type: boolean
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
domain:
type: string
month:
format: date
type: string
name:
description: Agent name
type: string
provider:
description: Provider organisation
type: string
skill_count:
description: Number of skills
format: int32
type: integer
streaming:
description: Supports streaming
type: boolean
tld:
description: se or nu
type: string
url:
description: Agent card URL
type: string
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: Swedish A2A agents
x-attribution: 'Source: Aleva (aleva.se), CC BY 4.0'
x-bucket: web_agents
x-licenses:
- CC-BY-4.0
x-tier: light
tags:
- Web
/v1/web/ai-stance:
get:
operationId: web-ai-stance
parameters:
- description: Sweep month (first of month), YYYY-MM-DD equals
in: query
name: month
required: false
schema:
format: date
type: string
- description: Sweep month (first of month), YYYY-MM-DD at least
in: query
name: month.gte
required: false
schema:
format: date
type: string
- description: Sweep month (first of month), YYYY-MM-DD at most
in: query
name: month.lte
required: false
schema:
format: date
type: string
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
ai_train_no:
description: Opt out of AI training
format: int64
type: integer
ai_train_yes:
description: Opt in to AI training
format: int64
type: integer
content_signal:
description: Has a Content-Signal line
format: int64
type: integer
disallow_all:
description: 'Disallow: / for all crawlers'
format: int64
type: integer
domains:
description: Domains swept
format: int64
type: integer
has_robots:
description: Had a real robots.txt
format: int64
type: integer
mentions_llms:
description: robots.txt references llms.txt
format: int64
type: integer
mentions_mcp:
description: robots.txt mentions MCP
format: int64
type: integer
month:
description: First of the sweep month
format: date
type: string
reachable:
description: Answered over HTTPS
format: int64
type: integer
tld:
description: se or nu
type: string
with_sitemap:
description: robots.txt declares a sitemap
format: int64
type: integer
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: AI and crawler stance of Swedish websites per month
x-attribution: 'Source: Aleva (aleva.se), CC BY 4.0'
x-bucket: web_ai_stance_monthly
x-licenses:
- CC-BY-4.0
x-tier: light
tags:
- Web
/v1/web/apis:
get:
operationId: web-apis
parameters:
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- description: se or nu one of (comma-separated)
in: query
name: tld.in
required: false
schema:
type: string
- description: Sweep month (first of month) equals
in: query
name: month
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at least
in: query
name: month.gte
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at most
in: query
name: month.lte
required: false
schema:
format: date
type: string
- description: Domain equals
in: query
name: domain
required: false
schema:
type: string
- description: OpenAPI/Swagger version equals
in: query
name: oas_version
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
domain:
type: string
month:
description: Sweep month
format: date
type: string
oas_version:
description: OpenAPI/Swagger version
type: string
operations:
description: Number of operations
format: int32
type: integer
paths:
description: Number of paths
format: int32
type: integer
title:
description: API title
type: string
tld:
description: se or nu
type: string
url:
description: Spec URL
type: string
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: Swedish public APIs (OpenAPI)
x-attribution: 'Source: Aleva (aleva.se), CC BY 4.0'
x-bucket: web_api_catalog
x-licenses:
- CC-BY-4.0
x-tier: light
tags:
- Web
/v1/web/commerce-agents:
get:
operationId: web-commerce-agents
parameters:
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- description: se or nu one of (comma-separated)
in: query
name: tld.in
required: false
schema:
type: string
- description: Sweep month (first of month) equals
in: query
name: month
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at least
in: query
name: month.gte
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at most
in: query
name: month.lte
required: false
schema:
format: date
type: string
- description: Domain equals
in: query
name: domain
required: false
schema:
type: string
- description: e.g. shopify equals
in: query
name: platform
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
capability_count:
description: Number of capabilities
format: int32
type: integer
domain:
type: string
mcp_endpoint:
description: MCP endpoint, if any
type: string
month:
format: date
type: string
platform:
description: Platform (e.g. shopify)
type: string
protocol_version:
description: UCP version
type: string
tld:
description: se or nu
type: string
url:
description: Manifest URL
type: string
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: Swedish agentic commerce (UCP)
x-attribution: 'Source: Aleva (aleva.se), CC BY 4.0'
x-bucket: web_commerce_agents
x-licenses:
- CC-BY-4.0
x-tier: light
tags:
- Web
/v1/web/llms:
get:
operationId: web-llms
parameters:
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- description: se or nu one of (comma-separated)
in: query
name: tld.in
required: false
schema:
type: string
- description: Sweep month (first of month) equals
in: query
name: month
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at least
in: query
name: month.gte
required: false
schema:
format: date
type: string
- description: Sweep month (first of month) at most
in: query
name: month.lte
required: false
schema:
format: date
type: string
- description: Domain equals
in: query
name: domain
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
domain:
type: string
links:
description: Number of links
format: int32
type: integer
month:
format: date
type: string
sections:
description: Number of sections
format: int32
type: integer
title:
description: First heading
type: string
tld:
description: se or nu
type: string
url:
description: llms.txt URL
type: string
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: llms.txt in Sweden
x-attribution: 'Source: Aleva (aleva.se), CC BY 4.0'
x-bucket: web_llms
x-licenses:
- CC-BY-4.0
x-tier: light
tags:
- Web
/v1/web/mcp-registry:
get:
operationId: web-mcp-registry
parameters:
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- description: se or nu one of (comma-separated)
in: query
name: tld.in
required: false
schema:
type: string
- description: crawl, submitted or ucp equals
in: query
name: source
required: false
schema:
type: string
- description: crawl, submitted or ucp not equal to
in: query
name: source.ne
required: false
schema:
type: string
- description: crawl, submitted or ucp one of (comma-separated)
in: query
name: source.in
required: false
schema:
type: string
- description: Domain equals
in: query
name: domain
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
description:
description: Short description
type: string
domain:
type: string
month:
description: Snapshot month
format: date
type: string
name:
description: Server name
type: string
source:
description: crawl | submitted
type: string
tld:
description: se or nu
type: string
tool_count:
description: Advertised tools (0 if not introspected)
format: int32
type: integer
transport:
description: http | sse | stdio
type: string
url:
description: MCP endpoint URL
type: string
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: Swedish MCP servers (Aleva registry)
x-attribution: 'Source: Aleva (aleva.se)'
x-bucket: web_mcp_registry
x-licenses:
- Aleva data licence (proprietary)
x-tier: light
tags:
- Web
/v1/web/mcp-servers:
get:
operationId: web-mcp-servers
parameters:
- description: mcp | ucp | a2a | openapi | api-catalog | llms equals
in: query
name: kind
required: false
schema:
type: string
- description: mcp | ucp | a2a | openapi | api-catalog | llms one of (comma-separated)
in: query
name: kind.in
required: false
schema:
type: string
- description: e.g. shopify equals
in: query
name: platform
required: false
schema:
type: string
- description: se or nu equals
in: query
name: tld
required: false
schema:
type: string
- in: query
name: limit
required: false
schema:
default: 100
maximum: 1000
minimum: 1
type: integer
- description: next_cursor from the previous page
in: query
name: cursor
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
_meta:
$ref: '#/components/schemas/Meta'
data:
items:
properties:
detail:
description: Protocol version / capabilities
type: string
domain:
type: string
kind:
description: mcp | ucp | a2a | openapi | api-catalog | llms
type: string
month:
format: date
type: string
platform:
description: Platform the manifest looks generated by, when known
type: string
tld:
type: string
url:
description: The advertised endpoint
type: string
type: object
type: array
next_cursor:
description: Present when there are more rows
type: string
required:
- data
- _meta
type: object
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid parameters
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or invalid API key
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit reached
security:
- {}
- bearer: []
- apiKey: []
summary: Swedish MCP, agent and API endpoints
x-attribution: 'Source: Aleva (aleva.se)'
x-bucket: web_mcp_catalog
x-licenses:
- Aleva data licence (proprietary)
x-tier: light
tags:
- Web
components:
schemas:
Error:
properties:
error:
properties:
code:
type: string
message:
type: string
type: object
type: object
Meta:
properties:
attribution:
type: string
build_run_id:
type: integer
built_at:
format: date-time
type: string
endpoint:
type: string
fetched_at:
format: date-time
type: string
licenses:
items:
type: string
type: array
sources:
items:
type: object
type: array
usage_mode:
type: string
version:
type: integer
type: object
securitySchemes:
apiKey:
in: header
name: X-API-Key
type: apiKey
bearer:
scheme: bearer
type: http