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/kisi-scheduled-reports-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.2.0
info:
version: 1.0.0
title: Kisi Scheduled reports API
description: '## Introduction
Welcome to the Kisi API documentation.'
contact:
name: Kisi Support
email: support@getkisi.com
servers:
- url: https://api.kisi.io
description: Kisi Production
tags:
- name: Scheduled Reports
paths:
/scheduled_reports:
get:
operationId: fetchScheduledReports
summary: Fetch scheduled reports
tags:
- Scheduled Reports
security:
- Kisi-Login: []
- OAuth2: []
parameters:
- name: ids
in: query
schema:
type: string
description: Filter by object IDs
- name: limit
in: query
schema:
type: integer
default: 10
maximum: 250
description: The number of objects to return
- name: offset
in: query
schema:
type: integer
default: 0
maximum: 20000
description: The number of objects to offset
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: object
title: Scheduled Report
properties:
id:
type: integer
description: The ID of the scheduled report
resource_type:
type: string
description: The resource type of the scheduled report
const: ScheduledReport
name:
type: string
description: The name of the scheduled report
period:
type: string
enum:
- day
- week
- month
description: "The period of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
frequency:
type: integer
description: "The frequency of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
scheduled_at:
type: string
format: date
description: The date at which the schedule will start
time_zone:
type:
- string
example: Europe/London
description: 'The time zone of the scheduled report.
It should be a <a href="https://en.wikipedia.org/wiki/Tz_database#Names_of_time_zones"> valid IANA time zone name.</a>
'
enabled:
type: boolean
default: false
description: Whether the scheduled report is enabled
emails:
type: array
minItems: 1
maxItems: 5
items:
type: string
format: email
description: The emails to send the reports to
created_at:
type: string
format: date-time
description: When the scheduled report was created
updated_at:
type: string
format: date-time
description: When the scheduled report was updated
organization_id:
type: integer
description: The organization ID of the scheduled report
organization:
type: object
title: Organization
description: The organization of the scheduled report
properties:
id:
type: integer
description: The ID of the organization
resource_type:
type: string
description: The resource type of the organization
const: Organization
name:
type: string
description: The name of the organization
domain:
type: string
description: The domain of the organization.
required:
- id
- resource_type
- name
- domain
additionalProperties: false
place_id:
type:
- integer
- 'null'
description: The place ID of the scheduled report
reporter_id:
type: integer
description: The reporter ID of the scheduled report
required:
- id
- resource_type
- name
- period
- frequency
- scheduled_at
- time_zone
- enabled
- emails
- created_at
- updated_at
- organization_id
- organization
- place_id
- reporter_id
additionalProperties: false
headers:
X-Collection-Range:
description: 'Pagination information for offset based pagination. `start-end` represents the range
of items requested. `total` represents the total count of items. If there is a total
of 15 items and an offset of 10 and limit of 10 is used, the resulting header is:
`10-19/15`.
'
schema:
type: string
pattern: ^(?<start>\d+)-(?<end>\d+)/(?<total>\d+)$
example: 0-9/200
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: createScheduledReport
summary: Create scheduled report
tags:
- Scheduled Reports
security:
- Kisi-Login: []
- OAuth2: []
requestBody:
content:
application/json:
schema:
type: object
title: Scheduled Report
properties:
scheduled_report:
type: object
properties:
name:
type: string
description: The name of the scheduled report
reporter_id:
type: integer
description: The reporter ID of the scheduled report
emails:
type: array
minItems: 1
maxItems: 5
items:
type: string
format: email
description: The emails to send the reports to
period:
type: string
enum:
- day
- week
- month
description: "The period of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
frequency:
type: integer
description: "The frequency of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
scheduled_at:
type: string
format: date
description: The date at which the schedule will start
time_zone:
type:
- string
example: Europe/London
description: 'The time zone of the scheduled report.
It should be a <a href="https://en.wikipedia.org/wiki/Tz_database#Names_of_time_zones"> valid IANA time zone name.</a>
'
required:
- name
- reporter_id
- period
- frequency
- scheduled_at
- time_zone
required:
- scheduled_report
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Scheduled Report
properties:
id:
type: integer
description: The ID of the scheduled report
resource_type:
type: string
description: The resource type of the scheduled report
const: ScheduledReport
name:
type: string
description: The name of the scheduled report
period:
type: string
enum:
- day
- week
- month
description: "The period of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
frequency:
type: integer
description: "The frequency of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
scheduled_at:
type: string
format: date
description: The date at which the schedule will start
time_zone:
type:
- string
example: Europe/London
description: 'The time zone of the scheduled report.
It should be a <a href="https://en.wikipedia.org/wiki/Tz_database#Names_of_time_zones"> valid IANA time zone name.</a>
'
enabled:
type: boolean
default: false
description: Whether the scheduled report is enabled
emails:
type: array
minItems: 1
maxItems: 5
items:
type: string
format: email
description: The emails to send the reports to
created_at:
type: string
format: date-time
description: When the scheduled report was created
updated_at:
type: string
format: date-time
description: When the scheduled report was updated
organization_id:
type: integer
description: The organization ID of the scheduled report
organization:
type: object
title: Organization
description: The organization of the scheduled report
properties:
id:
type: integer
description: The ID of the organization
resource_type:
type: string
description: The resource type of the organization
const: Organization
name:
type: string
description: The name of the organization
domain:
type: string
description: The domain of the organization.
required:
- id
- resource_type
- name
- domain
additionalProperties: false
place_id:
type:
- integer
- 'null'
description: The place ID of the scheduled report
reporter_id:
type: integer
description: The reporter ID of the scheduled report
required:
- id
- resource_type
- name
- period
- frequency
- scheduled_at
- time_zone
- enabled
- emails
- created_at
- updated_at
- organization_id
- organization
- place_id
- reporter_id
additionalProperties: false
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
/scheduled_reports/{id}:
get:
operationId: fetchScheduledReport
summary: Fetch scheduled report
tags:
- Scheduled Reports
security:
- Kisi-Login: []
- OAuth2: []
parameters:
- name: id
in: path
schema:
type: integer
required: true
description: The ID of the object
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
title: Scheduled Report
properties:
id:
type: integer
description: The ID of the scheduled report
resource_type:
type: string
description: The resource type of the scheduled report
const: ScheduledReport
name:
type: string
description: The name of the scheduled report
period:
type: string
enum:
- day
- week
- month
description: "The period of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
frequency:
type: integer
description: "The frequency of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
scheduled_at:
type: string
format: date
description: The date at which the schedule will start
time_zone:
type:
- string
example: Europe/London
description: 'The time zone of the scheduled report.
It should be a <a href="https://en.wikipedia.org/wiki/Tz_database#Names_of_time_zones"> valid IANA time zone name.</a>
'
enabled:
type: boolean
default: false
description: Whether the scheduled report is enabled
emails:
type: array
minItems: 1
maxItems: 5
items:
type: string
format: email
description: The emails to send the reports to
created_at:
type: string
format: date-time
description: When the scheduled report was created
updated_at:
type: string
format: date-time
description: When the scheduled report was updated
organization_id:
type: integer
description: The organization ID of the scheduled report
organization:
type: object
title: Organization
description: The organization of the scheduled report
properties:
id:
type: integer
description: The ID of the organization
resource_type:
type: string
description: The resource type of the organization
const: Organization
name:
type: string
description: The name of the organization
domain:
type: string
description: The domain of the organization.
required:
- id
- resource_type
- name
- domain
additionalProperties: false
place_id:
type:
- integer
- 'null'
description: The place ID of the scheduled report
reporter_id:
type: integer
description: The reporter ID of the scheduled report
required:
- id
- resource_type
- name
- period
- frequency
- scheduled_at
- time_zone
- enabled
- emails
- created_at
- updated_at
- organization_id
- organization
- place_id
- reporter_id
additionalProperties: false
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
patch:
operationId: updateScheduledReport
summary: Update scheduled report
tags:
- Scheduled Reports
security:
- Kisi-Login: []
- OAuth2: []
parameters:
- name: id
in: path
schema:
type: integer
required: true
description: The ID of the object
requestBody:
content:
application/json:
schema:
type: object
title: Scheduled Report
properties:
scheduled_report:
type: object
properties:
name:
type: string
description: The name of the scheduled report
enabled:
type: boolean
default: false
description: Whether the scheduled report is enabled
period:
type: string
enum:
- day
- week
- month
description: "The period of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
frequency:
type: integer
description: "The frequency of the scheduled report. \nIf the reporter has a minimum interval days, the frequency, together with the period, can't be shorter than that \nvalue. Current minimum interval days: no limit\nIf the reporter has a maximum interval days, the frequency, together with the period, can't be longer than that \nvalue. Current maximum interval days: 180\n"
scheduled_at:
type: string
format: date
description: The date at which the schedule will start
emails:
type: array
minItems: 1
maxItems: 5
items:
type: string
format: email
description: The emails to send the reports to
time_zone:
type:
- string
example: Europe/London
description: 'The time zone of the scheduled report.
It should be a <a href="https://en.wikipedia.org/wiki/Tz_database#Names_of_time_zones"> valid IANA time zone name.</a>
'
required: []
required:
- scheduled_report
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Unprocessable Content
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
delete:
operationId: deleteScheduledReport
summary: Delete scheduled report
tags:
- Scheduled Reports
security:
- Kisi-Login: []
- OAuth2: []
parameters:
- name: id
in: path
schema:
type: integer
required: true
description: The ID of the object
responses:
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Error:
description: Schema describing errors.
type: object
properties:
error:
type: string
description: The error message.
example: Wrong email address or password.
code:
type: string
description: An identifier of the error.
example: afc516
required:
- error
- code
Errors:
description: Schema describing validation errors.
type: object
properties:
errors:
type: object
additionalProperties:
type: array
items:
type: string
example:
email:
- can't be blank or invalid
password:
- can't be blank
required:
- errors
securitySchemes:
Webhook-Signature:
type: apiKey
in: header
name: X-Signature
description: 'Authorize using a signature of the request body. The signature is a HMAC-SHA256 hash of the request body using a secret key. <br><br>E.g. `X-Signature: 123`'
Kisi-Login:
type: apiKey
in: header
name: Authorization
description: 'Authorize using a login. Prefix the value with `KISI-LOGIN`<br><br>Example: `Authorization: KISI-LOGIN 123`'
Kisi-Access-Key:
type: apiKey
in: header
name: Authorization
description: 'Authorize using an access key. Prefix the value with `KISI-ACCESS-KEY`<br><br>Example: `Authorization: KISI-ACCESS-KEY 123`'
Kisi-Group-Link:
type: apiKey
in: header
name: Authorization
description: 'Authorize using a group link. Prefix the value with `KISI-GROUP-LINK`<br><br>Example: `Authorization: KISI-GROUP-LINK 123`'
Kisi-Service:
type: apiKey
in: header
name: Authorization
description: 'Authorize using a service. Prefix the value with `KISI-SERVICE`<br><br>Example: `Authorization: KISI-SERVICE 123`'
OAuth2Basic:
type: http
scheme: basic
description: Username is the client id. Password is the client secret.
OAuth2:
type: oauth2
description: 'OAuth access tokens are sent as bearer tokens. Example: `Authorization: Bearer youraccesstoken`'
flows:
authorizationCode:
authorizationUrl: https://api.kisi.io/oauth/authorize
tokenUrl: https://api.kisi.io/oauth/token
scopes: {}