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/kpmg:kpmg-token-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: KPMG Origins Token API
description: '- How to authenticate
- Definitions of Key API Endpoints
- Other Information
KPMG Origins provides customers with access to their data, and data shared with them, through APIs. The APIs allow customers with the ability to create, update and extract available data.
## How to authenticate
1) Create API credentials via KPMG Origins UI (NB: only users with the Administrator role can manage API credentials):
- Login to KPMG Origins
- Go to Settings page, then API Credentials tab
- Create API credentials
- Copy the Client Id and Secret (NB: you will not be able to recover the secret value if lost, however, you can generate a new one)
2) Exchange API Credentials for a short-lived _access token_
- Make a POST request to **https://<KPMG Origins hostname>/cr/client-api/v1/token**
```
{
"clientId": "",
"secret": ""
}
```
3) Make authenticated requests to KPMG Origins API:
- Use the access token value form the token API response as a Bearer token to make requests to the API i.e. set Authorization header like this: `Authorization: Bearer `
```
NB: access token is only valid for a short time, if requests start failing with 401 status code, repeat steps 2) and 3)
```
## Definitions of Key API Endpoints
This section explains key definitions of key data entities and API endpoints
* **Organisation**: the organisation can either be an organisation or an individual.
- An *organisation* is a participant which usually holds an ABN or ACN, usually an entity participating in commercial activities.
- An *individual* is a participant who has no ABN or ACN. For example, in Movement, a generator who is a private individual (e.g. residential asbestos pick-up).
This distinction is necessary as it relates to a validation in the ``post organisation`` API.
* **Location**: locations represent geographical sites which are operated by organisations. Each location possesses a unique location ID to distinguish it from other locations in the system, as well as an organisation / client ID that specifies which organisation operates it.
Please see the details on each individual API to learn more about the specific criteria needed for a successful payload.
## Other Information
- The format for Client Id mentioned in the APIs is ``IDType.IDValue``
- By default, the collection of items returned can include up to 10,000 items, but this can be changed via the ``Limit`` and ``Skip`` parameters.'
version: '1.0'
tags:
- name: Token
description: APIs for Access Token
paths:
/cr/client-api/v1/token:
post:
tags:
- Token
summary: Retrieve Access Token
description: '### Get access token
Exchange Client ID and Secret for an access token (NB: Client ID and Secret can be created by a tenant Administrator via KPMG Origins UI)'
requestBody:
content:
application/json-patch+json:
schema:
title: IssueTokenRequest
allOf:
- $ref: '#/components/schemas/IssueTokenRequest'
application/json:
schema:
title: IssueTokenRequest
allOf:
- $ref: '#/components/schemas/IssueTokenRequest'
text/json:
schema:
title: IssueTokenRequest
allOf:
- $ref: '#/components/schemas/IssueTokenRequest'
application/*+json:
schema:
title: IssueTokenRequest
allOf:
- $ref: '#/components/schemas/IssueTokenRequest'
responses:
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ServerFaultErrorResponse'
'200':
description: Access Token
content:
application/json:
schema:
$ref: '#/components/schemas/IssueTokenResponse'
'423':
description: Locked
content:
application/json:
schema:
$ref: '#/components/schemas/LockedErrorResponse'
operationId: postCrClientApiV1Token
x-operation-id-source: derived
components:
schemas:
ValidationError:
title: ValidationError
type: object
properties:
code:
title: String
type:
- string
- 'null'
target:
title: String
type:
- string
- 'null'
message:
title: String
type:
- string
- 'null'
additionalProperties: false
ServerFaultErrorResponse:
title: ServerFaultErrorResponse
allOf:
- $ref: '#/components/schemas/ErrorResponse__ServerFaultErrorDetails'
- type: object
additionalProperties: false
IssueTokenResponse:
title: IssueTokenResponse
type: object
properties:
access_Token:
title: String
type:
- string
- 'null'
additionalProperties: false
ErrorDetails:
title: ErrorDetails
type: object
properties:
code:
title: String
type:
- string
- 'null'
message:
title: String
type:
- string
- 'null'
additionalProperties: false
ErrorResponse__ValidationErrorDetails:
title: ErrorResponse<ValidationErrorDetails>
type: object
properties:
error:
title: ValidationErrorDetails
allOf:
- $ref: '#/components/schemas/ValidationErrorDetails'
debugDetail:
title: String
type:
- string
- 'null'
additionalProperties: false
LockedErrorDetails:
title: LockedErrorDetails
allOf:
- $ref: '#/components/schemas/ErrorDetails'
- type: object
additionalProperties: false
ErrorResponse__ServerFaultErrorDetails:
title: ErrorResponse<ServerFaultErrorDetails>
type: object
properties:
error:
title: ServerFaultErrorDetails
allOf:
- $ref: '#/components/schemas/ServerFaultErrorDetails'
debugDetail:
title: String
type:
- string
- 'null'
additionalProperties: false
ValidationErrorDetails:
title: ValidationErrorDetails
allOf:
- $ref: '#/components/schemas/ErrorDetails'
- type: object
properties:
details:
title: IEnumerable<ValidationError>
type:
- array
- 'null'
items:
$ref: '#/components/schemas/ValidationError'
additionalProperties: false
LockedErrorResponse:
title: LockedErrorResponse
allOf:
- $ref: '#/components/schemas/ErrorResponse__LockedErrorDetails'
- type: object
additionalProperties: false
ErrorResponse__LockedErrorDetails:
title: ErrorResponse<LockedErrorDetails>
type: object
properties:
error:
title: LockedErrorDetails
allOf:
- $ref: '#/components/schemas/LockedErrorDetails'
debugDetail:
title: String
type:
- string
- 'null'
additionalProperties: false
ServerFaultErrorDetails:
title: ServerFaultErrorDetails
allOf:
- $ref: '#/components/schemas/ErrorDetails'
- type: object
additionalProperties: false
IssueTokenRequest:
title: IssueTokenRequest
type: object
properties:
clientId:
title: String
type:
- string
- 'null'
secret:
title: String
type:
- string
- 'null'
additionalProperties: false
ValidationErrorResponse:
title: ValidationErrorResponse
allOf:
- $ref: '#/components/schemas/ErrorResponse__ValidationErrorDetails'
- type: object
additionalProperties: false
securitySchemes:
Bearer_token:
type: apiKey
description: 'Please enter: "Bearer YOUTOKEN"'
name: Authorization
in: header
x-provenance:
method: harvested
publisher: KPMG
source: https://app.kpmgorigins.com/cr/client-api/swagger/v1/swagger.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)