Spyderbat Saved Query API
An API to allow the management of saved queries. Saved queries are used to quickly run Athena searches.
An API to allow the management of saved queries. Saved queries are used to quickly run Athena searches.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/spyderbat-saved-query-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
title: Spyderbat API UI & Public Saved Query API
description: Restful APIs for use by UI & customers.
termsOfService: https://www.spyderbat.com/terms-of-use/
contact:
name: API Support
url: https://api.prod.spyderbat.com/openapi
email: support@spyderbat.com
license:
name: MIT
url: https://mit-license.org/
version: 1.0.0
x-logo:
url: /static/sb-logo.svg
backgroundColor: '#161A21'
altText: Spyderbat Logo
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
security:
- apiToken: []
tags:
- name: Saved Query
description: An API to allow the management of saved queries. Saved queries are used to quickly run Athena searches.
paths:
/api/v1/org/{orgUID}/savedquery/:
get:
tags:
- Saved Query
summary: List saved queries
description: 'This will list all saved queries for an org
* Requires the action *org:ListSavedQuery* on the organization'
operationId: SavedQueryList
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: has_notifications
in: query
description: Filter the results to only include saved queries with notification settings
allowEmptyValue: true
schema:
type: boolean
description: Filter the results to only include saved queries with notification settings
- name: name_contains
in: query
schema:
type: string
- name: name_equals
in: query
schema:
type: string
- name: name_or_uid_contains
in: query
schema:
type: string
- name: page
in: query
description: 0-based page numbers of saved query results.
schema:
type: integer
description: 0-based page numbers of saved query results.
format: int32
- name: page_size
in: query
description: The number of records to return for a single API call. Default 10. -1 means all.
schema:
type: integer
description: The number of records to return for a single API call. Default 10. -1 means all.
format: int32
maximum: 100
minimum: -1
- name: query_contains
in: query
schema:
type: string
- name: query_equals
in: query
schema:
type: string
- name: reversed
in: query
allowEmptyValue: true
schema:
type: boolean
- name: schema_contains
in: query
schema:
type: string
- name: schema_equals
in: query
schema:
type: string
- name: sort_by
in: query
description: Sort the results by a field. One of [last_used|name|description|create_time|query|schema]
schema:
type: string
description: Sort the results by a field. One of [last_used|name|description|create_time|query|schema]
- name: uid_equals
in: query
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionListSavedQueryOutput'
'403':
description: permission denied
post:
tags:
- Saved Query
summary: Saved an Spyderbat Search Language query
description: 'This will save a new search query for an org
* Requires the action *org:CreateSavedQuery* on the organization'
operationId: SavedQueryCreate
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavedQueryCreateInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionCreateSavedQueryOutput'
'400':
description: invalid input parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'403':
description: permission denied
/api/v1/org/{orgUID}/savedquery/additional-settings:
get:
tags:
- Saved Query
summary: Show additional settings for a saved query
description: This will show the additional settings for a saved query
operationId: SavedQueryShowAdditionalSettings
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: schema
in: query
description: The schema to show additional settings for.
required: true
schema:
type: string
description: The schema to show additional settings for.
maxLength: 128
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionSavedQueryShowAdditionalSettingsOutput'
'403':
description: permission denied
/api/v1/org/{orgUID}/savedquery/{savedQueryUID}:
get:
tags:
- Saved Query
summary: Load a saved query
description: 'This will retrieve a specific saved query for an org
* Requires the action *org:LoadSavedQuery* on the organization'
operationId: SavedQueryLoad
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: savedQueryUID
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionLoadSavedQueryOutput'
'403':
description: permission denied
'404':
description: not found
put:
tags:
- Saved Query
summary: Update a saved query
description: 'This will update a specific saved query for an org
* Requires the action *org:UpdateSavedQuery* on the organization'
operationId: SavedQueryUpdate
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: savedQueryUID
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavedQueryUpdateInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionUpdateSavedQueryOutput'
'400':
description: invalid input parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'403':
description: permission denied
delete:
tags:
- Saved Query
summary: Delete a saved query
description: 'This will delete a specific saved query for an org
* Requires the action *org:DeleteSavedQuery* on the organization'
operationId: SavedQueryDelete
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: savedQueryUID
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'403':
description: permission denied
/api/v1/org/{orgUID}/savedquery/{savedQueryUID}/dependents:
get:
tags:
- Saved Query
summary: List dependents of a saved query
description: 'This will list the UIDs of all dependents of a saved query within an org
* Requires the action *org:LoadSavedQuery* on the organization. And
Requires permission to list dependents of the saved query.'
operationId: SavedQueryDependentsList
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: savedQueryUID
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionQueryDependentResources'
'403':
description: permission denied
'404':
description: not found
/api/v1/org/{orgUID}/savedquery/{savedQueryUID}/updatelastused:
put:
tags:
- Saved Query
summary: Update the last used time of a saved query
description: 'This will update the last used time of a specific saved query for an org
* Requires the action *org:UpdateSavedQuery* on the organization'
operationId: SavedQueryUpdateLastUsed
parameters:
- name: orgUID
in: path
required: true
schema:
type: string
- name: savedQueryUID
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
'403':
description: permission denied
components:
schemas:
SavedQueryUpdateInput:
type: object
properties:
additional_settings:
type: object
additionalProperties: {}
description:
type: string
maxLength: 500
minLength: 1
name:
type: string
maxLength: 128
minLength: 1
notification_settings:
$ref: '#/components/schemas/DaoNotificationSettings'
query:
type: string
maxLength: 65535
DaoNotificationSettings:
type: object
properties:
aggregate:
type: boolean
description: Aggregate notifications sent for this object. If enabled, notifications are aggregated over a minute before being sent out as a single notification.
aggregate_by:
type: array
items:
type: string
description: Aggregate notifications by the specified fields. By default, Spyderbat will identify the best fields to aggregate by.
aggregate_seconds:
type: integer
description: Overwrite the default notification aggregation window.
format: int64
cooldown:
type: integer
description: Cooldown in seconds for the notification.
format: int64
cooldown_by:
type: array
items:
type: string
description: Cooldown by the specified fields.
is_enabled:
type: boolean
target_map:
type: object
additionalProperties:
type: string
description: Map of notification targets to optional templates.
uid:
type: string
description: Not required for creation, will be auto-generated. Included in return values for reference.
SessionOutputSavedQuery:
type: object
properties:
additional_settings:
type: object
additionalProperties: {}
created_by:
type: string
description:
type: string
last_used:
type: integer
format: int64
name:
type: string
notification_settings:
$ref: '#/components/schemas/DaoNotificationSettingsObj'
org_uid:
type: string
query:
type: string
schema:
type: string
uid:
type: string
valid_from:
type: integer
format: int64
DaoNotificationSettingsObj:
type: object
properties:
aggregate:
type: boolean
description: Aggregate notifications sent for this object. If enabled, notifications are aggregated over a minute before being sent out as a single notification.
aggregate_by:
type: array
items:
type: string
description: Aggregate notifications by the specified fields. By default, Spyderbat will identify the best fields to aggregate by.
aggregate_seconds:
type: integer
description: Overwrite the default notification aggregation window.
format: int64
cooldown:
type: integer
description: Cooldown in seconds for the notification.
format: int64
cooldown_by:
type: array
items:
type: string
description: Cooldown by the specified fields.
is_enabled:
type: boolean
target_map:
type: object
additionalProperties:
type: string
description: Map of notification targets to optional templates.
uid:
type: string
description: Not required for creation, will be auto-generated. Included in return values for reference.
SessionLoadSavedQueryOutput:
type: object
properties:
saved_query:
$ref: '#/components/schemas/SessionOutputSavedQuery'
SessionListSavedQueryOutput:
type: object
properties:
saved_queries:
type: array
items:
$ref: '#/components/schemas/SessionOutputSavedQuery'
description: List of saved queries
search_total:
type: integer
description: Total number of saved queries matching the search criteria
format: int32
total_pages:
type: integer
description: Total number of pages of search results
format: int32
total_queries:
type: integer
description: Total number of saved queries
format: int32
SessionCreateSavedQueryOutput:
type: object
properties:
uid:
type: string
SessionSavedQueryShowAdditionalSettingsOutput:
type: object
properties:
additional_settings:
type: object
additionalProperties: {}
description: Additional settings fields and their corresponding types
SessionUpdateSavedQueryOutput:
type: object
properties:
saved_query:
$ref: '#/components/schemas/SessionOutputSavedQuery'
SessionQueryDependentResources:
type: object
properties:
custom_flags:
type: array
items:
type: string
SavedQueryCreateInput:
type: object
properties:
additional_settings:
type: object
additionalProperties: {}
description:
type: string
maxLength: 500
name:
type: string
maxLength: 128
minLength: 1
notification_settings:
$ref: '#/components/schemas/DaoNotificationSettings'
query:
type: string
maxLength: 65535
minLength: 1
schema:
type: string
maxLength: 64
required:
- name
- query
- schema
ValidationError:
type: object
properties:
err_msg:
type: string
description: Message regarding the validation failure
field:
type: string
description: Field name which failed validation
property:
type: string
description: JSON property name of the field which failed validation
tags:
type: string
description: Validation tag which failed
securitySchemes:
apiToken:
type: http
scheme: bearer
bearerFormat: JWT