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/arcwise:arcwise-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: 3.1.0
info:
title: Arcwise API
version: '2026-10-29'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-29: 18 operation(s) read from 3 public documentation page(s) (each operation
names its page in x-source). This is not the provider''s published contract; Arcwise has published no machine-readable contract that the pipeline
could find. Engine: anthropic.'
x-evidence-tiers:
code-example: 18
documentation: 0
pages-with-code: 3
pages-read: 3
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-29'
x-generator: generate-contract-from-docs.py
x-engine: anthropic
x-sources:
- https://docs.cube.dev/reference/core-data-apis/sql-api
- https://docs.cube.dev/reference/core-data-apis/rest-api
- https://docs.cube.dev/reference/core-data-apis/rest-api/reference
paths:
/cubejs-api/v1/convert-query:
post:
operationId: post_cubejs_api_v1_convert_query
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/convert-query
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1ConvertQueryResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST -H \"Authorization: TOKEN\" -H \"Content-Type: application/json\" -d '{\"input\": \"sql\", \"output\": \"rest\"\
, \"query\": \"SELECT MEASURE(total_amount) FROM orders WHERE status = ' \\' 'foo' \\' '\"}' http://localhost:4000/cubejs-api/v1/convert-query\
\ \n Successful response: \n { \n \"status\" : \"ok\" , \n \"query\" : { \n \"measures\" : [ \n \"orders.total_amount\" \n ], \n \"\
dimensions\" : [], \n \"filters\" : [ \n "
/cubejs-api/v1/cubesql:
post:
operationId: post_cubejs_api_v1_cubesql
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/cubesql
x-source: https://docs.cube.dev/reference/core-data-apis/sql-api
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1CubesqlRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST -H \"Authorization: TOKEN\" -H \"Content-Type: application/json\" -d '{\"query\": \"SELECT 123 AS value UNION\
\ ALL SELECT 456 AS value UNION ALL SELECT 789 AS value\"}' http://localhost:4000/cubejs-api/v1/cubesql \n See the /v1/cubesql endpoint\
\ reference for more details. \n Fundamentals \n In the SQL API, each cube or view from the data model \nis represented as a table.\
\ Measures, dimensio"
/cubejs-api/v1/data-sources:
get:
operationId: get_cubejs_api_v1_data_sources
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/data-sources
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetCubejsApiV1DataSourcesResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: Bearer TOKEN\" https://example.cubecloud.dev/cubejs-api/v1/data-sources \n Example response: \n {\
\ \n \"data\" : { \n \"data_sources\" : [ \n { \n \"name\" : \"default\" , \n \"type\" : \"postgres\" , \n \"database\" : \"analytics\"\
\ , \n \"schema\" : \"public\" \n }, \n { \n \"name\" : \"warehouse\" , \n \"type\" : \"bigquery\" , \n \"properties\" : { \n \"project_id\"\
\ : \"acme-analytics-123\" \n } \n } \n ] \n } \n } \n Each i"
/cubejs-api/v1/entities:
get:
operationId: get_cubejs_api_v1_entities
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/entities
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
parameters:
- name: limit
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: Bearer TOKEN\" \"https://example.cubecloud.dev/cubejs-api/v1/entities?limit=10\" \n Example response.\
\ data is an array of entities; pagination reports the\ntotal number of entities before offset and limit are applied: \n { \n \"data\"\
\ : [ \n { \n \"type\" : \"cube\" , \n \"name\" : \"orders\" , \n \"public\" : true \n }, \n { \n \"type\" : \"view\" , \n \"name\"\
\ : \"orders_view\" , \n \"public\" : true \n } \n "
/cubejs-api/v1/entities/all:
post:
operationId: post_cubejs_api_v1_entities_all
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/entities/all
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1EntitiesAllRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST -H \"Authorization: Bearer TOKEN\" -H \"Content-Type: application/json\" -d '{\"cubes\": [\"orders\"], \"views\"\
: [\"orders_view\"]}' https://example.cubecloud.dev/cubejs-api/v1/entities/all \n Example response. data is an array of entities, each\
\ in the same format as the\nsingle-entity response above; pagination reports the total number of matching\nentities before offset and\
\ limit are applied"
/cubejs-api/v1/entities/customers:
get:
operationId: get_cubejs_api_v1_entities_customers
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/entities/customers
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
parameters:
- name: include_private
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: Bearer TOKEN\" \"https://example.cubecloud.dev/cubejs-api/v1/entities/customers?include_private=true\"\
\ \n {base_path}/v1/model-export \n Send a POST request to export detailed metadata for catalog integrations that\nneed lineage through\
\ policy-hidden base cubes. This endpoint exports every cube,\nview, measure, and dimension in the compiled model selected by the request’s\n\
secu"
/cubejs-api/v1/entities/orders:
get:
operationId: get_cubejs_api_v1_entities_orders
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/entities/orders
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetCubejsApiV1EntitiesOrdersResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: Bearer TOKEN\" https://example.cubecloud.dev/cubejs-api/v1/entities/orders \n Example response: \n\
\ { \n \"data\" : { \n \"type\" : \"cube\" , \n \"name\" : \"orders\" , \n \"public\" : true , \n \"title\" : \"Orders\" , \n \"description\"\
\ : \"Order transactions\" , \n \"meta\" : { \n \"ai_context\" : \"One row per order, including cancelled orders\" \n }, \n \"table_references\"\
\ : [ \n { \n \"data_source\" : \"defaul"
/cubejs-api/v1/load:
get:
operationId: get_cubejs_api_v1_load
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/load
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: TOKEN\" -G --data-urlencode 'query={ \n \"dimensions\": [ \n \"users.state\", \n \"users.city\"\
, \n \"orders.status\" \n ], \n \"measures\": [ \n \"orders.count\" \n ], \n \"filters\": [ \n { \n \"member\": \"users.state\", \n\
\ \"operator\": \"notEquals\", \n \"values\": [\"us-wa\"] \n } \n ], \n \"timeDimensions\": [ \n { \n \"dimension\": \"orders.created_at\"\
, \n \"dateRange\": [\"2020-01-01\", \"2021-01-01\"] \n } \n ], \n \"lim"
post:
operationId: post_cubejs_api_v1_load
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/load
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1LoadRequest'
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1LoadResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST -H \"Content-Type: application/json\" -H \"Authorization: TOKEN\" --data '{\"query\": {\"measures\":[\"users.count\"\
]}}' http://localhost:4000/cubejs-api/v1/load \n Example response: \n { \n \"query\" : { \n \"measures\" : [ \"users.count\" ], \n\
\ \"filters\" : [], \n \"timezone\" : \"UTC\" , \n \"dimensions\" : [], \n \"timeDimensions\" : [] \n }, \n \"data\" : [ \n { \n \"\
users.count\" : \"700\" \n } \n ], \n \"lastRefreshTim"
/cubejs-api/v1/meta:
get:
operationId: get_cubejs_api_v1_meta
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/meta
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: TOKEN\" http://localhost:4000/cubejs-api/v1/meta | jq \n You can also use the JavaScript SDK to call\
\ the REST (JSON) API\nfrom your JavaScript applications. \n WebSocket transport \n WebSocket transport can be used to provide real-time\
\ experience. You can configure it via\nthe CUBEJS_WEB_SOCKETS environment variable. \n You can use the websocat utility to test the\
\ WebSocket tr"
/cubejs-api/v1/model-export:
post:
operationId: post_cubejs_api_v1_model_export
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/model-export
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST -H \"Authorization: Bearer META_SYNC_TOKEN\" -H \"Content-Type: application/json\" -d '{}' \"https://example.cubecloud.dev/cubejs-api/v1/model-export\"\
\ \n Health checks \n /readyz \n Reports if the deployment has successfully started. To do so, it will try to test\nthe connection\
\ to the default data source . \n Example of a successful request: "
/cubejs-api/v1/pre-aggregations/jobs:
post:
operationId: post_cubejs_api_v1_pre_aggregations_jobs
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/pre-aggregations/jobs
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1PreAggregationsJobsRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -d '{ \n \"action\": \"post\", \n \"selector\": { \n \"contexts\": [{ \"securityContext\": {} }], \n \"timezones\": [\"\
UTC\"] \n } \n }' -H \"Authorization: TOKEN\" -H \"Content-Type: application/json\" -X POST https://localhost:4000/cubejs-api/v1/pre-aggregations/jobs\
\ \n Example request triggering builds of all pre-aggregations defined in the\n orders cube using an empty security context and a UTC\
\ timezone: "
/cubejs-api/v1/running-query/my-request-id-span-1:
delete:
operationId: delete_cubejs_api_v1_running_query_my_request_id_span_1
tags:
- Cubejs Api
summary: DELETE /cubejs-api/v1/running-query/my-request-id-span-1
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteCubejsApiV1RunningQueryMyRequestIdSpan1Response'
x-evidence:
kind: code-example
language: curl
snippet: "curl -X DELETE -H \"Authorization: TOKEN\" http://localhost:4000/cubejs-api/v1/running-query/my-request-id-span-1 \n Example\
\ response when a query was cancelled: \n { \n \"result\" : [ \n { \n \"queryHandler\" : \"query\" , \n \"queryKey\" : \"...\" , \n\
\ \"requestId\" : \"my-request-id-span-1\" \n } \n ] \n } \n Example response when no matching query was found: \n { \n \"result\" :\
\ [] \n } \n {base_path}/v1/pre-aggregations"
/cubejs-api/v1/sql:
get:
operationId: get_cubejs_api_v1_sql
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/sql
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetCubejsApiV1SqlResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: TOKEN\" -G --data-urlencode 'query={\"measures\":[\"orders.count\"]}' --data-urlencode 'format=rest'\
\ http://localhost:4000/cubejs-api/v1/sql \n Response: \n { \n \"sql\" : { \n \"sql\" : [ \n \"SELECT sum(`base_orders__count`) `orders__count`\
\ FROM prod_pre_aggregations.base_orders_orders_by_month AS `base_orders__orders_by_month` LIMIT 10000\" , \n [] \n ] \n } \n } \n Request\
\ with a query"
/cubejs-api/v1/sql-filters:
get:
operationId: get_cubejs_api_v1_sql_filters
tags:
- Cubejs Api
summary: GET /cubejs-api/v1/sql-filters
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -H \"Authorization: TOKEN\" -G --data-urlencode \"query=SELECT MEASURE(total_amount) FROM orders WHERE status = 'shipped'\"\
\ http://localhost:4000/cubejs-api/v1/sql-filters \n { \n \"status\" : \"ok\" , \n \"filters\" : [ \n { \n \"member\" : \"orders.status\"\
\ , \n \"operator\" : \"equals\" , \n \"values\" : [ \"shipped\" ] \n } \n ] \n } \n What comes back is what the planner made of the\
\ query rather than what the query\ns"
post:
operationId: post_cubejs_api_v1_sql_filters
tags:
- Cubejs Api
summary: POST /cubejs-api/v1/sql-filters
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostCubejsApiV1SqlFiltersResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST -H \"Authorization: TOKEN\" -H \"Content-Type: application/json\" -d '{ \n \"query\": \"SELECT MEASURE(total_amount)\
\ FROM orders WHERE status = ' \\' 'shipped' \\' '\", \n \"replace\": { \n \"old\": [{\"member\": \"orders.status\", \"operator\": \"\
equals\", \"values\": [\"shipped\"]}], \n \"new\": [{\"member\": \"orders.status\", \"operator\": \"equals\", \"values\": [\"completed\"\
]}] \n } \n }' http://localhost:4000/cubejs-"
/livez:
get:
operationId: get_livez
tags:
- Livez
summary: GET /livez
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -i http://localhost:4000/livez \n HTTP/1.1 200 OK \n X-Powered-By: Express \n Access-Control-Allow-Origin: * \n Content-Type:\
\ application/json ; charset = utf-8 \n Content-Length: 19 \n ETag: W/\"13-MyluqxoYxC0tUxBeZCnbaWYVLhg\" \n Date: Mon, 18 Jan 2021 15:39:57\
\ GMT \n Connection: keep-alive \n Keep-Alive: timeout= 5 \n { \"health\" : \"HEALTH\" } \n Example of a failed response: "
/readyz:
get:
operationId: get_readyz
tags:
- Readyz
summary: GET /readyz
x-source: https://docs.cube.dev/reference/core-data-apis/rest-api/reference
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -i http://localhost:4000/readyz \n HTTP/1.1 200 OK \n X-Powered-By: Express \n Access-Control-Allow-Origin: * \n Content-Type:\
\ application/json ; charset = utf-8 \n Content-Length: 19 \n ETag: W/\"13-MyluqxoYxC0tUxBeZCnbaWYVLhg\" \n Date: Mon, 18 Jan 2021 15:39:57\
\ GMT \n Connection: keep-alive \n Keep-Alive: timeout= 5 \n { \"health\" : \"HEALTH\" } \n Example of a failed response: "
components:
schemas:
PostCubejsApiV1ConvertQueryResponse:
type: object
properties:
status:
type: string
query:
type: object
properties:
measures:
type: array
items:
type: string
dimensions:
type: array
items: {}
filters:
type: array
items:
type: object
properties:
member:
type: string
operator:
type: string
values:
type: array
items:
type: string
segments:
type: array
items: {}
order:
type: array
items: {}
PostCubejsApiV1CubesqlRequest:
type: object
properties:
query:
type: string
GetCubejsApiV1DataSourcesResponse:
type: object
properties:
data_sources:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
database:
type: string
schema:
type: string
PostCubejsApiV1EntitiesAllRequest:
type: object
properties:
cubes:
type: array
items:
type: string
views:
type: array
items:
type: string
GetCubejsApiV1EntitiesOrdersResponse:
type: object
properties:
type:
type: string
name:
type: string
public:
type: boolean
title:
type: string
description:
type: string
meta:
type: object
properties:
ai_context:
type: string
table_references:
type: array
items:
type: object
properties:
data_source:
type: string
schema:
type: string
table:
type: string
cube_references:
type: array
items: {}
joins:
type: array
items:
type: object
properties:
cube:
type: string
relationship:
type: string
sql:
type: string
measures:
type: array
items:
type: object
properties:
name:
type: string
public:
type: boolean
title:
type: string
description:
type: string
type:
type: string
sql:
type: string
member_references:
type: array
items: {}
column_references:
type: array
items:
type: object
properties:
data_source:
type: string
schema:
type: string
table:
type: string
column:
type: string
dimensions:
type: array
items:
type: object
properties:
name:
type: string
public:
type: boolean
title:
type: string
description:
type: string
type:
type: string
sql:
type: string
is_primary_key:
type: boolean
member_references:
type: array
items: {}
column_references:
type: array
items:
type: object
properties:
data_source:
type: string
schema:
type: string
table:
type: string
column:
type: string
PostCubejsApiV1LoadRequest:
type: object
properties:
query:
type: object
properties:
measures:
type: array
items:
type: string
PostCubejsApiV1LoadResponse:
type: object
properties:
measures:
type: array
items:
type: string
filters:
type: array
items: {}
timezone:
type: string
dimensions:
type: array
items: {}
timeDimensions:
type: array
items: {}
PostCubejsApiV1PreAggregationsJobsRequest:
type: object
properties:
action:
type: string
selector:
type: object
properties:
contexts:
type: array
items:
type: object
properties:
securityContext:
type: object
timezones:
type: array
items:
type: string
DeleteCubejsApiV1RunningQueryMyRequestIdSpan1Response:
type: object
properties:
result:
type: array
items:
type: object
properties:
queryHandler:
type: string
queryKey:
type: string
requestId:
type: string
GetCubejsApiV1SqlResponse:
type: object
properties:
sql:
type: object
properties:
sql:
type: array
items:
type: string
PostCubejsApiV1SqlFiltersResponse:
type: object
properties:
name:
type: string
title:
type: string
meta:
type: object
properties:
someKey:
type: string
nested:
type: object
properties:
someKey:
type: string
connectedComponent:
type: integer
measures:
type: array
items:
type: object
properties:
name:
type: string
title:
type: string
shortTitle:
type: string
aliasName:
type: string
type:
type: string
aggType:
type: string
drillMembers:
type: array
items:
type: string
dimensions:
type: array
items:
type: object
properties:
name:
type: string
title:
type: string
type:
type: string
aliasName:
type: string
shortTitle:
type: string
suggestFilterValues:
type: boolean
segments:
type: array
items: {}
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
security:
- apiKey: []
tags:
- name: Cubejs Api
- name: Livez
- name: Readyz