Scanner Lookup Tables API
Upload, manage, and download lookup table files for enrichment.
Upload, manage, and download lookup table files for enrichment.
openapi: 3.1.0
info:
title: Scanner Ad Hoc Queries Lookup Tables API
version: v1
description: Scanner is a cloud-native security data platform that indexes logs directly in Amazon S3 for fast full-text search, continuous streaming detections, and programmatic access to security data. This REST API (v1) covers searchable indexes, detection rules, event sinks, lookup tables, ad hoc queries, and account/query-capacity info. Authentication is a Scanner API key presented as an HTTP Bearer token. Most operations are tenant-scoped and require a `tenant_id`. The API base URL is environment-specific and shown in Settings > API Keys inside the Scanner app.
contact:
name: Scanner
url: https://docs.scanner.dev/scanner/
x-provenance:
generated: '2026-07-21'
method: generated
source: https://docs.scanner.dev/scanner/using-scanner-complete-feature-reference/developer-tools/api.md
servers:
- url: https://{environment}.scanner.dev
description: Environment-specific Scanner host. Find your environment/base URL in Settings > API Keys (the MCP endpoint uses the parallel form https://mcp.{environment}.scanner.dev/v1/mcp).
variables:
environment:
default: your-env-here
description: Your Scanner environment identifier from Settings > API Keys.
security:
- bearerAuth: []
tags:
- name: Lookup Tables
description: Upload, manage, and download lookup table files for enrichment.
paths:
/v1/lookup_table_file/upload/tenant/{tenant_id}:
post:
operationId: uploadLookupTableFile
tags:
- Lookup Tables
summary: Upload lookup table file
description: Upload a new lookup table file for enrichment lookups.
parameters:
- name: tenant_id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
- name
properties:
file:
type: string
format: binary
name:
type: string
description:
type: string
responses:
'200':
description: Created lookup table file metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/LookupTableFile'
'400':
$ref: '#/components/responses/BadRequest'
/v1/lookup_table_file:
get:
operationId: listLookupTableFiles
tags:
- Lookup Tables
summary: List lookup table files
description: List all lookup table files for a tenant.
parameters:
- $ref: '#/components/parameters/TenantId'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/PageToken'
responses:
'200':
description: Paginated list of lookup table files.
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
lookup_table_files:
type: array
items:
$ref: '#/components/schemas/LookupTableFile'
pagination:
$ref: '#/components/schemas/Pagination'
'400':
$ref: '#/components/responses/BadRequest'
/v1/lookup_table_file/{id}:
get:
operationId: getLookupTableFile
tags:
- Lookup Tables
summary: Get lookup table file
description: Retrieve metadata for a specific lookup table file.
parameters:
- $ref: '#/components/parameters/PathId'
responses:
'200':
description: The lookup table file metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/LookupTableFile'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateLookupTableFile
tags:
- Lookup Tables
summary: Update lookup table file
description: Update lookup table file metadata.
parameters:
- $ref: '#/components/parameters/PathId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type: string
responses:
'200':
description: Updated lookup table file metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/LookupTableFile'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteLookupTableFile
tags:
- Lookup Tables
summary: Delete lookup table file
description: Delete a lookup table file.
parameters:
- $ref: '#/components/parameters/PathId'
responses:
'200':
description: Deleted.
'404':
$ref: '#/components/responses/NotFound'
/v1/lookup_table_file/{id}/data:
get:
operationId: downloadLookupTableFile
tags:
- Lookup Tables
summary: Download lookup table file
description: Download the stored lookup table file contents.
parameters:
- $ref: '#/components/parameters/PathId'
responses:
'200':
description: The stored file contents.
content:
application/octet-stream:
schema:
type: string
format: binary
'404':
$ref: '#/components/responses/NotFound'
/v1/lookup_table_file/{id}/csv_preview:
get:
operationId: previewLookupTableFile
tags:
- Lookup Tables
summary: Preview lookup table file
description: Preview the first N rows of a lookup table file as CSV.
parameters:
- $ref: '#/components/parameters/PathId'
- name: limit
in: query
required: true
schema:
type: integer
description: Number of rows to preview.
responses:
'200':
description: CSV preview.
content:
text/csv:
schema:
type: string
'404':
$ref: '#/components/responses/NotFound'
/v1/lookup_table_file/{id}/replace_data:
post:
operationId: replaceLookupTableFileData
tags:
- Lookup Tables
summary: Replace lookup table file data
description: Replace the contents of an existing lookup table file.
parameters:
- $ref: '#/components/parameters/PathId'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
properties:
file:
type: string
format: binary
description:
type: string
responses:
'200':
description: Updated lookup table file metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/LookupTableFile'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
TenantId:
name: tenant_id
in: query
required: true
schema:
type: string
description: Unique identifier for the tenant.
PathId:
name: id
in: path
required: true
schema:
type: string
description: Resource identifier.
PageSize:
name: pagination[page_size]
in: query
required: false
schema:
type: integer
description: Maximum results per page.
PageToken:
name: pagination[page_token]
in: query
required: false
schema:
type: string
description: Cursor for the next page.
responses:
BadRequest:
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error: invalid query
NotFound:
description: Resource not found (or resolves to a non-user index).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Pagination:
type: object
properties:
next_page_token:
type:
- string
- 'null'
description: Cursor for subsequent requests; null when exhausted.
LookupTableFile:
type: object
properties:
id:
type: string
tenant_id:
type: string
name:
type: string
description:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
Error:
type: object
properties:
error:
type: string
description: Human-readable error description.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Scanner API key presented as `Authorization: Bearer <Scanner API Key>`. Create keys in Settings > API Keys.'