Structify jobs API

The jobs API from Structify — 5 operation(s) for jobs.

OpenAPI Specification

structify-jobs-api-openapi.yml Raw ↑
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