Spyderbat Adhoc Search API
Ad-hoc Search interface for complex queries
Ad-hoc Search interface for complex queries
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-adhocsearch-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Spyderbat Adhoc Search API
version: 1.0.0
contact:
name: API Support
url: https://api.prod.spyderbat.com/openapi
email: support@spyderbat.com
license:
name: MIT
url: https://mit-license.org/
termsOfService: https://www.spyderbat.com/terms-of-use/
x-logo:
url: /static/sb-logo.svg
backgroundColor: '#161A21'
altText: Spyderbat Logo
description: 'Operations tagged AdhocSearch across 2 of this provider''s published API definitions: spyderbat-openapi-original.json, spyderbat-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
security:
- apiToken: []
tags:
- name: AdhocSearch
description: 'Ad-hoc Search interface for complex queries
'
paths:
/api/v1/org/{orgUID}/objects/:
post:
tags:
- AdhocSearch
summary: Get objects by ID
description: "\nReturns objects by ID.\n\n * Requires action source_data:Query"
operationId: Objects
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectsInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionObjectQueryResponse'
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/objects/poll_results:
post:
tags:
- AdhocSearch
summary: Gets the pending results for a given query
description: "\nReturns the next set of objects from a query previously started with\nstart_query. If 'complete' is true in the response, then there are no more\nresults and calling poll_results with the same query ID will return \"not found\".\n\n * Requires action source_data:Query"
operationId: ObjectsPollResults
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectsPollResultsInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionObjectPollResultsResponse'
'403':
description: permission denied
'404':
description: not found
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/objects/start_query:
post:
tags:
- AdhocSearch
summary: Get objects by ID and graph link rules, returning a query ID for slow results
description: "\nReturns objects from the given IDs and links given with the graph rules.\nIf no rules are present, returns only the objects with the given IDs.\nIf results are slow to fetch, part of the results will be returned with a\nquery ID that can be used to fetch the remaining results from poll_results.\n\n * Requires action source_data:Query"
operationId: ObjectsStartQuery
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectsStartQueryInput'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionObjectStartQueryResponse'
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/objects/stop_query:
post:
tags:
- AdhocSearch
summary: Terminates a running query
description: "\nTells the objects service that the given query is no longer needed, and\ncan be stopped or cleaned up. Future calls to poll results with this\nquery ID will return \"not found\".\n\n * Requires action source_data:Query"
operationId: ObjectsStopQuery
parameters:
- name: orgUID
in: path
description: Organization UID of the query
required: true
schema:
type: string
description: Organization UID of the query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectsStopQueryInput'
responses:
'200':
description: OK
'403':
description: permission denied
'404':
description: not found
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/objects/walk-graph:
post:
tags:
- AdhocSearch
summary: Get objects by ID and graph link rules
description: "\nReturns objects from the given IDs and links given with the graph rules.\n\n * Requires action source_data:Query"
operationId: ObjectsWalkGraph
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectsWalkGraphInput'
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/search/:
post:
tags:
- AdhocSearch
summary: Start an adhoc search
description: "\nStarts an ahdoc search. Returns an ID that can be used to get results.\n\n * Requires action source_data:Query"
operationId: Search
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
- name: limit
in: query
description: Maximum number of results to return
schema:
type: integer
description: Maximum number of results to return
format: int32
maximum: 100000000
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchInput'
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/search/convert/:
post:
tags:
- AdhocSearch
summary: Convert an adhoc search
description: "\nConverts an ahdoc search.\n\n * Requires action source_data:Query"
operationId: Convert
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConvertInput'
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/search/parse-query/:
post:
tags:
- AdhocSearch
summary: Returns a structured representation of a query without running it
description: "\nParses and validates a search query, then returns a structured representation of the parsed query.\nDoes not run the provided query.\n\n * Requires action source_data:Query"
operationId: Parse Search Query
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
- name: limit
in: query
description: Maximum number of results to return
schema:
type: integer
description: Maximum number of results to return
format: int32
maximum: 100000000
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Parse_Search_QueryInput'
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/search/schema/:
get:
tags:
- AdhocSearch
summary: Schema for an adhoc search
description: "\nSchema for an ahdoc search.\n\n * Requires action source_data:Query"
operationId: Schema
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/search/validate/:
post:
tags:
- AdhocSearch
summary: Validate an adhoc search
description: "\nValidates an ahdoc search.\n\n * Requires action source_data:Query"
operationId: Validate
parameters:
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
- name: limit
in: query
description: Maximum number of results to return
schema:
type: integer
description: Maximum number of results to return
format: int32
maximum: 100000000
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValidateInput'
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
/api/v1/org/{orgUID}/search/{jobID}:
post:
tags:
- AdhocSearch
summary: Start an adhoc search
description: "\nReturns data from an adhoc search job.\n\n * Requires action source_data:Query"
operationId: Results
parameters:
- name: jobID
in: path
description: Job ID to get results for
required: true
schema:
type: string
description: Job ID to get results for
maxLength: 16128
- name: orgUID
in: path
description: Organization UID to query
required: true
schema:
type: string
description: Organization UID to query
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ResultsInput'
responses:
'200':
description: OK
'403':
description: permission denied
servers:
- url: https://api.prod.spyderbat.com/
description: Spyderbat API Server
components:
schemas:
ObjectsInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
ids:
type: array
items:
type: string
description: Array of IDs to resolve into records
maxItems: 2000
minItems: 1
required:
- ids
ConvertInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
query:
type: string
ObjectsWalkGraphInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
ids:
type: array
items:
type: string
description: Array of IDs to resolve into records
maxItems: 2000
minItems: 1
rules:
type: array
items:
$ref: '#/components/schemas/SessionGraphLinkRule'
description: The rules to use to walk the graph
maxItems: 2000
required:
- ids
ObjectsStartQueryInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
ids:
type: array
items:
type: string
description: Array of IDs to resolve into records
maxItems: 2000
minItems: 1
rules:
type: array
items:
$ref: '#/components/schemas/SessionGraphLinkRule'
description: The rules to use to walk the graph
maxItems: 2000
required:
- ids
SessionObjectPollResultsResponse:
type: object
properties:
complete:
type: boolean
description: Whether or not the data is complete, meaning there are no more results
errors:
type: array
items: {}
description: List of errors from object query
results:
type: array
items: {}
description: Objects matching the requested ids
Parse_Search_QueryInput:
type: object
properties:
case_sensitive:
type: boolean
description: Whether the query is case sensitive (default false)
cluster_uid:
type: string
description: An optional pre-filter field that restricts results to one cluster
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
end_time:
type: integer
description: End time to query
format: int32
group_by:
type: array
items:
$ref: '#/components/schemas/SessionGrouping'
description: What fields to use for grouping, a non-empty array causes the output to be treated as a histogram
latest_version:
type:
- boolean
- 'null'
description: Whether to pre-filter the results to only search with the latest version of each object (default true)
muid:
type: string
description: An optional pre-filter field that restricts results to one machine
order_by:
description: Fields to order the results by
output_fields:
type: array
items:
type: string
description: 'What fields to output from the query; default: ["id"]'
query:
type: string
description: Query to execute
maxLength: 65536
schema:
type: string
description: Schema to query
maxLength: 512
start_time:
type: integer
description: Start time to query
format: int32
required:
- end_time
- query
- schema
- start_time
SessionObjectStartQueryResponse:
type: object
properties:
errors:
type: array
items: {}
description: List of ids that are not in the database
query_id:
type: string
description: Optional ID that can be passed to poll results to get the rest of the results
maxLength: 128
results:
type: array
items: {}
description: Objects matching the requested ids
ObjectsStopQueryInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
query_id:
type: string
description: Query ID returned by start query
maxLength: 128
required:
- query_id
ResultsInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
limit:
type: integer
description: Maximum number of results to return
format: int32
maximum: 10000
token:
type: string
description: Where to start the query in the result set from
maxLength: 128
SearchInput:
type: object
properties:
case_sensitive:
type: boolean
description: Whether the query is case sensitive (default false)
cluster_uid:
type: string
description: An optional pre-filter field that restricts results to one cluster
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
end_time:
type: integer
description: End time to query
format: int32
group_by:
type: array
items:
$ref: '#/components/schemas/SessionGrouping'
description: What fields to use for grouping, a non-empty array causes the output to be treated as a histogram
latest_version:
type:
- boolean
- 'null'
description: Whether to pre-filter the results to only search with the latest version of each object (default true)
muid:
type: string
description: An optional pre-filter field that restricts results to one machine
order_by:
description: Fields to order the results by
output_fields:
type: array
items:
type: string
description: 'What fields to output from the query; default: ["id"]'
query:
type: string
description: Query to execute
maxLength: 65536
schema:
type: string
description: Schema to query
maxLength: 512
start_time:
type: integer
description: Start time to query
format: int32
required:
- end_time
- query
- schema
- start_time
SessionGrouping:
type: object
properties:
bins:
type: array
items:
type: number
format: double
description: The bins to use for grouping this field, if it is numeric
name:
type: string
description: The field name to group by
ValidateInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
group_by:
type: array
items:
$ref: '#/components/schemas/SessionGrouping'
description: What fields to use for grouping, a non-empty array causes the output to be treated as a histogram
is_for_realtime_search:
type: boolean
order_by:
description: Fields to order the results by
output_fields:
type: array
items:
type: string
description: 'What fields to output from the query; default: ["id"]'
query:
type: string
schema:
type: string
ObjectsPollResultsInput:
type: object
properties:
context_uid:
type: string
description: Context UID for this query, it's used to track the query as it flows through the system, and shouldn't be exposed to customers
query_id:
type: string
description: Query ID returned by start query
maxLength: 128
required:
- query_id
SessionGraphLinkRule:
type: object
properties:
field:
type: string
description: The field of the object which contains an ID or list of IDs
max_depth:
type:
- integer
- 'null'
description: The maximum number of times to resolve this link
format: int32
object_schema:
type: string
description: The short schema of the objects with this link
required:
- field
- object_schema
SessionObjectQueryResponse:
type: object
properties:
err_array:
type: array
items: {}
description: List of errors from object query
results:
type: array
items: {}
description: Objects matching the requested ids
retryable:
type: array
items:
type: string
description: List of IDs that were not found and can be retried
securitySchemes:
apiToken:
type: http
scheme: bearer
bearerFormat: JWT
x-refined-from:
- spyderbat-openapi-original.json
- spyderbat-openapi.json