Structify jobs API
The jobs API from Structify — 5 operation(s) for jobs.
The jobs API from Structify — 5 operation(s) for jobs.
openapi: 3.0.3
info:
contact:
email: team@structify.ai
name: Structify Team
description: Every enterprise's data team.
license:
name: Discuss directly with founders for license.
url: https://structify.ai
title: Structify account jobs API
version: 0.1.0
servers:
- description: Production server
url: https://api.structify.ai
- description: Local server
url: http://localhost:8080
security:
- api_key: []
- session_token: []
tags:
- name: jobs
paths:
/jobs/cancel/{uuid}:
post:
operationId: cancel_job
parameters:
- description: UUID of the job you want to cancel.
in: path
name: uuid
required: true
schema:
format: uuid
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Job'
description: Succesfully cancelled a job.
summary: You successfully cancelled a job.
tags:
- jobs
/jobs/get/{job_id}:
get:
operationId: get_job
parameters:
- in: path
name: job_id
required: true
schema:
$ref: '#/components/schemas/JobId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/JobResponse'
description: Full job details including info, source entities, and scrapers.
tags:
- jobs
/jobs/list:
get:
operationId: jobs_list
parameters:
- in: query
name: offset
required: false
schema:
minimum: 0
type: integer
- in: query
name: limit
required: false
schema:
minimum: 0
type: integer
- description: Dataset name to optionally filter jobs by
in: query
name: dataset
required: false
schema:
nullable: true
type: string
- description: Status to optionally filter jobs by
in: query
name: status
required: false
schema:
allOf:
- $ref: '#/components/schemas/JobStatus'
nullable: true
- description: List since a specific timestamp
in: query
name: since
required: false
schema:
format: date-time
nullable: true
type: string
- description: Type of job to optionally filter jobs by
in: query
name: job_type
required: false
schema:
allOf:
- $ref: '#/components/schemas/JobType'
nullable: true
- description: seeded kg search term
in: query
name: seeded_kg_search_term
required: false
schema:
nullable: true
type: string
- description: Node ID to optionally filter jobs by
in: query
name: node_id
required: false
schema:
allOf:
- $ref: '#/components/schemas/WorkflowSessionNodeId'
nullable: true
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ListJobsResponse'
type: array
description: A list of all execution histories
summary: List all the executions
tags:
- jobs
/jobs/schedule:
post:
description: 'One example use case is every single day check the news websites and
pull them into my dataset.'
operationId: schedule_job
responses:
'200':
description: Succesfully scheduled a job.
summary: You successfully scheduled a job.
tags:
- jobs
/jobs/{job_id}/events:
get:
operationId: get_job_events
parameters:
- description: Id of the job whose events to get.
in: path
name: job_id
required: true
schema:
$ref: '#/components/schemas/JobId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetJobEventsResponse'
description: Successfully got job events.
'400':
description: Job not found
'401':
description: Unauthorized
security:
- api_key: []
- session_token: []
tags:
- jobs
components:
schemas:
PinPreviousToolInput:
properties:
path:
type: string
required:
- path
type: object
RunPythonInput:
properties:
code:
type: string
connector:
nullable: true
type: string
timeout_seconds:
format: int64
minimum: 0
nullable: true
type: integer
working_dir:
nullable: true
type: string
required:
- code
type: object
TableDescriptor:
additionalProperties: false
description: The full definition of what a schema is - without duplicate information.
properties:
description:
type: string
expected_cardinality:
description: 'Expected number of unique values in the complete dataset.
This is used for our probabilistic merge strategy.'
format: int64
minimum: 0
nullable: true
type: integer
name:
description: Organized in a name, description format.
type: string
primary_column:
nullable: true
type: string
properties:
description: Organized in a name, description format.
items:
$ref: '#/components/schemas/PropertyDescriptor'
type: array
required:
- name
- description
- properties
type: object
ScraperMeta:
properties:
html_content:
type: string
url:
type: string
required:
- html_content
- url
type: object
ChatEvent:
description: Events in a chat session timeline, including messages and unified tool calls/results
oneOf:
- properties:
TextMessage:
properties:
message:
type: string
required:
- message
type: object
required:
- TextMessage
type: object
- properties:
Thinking:
properties:
block_id:
format: int64
minimum: 0
type: integer
complete:
type: boolean
content:
type: string
required:
- content
- complete
- block_id
type: object
required:
- Thinking
type: object
- properties:
File:
description: 'The file event can''t be serialized to the database safely without the content.
When streaming, we start with the path only, then add the content as we go.'
properties:
block_id:
format: int64
minimum: 0
type: integer
complete:
type: boolean
content:
nullable: true
type: string
path:
type: string
required:
- path
- complete
- block_id
type: object
required:
- File
type: object
- properties:
Action:
properties:
actions:
items:
$ref: '#/components/schemas/ActionDef'
type: array
block_id:
format: int64
minimum: 0
type: integer
complete:
type: boolean
required:
- actions
- complete
- block_id
type: object
required:
- Action
type: object
- properties:
Connector:
properties:
description:
nullable: true
type: string
env_vars:
items:
type: string
type: array
name:
type: string
required:
- name
- env_vars
type: object
required:
- Connector
type: object
- properties:
ToolCall:
properties:
block_id:
format: int64
minimum: 0
type: integer
complete:
type: boolean
invocation:
$ref: '#/components/schemas/ToolInvocation'
tool_result:
$ref: '#/components/schemas/ToolResult'
required:
- invocation
- tool_result
- block_id
- complete
type: object
required:
- ToolCall
type: object
- properties:
Question:
properties:
block_id:
format: int64
minimum: 0
type: integer
complete:
type: boolean
content:
type: string
options:
items:
type: string
type: array
required:
- content
- complete
- options
- block_id
type: object
required:
- Question
type: object
- properties:
InternalError:
properties:
error_kind:
$ref: '#/components/schemas/InternalErrorKind'
message:
type: string
required:
- message
type: object
required:
- InternalError
type: object
- properties:
ReviewRequest:
properties:
node_summaries:
items:
$ref: '#/components/schemas/NodeSummary'
type: array
required:
- node_summaries
type: object
required:
- ReviewRequest
type: object
- properties:
AttachedFile:
properties:
image_bytes:
format: binary
nullable: true
type: string
path:
type: string
required:
- path
type: object
required:
- AttachedFile
type: object
- properties:
ConnectorRequest:
properties:
connector_id:
$ref: '#/components/schemas/ConnectorId'
required:
- connector_id
type: object
required:
- ConnectorRequest
type: object
- properties:
UserInterrupted:
type: object
required:
- UserInterrupted
type: object
- properties:
IssueFound:
properties:
admin_override:
type: boolean
description:
type: string
title:
type: string
required:
- title
- description
- admin_override
type: object
required:
- IssueFound
type: object
TimeStampedJobEvent:
properties:
body:
$ref: '#/components/schemas/JobEventBody'
created_at:
format: date-time
type: string
required:
- created_at
- body
type: object
ReasoningEffort:
enum:
- low
- medium
- high
- minimal
type: string
MergeStrategy:
oneOf:
- description: 'Property with unique 1:1 correspondence to its parent.
Merge based on this property 100% of the time'
enum:
- Unique
type: string
- properties:
Probabilistic:
$ref: '#/components/schemas/MergeConfig'
required:
- Probabilistic
type: object
- enum:
- NoSignal
type: string
Money:
oneOf:
- description: 'Money string that includes currency and amount: $10k, £100.00, 1 million CAD, ¥1e8 etc.'
title: MoneyString
type: string
- properties:
amount:
type: number
currency_code:
enum:
- USD
- EUR
- GBP
- JPY
- CNY
- INR
- RUB
- CAD
- AUD
- CHF
- ILS
- NZD
- SGD
- HKD
- NOK
- SEK
- PLN
- TRY
- DKK
- MXN
- ZAR
- PHP
- VND
- THB
- BRL
- KRW
type: string
original_string:
type: string
required:
- currency_code
- amount
- original_string
title: MoneyObject
type: object
title: MoneyProperty
DecodingParams:
properties:
parameters:
items:
$ref: '#/components/schemas/DecodingParamEnum'
type: array
required:
- parameters
type: object
ConnectorTableId:
format: uuid
type: string
JobStatus:
enum:
- Queued
- Running
- Completed
- Failed
type: string
ApplyPatchEdit:
properties:
new_string:
type: string
old_string:
type: string
required:
- old_string
- new_string
type: object
DecodingParamEnum:
oneOf:
- properties:
MaxTokens:
minimum: 0
type: integer
required:
- MaxTokens
type: object
- properties:
MaxCompletionTokens:
minimum: 0
type: integer
required:
- MaxCompletionTokens
type: object
- properties:
TopP:
format: float
type: number
required:
- TopP
type: object
- properties:
RepeatWindow:
minimum: 0
type: integer
required:
- RepeatWindow
type: object
- properties:
RepeatPenalty:
format: float
type: number
required:
- RepeatPenalty
type: object
- properties:
Temperature:
format: float
type: number
required:
- Temperature
type: object
- properties:
StopTokens:
items:
type: string
type: array
required:
- StopTokens
type: object
- properties:
LogitBias:
additionalProperties:
format: float
type: number
type: object
required:
- LogitBias
type: object
- properties:
Functions:
items:
additionalProperties: true
type: object
x-stainless-empty-object: true
type: array
required:
- Functions
type: object
- properties:
JsonValidator:
additionalProperties: true
type: object
x-stainless-empty-object: true
required:
- JsonValidator
type: object
- properties:
RegexValidator:
type: string
required:
- RegexValidator
type: object
- properties:
ContextFreeGrammar:
type: string
required:
- ContextFreeGrammar
type: object
- properties:
NumBeams:
minimum: 0
type: integer
required:
- NumBeams
type: object
- properties:
Crop:
type: boolean
required:
- Crop
type: object
- properties:
Thinking:
description: Thinking tokens for Claude 3.7. Contains the budget in tokens for thinking.
minimum: 0
type: integer
required:
- Thinking
type: object
- properties:
Verbosity:
$ref: '#/components/schemas/Verbosity'
required:
- Verbosity
type: object
- properties:
ReasoningEffort:
$ref: '#/components/schemas/ReasoningEffort'
required:
- ReasoningEffort
type: object
SearchConnectorTypesInput:
properties:
query:
nullable: true
type: string
type: object
ToolInvocation:
discriminator:
propertyName: name
oneOf:
- properties:
input:
$ref: '#/components/schemas/WebSearchInput'
name:
enum:
- WebSearch
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/WebNavigateInput'
name:
enum:
- WebNavigate
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/ViewPageInput'
name:
enum:
- ViewPage
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveInput'
name:
enum:
- Save
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveEntitiesInput'
name:
enum:
- SaveEntities
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/ExitInput'
name:
enum:
- Exit
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/ApiExecuteInput'
name:
enum:
- ApiExecute
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/JavascriptInput'
name:
enum:
- Javascript
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/NavigateToIFrameInput'
name:
enum:
- NavigateToIFrame
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/InfiniteScrollInput'
name:
enum:
- InfiniteScroll
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/InspectStepInput'
name:
enum:
- InspectStep
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/ReadNodeLogsInput'
name:
enum:
- ReadNodeLogs
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/DeleteFileInput'
name:
enum:
- DeleteFile
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/MoveFileInput'
name:
enum:
- MoveFile
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/ApplyPatchInput'
name:
enum:
- ApplyPatch
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/RunBashInput'
name:
enum:
- RunBash
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/RunPythonInput'
name:
enum:
- RunPython
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/IssueFoundInput'
name:
enum:
- IssueFound
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveDatabaseInput'
name:
enum:
- SaveDatabase
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveSchemaInput'
name:
enum:
- SaveSchema
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveTableInput'
name:
enum:
- SaveTable
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveColumnInput'
name:
enum:
- SaveColumn
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveApiResourceInput'
name:
enum:
- SaveApiResource
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SaveMemoryInput'
name:
enum:
- SaveMemory
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SearchConnectorTablesInput'
name:
enum:
- SearchConnectorTables
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/RequestClarificationInput'
name:
enum:
- RequestClarification
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/AddDependencyInput'
name:
enum:
- AddDependency
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SelectDataInput'
name:
enum:
- SelectData
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/CreateConnectorInput'
name:
enum:
- CreateConnector
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/SearchConnectorTypesInput'
name:
enum:
- SearchConnectorTypes
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/PinPreviousToolInput'
name:
enum:
- PinPreviousTool
type: string
required:
- name
- input
type: object
- properties:
input:
$ref: '#/components/schemas/RunPipelineInput'
name:
enum:
- RunPipeline
type: string
required:
- name
- input
type: object
JobInput:
properties:
allow_extra_entities:
type: boolean
extraction_criteria:
items:
$ref: '#/components/schemas/SaveRequirement'
type: array
instructions:
nullable: true
type: string
model:
nullable: true
type: string
seeded_kg:
allOf:
- $ref: '#/components/schemas/LLMKnowledgeGraph'
nullable: true
structuring_input:
$ref: '#/components/schemas/InputType'
required:
- structuring_input
- extraction_criteria
- allow_extra_entities
type: object
UserId:
format: uuid
type: string
SourceLocation:
oneOf:
- properties:
Text:
properties:
byte_offset:
minimum: 0
type: integer
required:
- byte_offset
type: object
required:
- Text
type: object
- properties:
Visual:
properties:
x:
minimum: 0
type: integer
y:
minimum: 0
type: integer
required:
- x
- y
type: object
required:
- Visual
type: object
- properties:
Page:
properties:
page_number:
format: int32
minimum: 0
type: integer
required:
- page_number
type: object
required:
- Page
type: object
ApiExecuteInput:
properties:
code:
type: string
required:
- code
type: object
Input:
oneOf:
- properties:
PDF:
$ref: '#/components/schemas/PDFIngestor'
required:
- PDF
type: object
- properties:
Web:
$ref: '#/components/schemas/WebSearch'
required:
- Web
type: object
ConnectorExplorationInput:
properties:
connector_id:
$ref: '#/components/schemas/ConnectorId'
exploration_phase_id:
$ref: '#/components/schemas/ExplorationPhaseId'
exploration_run_id:
$ref: '#/components/schemas/ExplorationRunId'
strategy:
$ref: '#/components/schemas/ExplorationStrategy'
required:
- connector_id
- exploration_phase_id
- exploration_run_id
- strategy
type: object
NavigationType:
enum:
- visual
- text
type: string
ToolResult:
oneOf:
- enum:
- Pending
type: string
- enum:
- NoResult
type: string
- properties:
Error:
type: string
required:
- Error
type: object
- properties:
Text:
type: string
required:
- Text
type: object
- properties:
CodeExecution:
$ref: '#/components/schemas/CodeExecutionResult'
required:
- CodeExecution
type: object
- properties:
WebMarkdown:
type: string
required:
- WebMarkdown
type: object
- properties:
WebSearch:
items:
$ref: '#/components/schemas/DocSnippet'
type: array
required:
- WebSearch
type: object
- properties:
ConnectorSearch:
items:
$ref: '#/components/schemas/ConnectorTableResult'
type: array
required:
- ConnectorSearch
type: object
- properties:
NodeLogs:
items:
type: string
type: array
required:
- NodeLogs
type: object
- enum:
- Completed
type: string
- properties:
Image:
$ref: '#/components/schemas/ImageResult'
required:
- Image
type: object
- properties:
Pinned:
type: string
required:
- Pinned
type: object
ScraperWithJobInfo:
properties:
base_url:
type: string
chat:
allOf:
- $ref: '#/components/schemas/ChatPrompt'
nullable: true
code:
nullable: true
type: string
events:
items:
$ref: '#/components/schemas/ChatEvent'
nullable: true
type: array
is_newly_created:
type: boolean
next_page_code:
nullable: true
type: string
scraper_created_at:
format: date-time
type: string
scraper_id:
$ref: '#/components/schemas/ScraperId'
scraper_updated_at:
format: date-time
type: string
required:
- scraper_id
- base_url
- scraper_created_at
- scraper_updated_at
- is_newly_created
type: object
NavigateToIFrameInput:
properties:
index:
format: int32
minimum: 0
type: integer
required:
- index
type: object
SaveMemoryInput:
properties:
key:
type: string
value:
type: string
required:
- key
- value
type: object
SaveSchemaInput:
properties:
description:
nullable: true
type: string
name:
type: string
notes:
nullable: true
type: string
required:
- name
type: object
RequiredEntity:
additionalProperties: false
properties:
entity_id:
allOf:
- $ref: '#/components/schemas/EntityId'
nullable: true
seeded_entity_id:
description: The integer id corresponding to an entity in the seeded entity graph (different from the global dataset entity id)
minimum: 0
type: integer
required:
- seeded_entity_id
type: object
ActionDef:
description: Action definition
properties:
description:
type: string
name:
type: string
required:
- name
- description
type: object
ConnectorColumnResult:
properties:
name:
type: string
notes:
nullable: true
type: string
type:
type: string
required:
- name
- type
type: object
DatasetId:
format: uuid
type: string
MessageContent:
oneOf:
- properties:
Text:
type: string
required:
- Text
type: object
- properties:
Image:
format: binary
type: string
required:
- Image
type: object
RequestClarificationInput:
properties:
column_name:
nullable: true
type: string
question:
type: string
table_name:
type: string
required:
- table_name
- question
type: object
PDFIngestor:
additionalProperties: false
description: Ingest all pages of a PDF and process them independently.
properties:
page:
format: int32
minimum: 0
nullable: true
type: integer
path:
# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/structify/refs/heads/main/openapi/structify-jobs-api-openapi.yml