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-prices-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 Prices 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: Prices
paths:
/v1/prices/export:
get:
tags:
- Prices
summary: Export Prices Endpoint
description: Bulk export of all current pricing data. No pagination — full dataset.
operationId: export_prices_endpoint_v1_prices_export_get
parameters:
- 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: 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/prices/{service_slug}/timeseries:
get:
tags:
- Prices
summary: Get Price Timeseries Endpoint
description: Time-series formatted price history for graphing.
operationId: get_price_timeseries_endpoint_v1_prices__service_slug__timeseries_get
parameters:
- name: service_slug
in: path
required: true
schema:
type: string
description: Service slug — get slugs from `GET /v1/services`
title: Service Slug
description: Service slug — get slugs from `GET /v1/services`
example: netflix
- name: country
in: query
required: false
schema:
type: string
description: 'ISO country code: AU, US, UK, CA, NZ'
default: AU
title: Country
description: 'ISO country code: AU, US, UK, CA, NZ'
- name: tier
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Plan tier: basic, standard, premium (returned in service detail)'
title: Tier
description: 'Plan tier: basic, standard, premium (returned in service detail)'
example: standard
- name: months
in: query
required: false
schema:
type: integer
maximum: 60
minimum: 1
description: Number of months of history to return
default: 12
title: Months
description: Number of months of history to return
- 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/prices/{service_slug}:
get:
tags:
- Prices
summary: Get Prices Endpoint
description: Get current prices for a subscription service.
operationId: get_prices_endpoint_v1_prices__service_slug__get
parameters:
- name: service_slug
in: path
required: true
schema:
type: string
description: Service slug — get slugs from `GET /v1/services`
title: Service Slug
description: Service slug — get slugs from `GET /v1/services`
example: netflix
- 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: tier
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Plan tier: basic, standard, premium (returned in service detail)'
title: Tier
description: 'Plan tier: basic, standard, premium (returned in service detail)'
example: standard
- 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:
- id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
service_slug: netflix
service_name: Netflix
country_code: AU
plan_name: Standard with Ads
plan_tier: basic
price_amount: 7.99
currency: AUD
billing_period: monthly
monthly_equivalent: 7.99
source: netflix.com
is_current: true
effective_date: '2024-01-01'
last_verified: '2024-06-01T00:00:00Z'
- id: 4fa85f64-5717-4562-b3fc-2c963f66afa7
service_slug: netflix
service_name: Netflix
country_code: AU
plan_name: Standard
plan_tier: standard
price_amount: 18.99
currency: AUD
billing_period: monthly
monthly_equivalent: 18.99
source: netflix.com
is_current: true
effective_date: '2024-01-01'
last_verified: '2024-06-01T00:00:00Z'
meta:
timestamp: '2024-06-01T00:00:00Z'
source: aristocles-api
version: '1.0'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/prices/{service_slug}/history:
get:
tags:
- Prices
summary: Get Price History Endpoint
description: Get price history for a service over time.
operationId: get_price_history_endpoint_v1_prices__service_slug__history_get
parameters:
- name: service_slug
in: path
required: true
schema:
type: string
description: Service slug — get slugs from `GET /v1/services`
title: Service Slug
description: Service slug — get slugs from `GET /v1/services`
example: netflix
- name: country
in: query
required: false
schema:
type: string
description: 'ISO country code: AU, US, UK, CA, NZ'
default: AU
title: Country
description: 'ISO country code: AU, US, UK, CA, NZ'
- name: tier
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Plan tier: basic, standard, premium (returned in service detail)'
title: Tier
description: 'Plan tier: basic, standard, premium (returned in service detail)'
example: standard
- name: months
in: query
required: false
schema:
type: integer
maximum: 60
minimum: 1
description: Number of months of history to return
default: 12
title: Months
description: Number of months of history to return
- 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