Properties
| Name | Type | Description |
|---|---|---|
| access_token | string | |
| token_type | string | Always `Bearer`. |
| expires_in | integer | Seconds until the access token expires. |
| refresh_token | string | Always returned. A refresh consumes the token it presents, so keep this one. |
| scope | string | What was actually granted, which may be narrower than what was asked for. |
| mslm:apikey_id | string | Not part of OAuth, and only for our own clients. The ID of the API key the person picked when they approved, returned by every grant while this authorization may still read that key back. Absent when |
| mslm:apikey | string | Not part of OAuth, and only for our own clients: a client that signed in with a Client ID Metadata Document or registered itself never receives a key. The API key itself, so a device ends up holding a |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/internetdata-io/json-schema/internetdata-io-token-response-schema.json",
"title": "TokenResponse",
"x-generated": "2026-11-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/internetdata-io-openapi.yaml#/components/schemas/TokenResponse",
"type": "object",
"properties": {
"access_token": {
"type": "string"
},
"token_type": {
"type": "string",
"description": "Always `Bearer`."
},
"expires_in": {
"type": "integer",
"description": "Seconds until the access token expires."
},
"refresh_token": {
"type": "string",
"description": "Always returned. A refresh consumes the token it presents, so keep this one."
},
"scope": {
"type": "string",
"description": "What was actually granted, which may be narrower than what was asked for."
},
"mslm:apikey_id": {
"type": "string",
"description": "Not part of OAuth, and only for our own clients. The ID of the API\nkey the person picked when they approved, returned by every grant\nwhile this authorization may still read that key back. Absent when\nno key was picked, or when the person's role no longer allows\nreading keys back.\n"
},
"mslm:apikey": {
"type": "string",
"description": "Not part of OAuth, and only for our own clients: a client that signed\nin with a Client ID Metadata Document or registered itself never\nreceives a key. The API\nkey itself, so a device ends up holding an ordinary key. Returned by\nthe device code and authorization code grants only, never by a\nrefresh, and only alongside\n`mslm:apikey_id`. Absent when that key's secret cannot be read back,\nwhich is the case for a key created before keys could be shown again\nin the console; a rotated key can be.\n"
}
},
"required": [
"access_token",
"token_type",
"expires_in"
]
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/internetdata-io-token-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.