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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/aristocles-com-au:aristocles-com-au-services-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: 3.2.0
info:
title: Aristocles Data Services API
description: 'Four Australian data APIs on one key — subscriptions, trade pricing, PBS drugs, and rental prices.
---
## Quick start
**1. Get your API key** — register in one request:
```
POST /v1/auth/register
{"email": "you@example.com", "name": "Your Name"}
```
Copy the `api_key` from the response.
**2. Authenticate** — add your key to every request as a header:
```
X-API-Key: ar_live_xxxxxxxxxxxx
```
**3. Run the discovery endpoint** — returns all available slugs, example calls, and your account limits:
```
GET /v1/discovery
```
**4. Make your first call:**
```
GET /v1/prices/netflix?country=AU
GET /v1/trades/electrician/prices?state=NSW&country=AU
GET /v1/pbs/metformin
GET /v1/rental/VIC/Richmond
```
---
## Four data domains
| Domain | Base path | What it covers |
|---|---|---|
| **Subscription Pricing** | `/v1/prices`, `/v1/services` | 50+ SaaS & streaming services: Netflix, Spotify, Adobe, etc. |
| **Contractor Trades** | `/v1/trades` | Plumbers, electricians, painters across AU, US, UK, CA, NZ |
| **PBS Drug Pricing** | `/v1/pbs` | 14,000+ medications on Australia''s Pharmaceutical Benefits Scheme |
| **Rental Market** | `/v1/rental` | Median weekly rent by suburb and postcode across Australia |
| **RBA Economic Data** | `/v1/rba` | Cash rate, AUD FX rates, CPI inflation, mortgage rates, credit aggregates |
---
## MCP Server
All four data domains are also available as MCP tools at:
```
https://api.aristocles.com.au/mcp/
```
Connect any MCP-compatible AI agent (Claude, GPT, Gemini) to get structured data without writing API calls.'
version: 2.1.0
tags:
- name: Services
paths:
/v1/services/by-country/{country_code}:
get:
tags:
- Services
summary: Services By Country Endpoint
description: All services available in a country with cheapest price, grouped by category.
operationId: services_by_country_endpoint_v1_services_by_country__country_code__get
parameters:
- name: country_code
in: path
required: true
schema:
type: string
description: 'ISO country code: AU, US, UK, CA, NZ'
title: Country Code
description: 'ISO country code: AU, US, UK, CA, NZ'
example: AU
- name: category
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by category slug — get slugs from `GET /v1/categories`
title: Category
description: Filter by category slug — get slugs from `GET /v1/categories`
example: streaming-video
- name: X-API-Key
in: header
required: true
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/services/calculator:
get:
tags:
- Services
summary: Calculator Endpoint
description: Calculate total monthly/yearly spend for a list of services.
operationId: calculator_endpoint_v1_services_calculator_get
parameters:
- name: services
in: query
required: true
schema:
type: string
maxLength: 1000
description: Comma-separated service slugs — get slugs from `GET /v1/services`
title: Services
description: Comma-separated service slugs — get slugs from `GET /v1/services`
example: netflix,spotify,adobe-creative-cloud
- name: country
in: query
required: false
schema:
type: string
maxLength: 2
description: ISO country code, e.g. AU, US, GB
default: AU
title: Country
description: ISO country code, e.g. AU, US, GB
- name: X-API-Key
in: header
required: true
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/services:
get:
tags:
- Services
summary: List Services Endpoint
description: List subscription services with optional filters.
operationId: list_services_endpoint_v1_services_get
parameters:
- name: category
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by category slug — get slugs from `GET /v1/categories`
title: Category
description: Filter by category slug — get slugs from `GET /v1/categories`
example: streaming-video
- name: country
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Filter by ISO country code: AU, US, UK, CA, NZ'
title: Country
description: 'Filter by ISO country code: AU, US, UK, CA, NZ'
example: AU
- name: search
in: query
required: false
schema:
anyOf:
- type: string
maxLength: 200
- type: 'null'
description: Search by service name, e.g. netflix, spotify, adobe
title: Search
description: Search by service name, e.g. netflix, spotify, adobe
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number for pagination
default: 1
title: Page
description: Page number for pagination
- name: per_page
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Results per page (max 100)
default: 20
title: Per Page
description: Results per page (max 100)
- name: X-API-Key
in: header
required: true
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
example:
data:
items:
- name: Netflix
slug: netflix
category_name: Streaming Video
category_slug: streaming-video
description: Streaming platform with movies and TV shows
website_url: https://netflix.com
cheapest_monthly_price: 7.99
cheapest_currency: AUD
- name: Spotify
slug: spotify
category_name: Music Streaming
category_slug: music-streaming
description: Music streaming service
website_url: https://spotify.com
cheapest_monthly_price: 11.99
cheapest_currency: AUD
total: 85
page: 1
per_page: 20
pages: 5
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/services/{slug}:
get:
tags:
- Services
summary: Get Service Endpoint
description: Get full service detail by slug.
operationId: get_service_endpoint_v1_services__slug__get
parameters:
- name: slug
in: path
required: true
schema:
type: string
description: Service slug — get slugs from `GET /v1/services`
title: Slug
description: Service slug — get slugs from `GET /v1/services`
example: netflix
- name: X-API-Key
in: header
required: true
schema:
type: string
title: X-Api-Key
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError