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/perchwell-office-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:
title: Perchwell JSON Listings Office API
version: '1.0'
description: Perchwell's JSON API provides access to real estate listing data in a format designed for ease of use and speed of development. The API uses simple token authentication and a basic query interface for filtering listings and paginating through results. Faithfully generated by the API Evangelist enrichment pipeline from Perchwell's published API reference (https://docs.perchwell.com/#/json_api_getting_started).
contact:
name: Perchwell Support
email: support@perchwell.com
url: https://docs.perchwell.com
servers:
- url: https://www.perchwell.com
description: Production
security:
- tokenAuth: []
tags:
- name: Office
description: RESO Office resource.
paths:
/Office:
get:
operationId: queryOffice
summary: Query Office records
tags:
- Office
parameters:
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/top'
- $ref: '#/components/parameters/skip'
- $ref: '#/components/parameters/select'
responses:
'200':
description: A collection of Office records.
content:
application/json:
schema:
$ref: '#/components/schemas/OfficeCollection'
/Office('{id}'):
get:
operationId: getOffice
summary: Get an Office by OfficeKey
tags:
- Office
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: The Office record.
content:
application/json:
schema:
$ref: '#/components/schemas/Office'
components:
parameters:
id:
name: id
in: path
required: true
description: The resource primary key value.
schema:
type: string
skip:
name: $skip
in: query
required: false
description: Number of matching items to skip (default 0).
schema:
type: integer
default: 0
select:
name: $select
in: query
required: false
description: Comma-separated list of resource elements to return.
schema:
type: string
filter:
name: $filter
in: query
required: false
description: OData filter expression restricting returned items.
schema:
type: string
top:
name: $top
in: query
required: false
description: Maximum number of matching items to return (default 10, max 200).
schema:
type: integer
default: 10
maximum: 200
schemas:
OfficeCollection:
type: object
properties:
'@odata.context':
type: string
'@odata.count':
type: integer
value:
type: array
items:
$ref: '#/components/schemas/Office'
Office:
type: object
description: RESO Office resource.
properties:
OfficeKey:
type: string
OfficeName:
type: string
ModificationTimestamp:
type: string
format: date-time
securitySchemes:
tokenAuth:
type: apiKey
in: header
name: Authorization
description: Simple token authentication. Send the API token in the Authorization header.