Structify entity API

The entity API from Structify — 21 operation(s) for entity.

Operations 21

POST /entity/add Add an entity (or entities) to a dataset given a graph representation of the entity (or entities). #
POST /entity/add_batch Add a batch of entities to a dataset given a list of graph representations of the entities. #
POST /entity/add_relationship Add a relationship between two entities in a dataset #
DELETE /entity/delete Delete an entity manually #
POST /entity/delete_relationship delete a relationship between two entities in a dataset #
POST /entity/derive Derive a new property value based on existing source properties #
POST /entity/derive_all Derive a new property value based on existing source properties for all entities in a table #
GET /entity/get Get entity with a given id #
GET /entity/get_local_subgraph #
GET /entity/get_merges Get all historical merges for a given entity #
GET /entity/get_source_entities #
GET /entity/list_jobs list jobs for a given entity #
POST /entity/merge merge an entity manually #
POST /entity/summarize Search for entities based on the given query #
POST /entity/trigger_merge Trigger our merge process for a given entity #
POST /entity/update update an entity manually #
POST /entity/upload Add multiple entities to a dataset from a CSV file #
POST /entity/upload_parquet Add multiple entities to a dataset from a Parquet file with fast batch insert #
POST /entity/verify verify a kg against the dataset #
GET /entity/view #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/structify-entity-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

structify-entity-api-openapi.yml Raw ↑
openapi: 3.2.0
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 Entity 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: entity
paths:
  /entity/add:
    post:
      operationId: entity_add
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EntityId'
                type: array
          description: Added entity ids
      summary: Add an entity (or entities) to a dataset given a graph representation of the entity (or entities).
      tags:
      - entity
  /entity/add_batch:
    post:
      operationId: entity_add_batch
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddBatchParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EntityId'
                type: array
          description: Added entity ids
      summary: Add a batch of entities to a dataset given a list of graph representations of the entities.
      tags:
      - entity
  /entity/add_relationship:
    post:
      operationId: entity_add_relationship
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddRelationshipParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KgRelationship'
          description: Added relationship
      summary: Add a relationship between two entities in a dataset
      tags:
      - entity
  /entity/delete:
    delete:
      operationId: entity_delete
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EntityId'
                type: array
          description: Deleted entity ids
      summary: Delete an entity manually
      tags:
      - entity
  /entity/delete_relationship:
    post:
      operationId: entity_delete_relationship
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteRelationshipParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                default: null
          description: deleted relationship
      summary: delete a relationship between two entities in a dataset
      tags:
      - entity
  /entity/derive:
    post:
      operationId: entity_derive
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeriveEntityParams'
        required: true
      responses:
        '200':
          content:
            text/plain:
              schema:
                type: string
          description: Job ID
      security:
      - api_key: []
      - session_token: []
      summary: Derive a new property value based on existing source properties
      tags:
      - entity
  /entity/derive_all:
    post:
      operationId: entity_derive_all
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeriveAllEntityParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/JobId'
                type: array
          description: Job IDs
      security:
      - api_key: []
      - session_token: []
      summary: Derive a new property value based on existing source properties for all entities in a table
      tags:
      - entity
  /entity/get:
    get:
      operationId: entity_get
      parameters:
      - in: query
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      - in: query
        name: resolve_id
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KgEntity'
          description: Requested entity
      summary: Get entity with a given id
      tags:
      - entity
  /entity/get_local_subgraph:
    get:
      operationId: entity_get_local_subgraph
      parameters:
      - in: query
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      - in: query
        name: radius
        required: false
        schema:
          format: int32
          minimum: 0
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetLocalSubgraphResponse'
          description: Local subgraph of given radius
      tags:
      - entity
  /entity/get_merges:
    get:
      operationId: entity_get_merges
      parameters:
      - in: query
        name: entity_id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EntityMatch'
                type: array
          description: entity merges
      summary: Get all historical merges for a given entity
      tags:
      - entity
  /entity/get_source_entities:
    get:
      operationId: entity_get_source_entities
      parameters:
      - in: query
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSourceEntitiesResponse'
          description: Source entities of given entity
      tags:
      - entity
  /entity/list_jobs:
    get:
      operationId: entity_list_jobs
      parameters:
      - in: query
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Job'
                type: array
          description: Jobs for the given entity
      summary: list jobs for a given entity
      tags:
      - entity
  /entity/merge:
    post:
      operationId: entity_merge
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MergeParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MergeResponse'
          description: merged entity
      summary: merge an entity manually
      tags:
      - entity
  /entity/search:
    post:
      operationId: entity_search
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchEntityParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/KgEntity'
                type: array
          description: Search results
      security:
      - api_key: []
      - session_token: []
      summary: Search for entities based on the given query
      tags:
      - entity
  /entity/summarize:
    post:
      operationId: entity_summarize
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SummarizeEntityParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/KgEntity'
                type: array
          description: Search results
      security:
      - api_key: []
      - session_token: []
      summary: Search for entities based on the given query
      tags:
      - entity
  /entity/trigger_merge:
    post:
      operationId: entity_triggermerge
      parameters:
      - in: query
        name: entity_id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KgEntity'
          description: merged entity
      summary: Trigger our merge process for a given entity
      tags:
      - entity
  /entity/update:
    post:
      operationId: entity_update
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KgEntity'
          description: updated entity id
      summary: update an entity manually
      tags:
      - entity
  /entity/upload:
    post:
      operationId: entity_upload
      parameters:
      - in: query
        name: dataset
        required: true
        schema:
          type: string
      - in: query
        name: table_name
        required: true
        schema:
          type: string
      - in: query
        name: file_type
        required: true
        schema:
          $ref: '#/components/schemas/FileType'
      - in: query
        name: clean
        required: false
        schema:
          type: boolean
      - in: query
        name: ignore_columns
        required: false
        schema:
          items:
            type: string
          type:
          - array
          - 'null'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUpload'
        description: CSV, JSON, or XLSX file to process
        required: true
      responses:
        '200':
          description: Entities added successfully from CSV, JSON, or XLSX. Headers are required for CSV & XLSX files.
      summary: Add multiple entities to a dataset from a CSV file
      tags:
      - entity
  /entity/upload_parquet:
    post:
      operationId: entity_upload_parquet
      parameters:
      - in: query
        name: dataset
        required: true
        schema:
          type: string
      - in: query
        name: table_name
        required: true
        schema:
          type: string
      - in: query
        name: start_embedding
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUpload'
        description: Parquet file to process
        required: true
      responses:
        '200':
          description: Entities added successfully from Parquet file. Performs fast batch insert with original row index tracking.
      summary: Add multiple entities to a dataset from a Parquet file with fast batch insert
      tags:
      - entity
  /entity/verify:
    post:
      operationId: entity_verify
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyParams'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LLMKnowledgeGraph'
          description: verified knowledge graph
      summary: verify a kg against the dataset
      tags:
      - entity
  /entity/view:
    get:
      operationId: entity_view
      parameters:
      - in: query
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/EntityId'
      - in: query
        name: resolve_id
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityViewResponse'
          description: Entity view with properties, sources, relationships, connected entities, and similar entities
      tags:
      - entity
components:
  schemas:
    UserId:
      format: uuid
      type: string
    Source:
      properties:
        created_at:
          format: date-time
          type: string
        id:
          $ref: '#/components/schemas/SourceId'
        is_summary:
          type: boolean
        link:
          allOf:
          - $ref: '#/components/schemas/SourceLink'
        location:
          allOf:
          - $ref: '#/components/schemas/SourceLocation'
        scraper_id:
          allOf:
          - $ref: '#/components/schemas/ScraperId'
        user_specified:
          type: boolean
      required:
      - id
      - user_specified
      - is_summary
      - created_at
      type: object
    ManualSource:
      oneOf:
      - enum:
        - None
        type: string
      - properties:
          Web:
            type: string
        required:
        - Web
        type: object
      - properties:
          DocumentPage:
            description: ''
            items:
              type: object
            maxItems: 2
            minItems: 2
            type: array
        required:
        - DocumentPage
        type: object
      - properties:
          SecFiling:
            description: ''
            items:
              type: object
            maxItems: 3
            minItems: 3
            type: array
        required:
        - SecFiling
        type: object
    DeriveAllEntityParams:
      properties:
        dataset:
          type: string
        derived_property:
          type: string
        instructions:
          type: string
        model:
          type:
          - string
          - 'null'
        node_id:
          allOf:
          - $ref: '#/components/schemas/WorkflowSessionNodeId'
        table_name:
          type: string
      required:
      - dataset
      - table_name
      - derived_property
      - instructions
      type: object
    KgRelationship:
      properties:
        created_at:
          format: date-time
          type: string
        dataset_id:
          $ref: '#/components/schemas/DatasetId'
        from_id:
          $ref: '#/components/schemas/EntityId'
        id:
          $ref: '#/components/schemas/RelationshipId'
        label:
          type: string
        properties:
          additionalProperties:
            $ref: '#/components/schemas/ComplexPropValue'
          type: object
        to_id:
          $ref: '#/components/schemas/EntityId'
        updated_at:
          format: date-time
          type: string
      required:
      - id
      - from_id
      - to_id
      - label
      - properties
      - created_at
      - updated_at
      - dataset_id
      title: Relationship
      type: object
    SummarizeEntityParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        entity_id:
          $ref: '#/components/schemas/EntityId'
        extra_instructions:
          description: A list of instructions for each property to guide the summarization process
          items:
            type: string
          type:
          - array
          - 'null'
        properties:
          items:
            type: string
          type: array
      required:
      - dataset
      - entity_id
      - properties
      type: object
    PartialDate:
      oneOf:
      - properties:
          day:
            type:
            - integer
            - 'null'
          month:
            type:
            - integer
            - 'null'
          original_string:
            type: string
          year:
            type: integer
        required:
        - year
        - original_string
        title: PartialDateObject
        type: object
      - description: 'Date string in formats: ''YYYY'', ''YYYY-MM'', ''YYYY-MM-DD'', ''DD-MM-YYYY'', ''MM-DD-YYYY'', ''Jan 3, 2023'', ''3 Jan 2023'', ''2023 Apr 3'', etc.'
        title: PartialDateString
        type: string
      title: PartialDateProperty
    SourceEntity:
      properties:
        created_at:
          format: date-time
          type: string
        id:
          $ref: '#/components/schemas/SourceEntityId'
        job_id:
          allOf:
          - $ref: '#/components/schemas/JobId'
        kg_entity_id:
          allOf:
          - $ref: '#/components/schemas/EntityId'
        label:
          type: string
        llm_id:
          format: int32
          type: integer
        properties:
          additionalProperties:
            $ref: '#/components/schemas/ComplexPropValue'
          type: object
        source_id:
          $ref: '#/components/schemas/SourceId'
      required:
      - id
      - label
      - llm_id
      - created_at
      - properties
      - source_id
      type: object
    SourceId:
      format: uuid
      type: string
    MergeParams:
      additionalProperties: false
      properties:
        debug:
          type: boolean
        entity_1_id:
          $ref: '#/components/schemas/EntityId'
        entity_2_id:
          $ref: '#/components/schemas/EntityId'
      required:
      - entity_1_id
      - entity_2_id
      type: object
    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
    GetLocalSubgraphResponse:
      properties:
        neighbors:
          items:
            $ref: '#/components/schemas/KgEntity'
          type: array
        relationships:
          items:
            $ref: '#/components/schemas/KgRelationship'
          type: array
      required:
      - neighbors
      - relationships
      type: object
    EntityMatch:
      properties:
        baseline_cardinality:
          format: int64
          minimum: 0
          type: integer
        cardinality_override:
          allOf:
          - $ref: '#/components/schemas/CardinalityOverride'
        entity_a:
          $ref: '#/components/schemas/KgEntity'
        entity_b:
          $ref: '#/components/schemas/KgEntity'
        matched_properties:
          items:
            $ref: '#/components/schemas/PropertyMatch'
          type: array
        p_match:
          format: double
          type: number
        p_match_threshold:
          format: double
          type: number
      required:
      - baseline_cardinality
      - p_match
      - p_match_threshold
      - matched_properties
      - entity_a
      - entity_b
      type: object
    JobStatus:
      enum:
      - Queued
      - Running
      - Completed
      - Failed
      type: string
    LLMRelationship:
      additionalProperties: false
      properties:
        properties:
          additionalProperties:
            $ref: '#/components/schemas/BasicPropValue'
          type: object
        source:
          minimum: 0
          type: integer
        target:
          minimum: 0
          type: integer
        type:
          type: string
      required:
      - type
      - source
      - target
      type: object
    ScraperId:
      format: uuid
      type: string
    LLMEntity:
      additionalProperties: false
      properties:
        id:
          minimum: 0
          type: integer
        properties:
          additionalProperties:
            $ref: '#/components/schemas/BasicPropValue'
          type: object
        type:
          type: string
      required:
      - id
      - type
      - properties
      type: object
    FileUpload:
      properties:
        content:
          format: binary
          type: string
      required:
      - content
      type: object
    SourceEntityId:
      format: uuid
      type: string
    ComplexPropValue:
      oneOf:
      - type: string
      - format: int64
        type: integer
      - type: boolean
      - format: double
        type: number
      - $ref: '#/components/schemas/PartialDate'
      - $ref: '#/components/schemas/Url'
      - $ref: '#/components/schemas/Money'
      - $ref: '#/components/schemas/LLMImage'
      - $ref: '#/components/schemas/PersonName'
      - $ref: '#/components/schemas/Address'
    SourceLink:
      oneOf:
      - properties:
          Web:
            properties:
              url:
                type: string
            required:
            - url
            type: object
        required:
        - Web
        type: object
      - properties:
          Document:
            properties:
              name:
                type: string
            required:
            - name
            type: object
        required:
        - Document
        type: object
      - properties:
          SecFiling:
            properties:
              accession_number:
                type: string
              cik_number:
                type: string
            required:
            - accession_number
            - cik_number
            type: object
        required:
        - SecFiling
        type: object
    Url:
      oneOf:
      - description: Url string
        title: UrlString
        type: string
      - properties:
          original_string:
            type: string
          url:
            type: string
        required:
        - url
        - original_string
        title: UrlObject
        type: object
      title: UrlProperty
    DatasetId:
      format: uuid
      type: string
    LLMImage:
      properties:
        flag_number:
          minimum: 0
          type:
          - integer
          - 'null'
        image:
          format: binary
          type:
          - string
          - 'null'
      type: object
    EntityViewResponse:
      properties:
        connected_entities:
          items:
            $ref: '#/components/schemas/KgEntity'
          type: array
        entity:
          $ref: '#/components/schemas/KgEntity'
        last_updated:
          type: string
        relationships:
          items:
            $ref: '#/components/schemas/KgRelationship'
          type: array
        similar_entities:
          items:
            $ref: '#/components/schemas/KgEntity'
          type: array
        sources:
          items:
            $ref: '#/components/schemas/Source'
          type: array
      required:
      - entity
      - sources
      - relationships
      - connected_entities
      - similar_entities
      - last_updated
      type: object
    DeriveEntityParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        derived_property:
          type: string
        entity_id:
          $ref: '#/components/schemas/EntityId'
        instructions:
          type: string
        model:
          type:
          - string
          - 'null'
        node_id:
          allOf:
          - $ref: '#/components/schemas/WorkflowSessionNodeId'
      required:
      - dataset
      - entity_id
      - derived_property
      - instructions
      type: object
    MergeResponse:
      properties:
        match_object:
          allOf:
          - $ref: '#/components/schemas/EntityMatch'
        merged_entity_id:
          allOf:
          - $ref: '#/components/schemas/EntityId'
      type: object
    DeleteParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        entity_id:
          $ref: '#/components/schemas/EntityId'
      required:
      - dataset
      - entity_id
      type: object
    DeleteRelationshipParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        relationship_id:
          $ref: '#/components/schemas/RelationshipId'
      required:
      - dataset
      - relationship_id
      type: object
    AddBatchParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        entity_graphs:
          items:
            $ref: '#/components/schemas/LLMKnowledgeGraph'
          type: array
        skip_malformed_entities:
          type: boolean
        source:
          $ref: '#/components/schemas/ManualSource'
      required:
      - dataset
      - entity_graphs
      type: object
    GetSourceEntitiesResponse:
      properties:
        source_entities:
          items:
            items:
              allOf:
              - $ref: '#/components/schemas/SourceEntity'
              - $ref: '#/components/schemas/Source'
            type: array
          type: array
      required:
      - source_entities
      type: object
    AddParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        entity_graph:
          $ref: '#/components/schemas/LLMKnowledgeGraph'
        source:
          $ref: '#/components/schemas/ManualSource'
      required:
      - dataset
      - entity_graph
      type: object
    RelationshipId:
      format: uuid
      type: string
    PropertyMatch:
      properties:
        match_prob:
          format: double
          type: number
        match_transfer_prob:
          format: double
          type: number
        name:
          type: string
        property_cardinality:
          format: int64
          minimum: 0
          type: integer
        unique:
          type: boolean
      required:
      - name
      - match_prob
      - property_cardinality
      - match_transfer_prob
      - unique
      type: object
    PersonName:
      properties:
        name:
          type: string
      required:
      - name
      type: object
    UpdateParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        entity_id:
          $ref: '#/components/schemas/EntityId'
        properties:
          additionalProperties:
            $ref: '#/components/schemas/BasicPropValue'
          type: object
        source:
          $ref: '#/components/schemas/ManualSource'
      required:
      - dataset
      - entity_id
      - properties
      type: object
    VerifyParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        entity_graph:
          $ref: '#/components/schemas/LLMKnowledgeGraph'
        fix:
          description: Whether to apply fixes to the dataset
          type: boolean
      required:
      - dataset
      - entity_graph
      type: object
    MembershipId:
      format: uuid
      type: string
    SearchEntityParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        query:
          type: string
        table_name:
          type: string
      required:
      - dataset
      - table_name
      - query
      type: object
    Job:
      properties:
        created_at:
          format: date-time
          type: string
        dataset_id:
          allOf:
          - $ref: '#/components/schemas/DatasetId'
        exploration_run_id:
          allOf:
          - $ref: '#/components/schemas/ExplorationRunId'
        id:
          $ref: '#/components/schemas/JobId'
        job_type:
          $ref: '#/components/schemas/JobType'
        max_errors:
          format: int32
          type:
          - integer
          - 'null'
        max_execution_time_secs:
          format: int32
          type:
          - integer
          - 'null'
        max_steps_without_save:
          format: int32
          type: integer
        max_total_steps:
          format: int32
          type:
          - integer
          - 'null'
        membership_id:
          $ref: '#/components/schemas/MembershipId'
        message:
          description: A message about the status of the job at completion
          type:
          - string
          - 'null'
        node_id:
          allOf:
          - $ref: '#/components/schemas/WorkflowSessionNodeId'
        parameters:
          description: Proto for JobInput
          format: binary
          type:
          - string
          - 'null'
        reason:
          description: A reason for the job's existence
          type:
          - string
          - 'null'
        run_started_time:
          description: What time did the job start running?
          format: date-time
          type:
          - string
          - 'null'
        run_time_milliseconds:
          format: int64
          type:
          - integer
          - 'null'
        seeded_kg_search_term:
          type:
          - string
          - 'null'
        status:
          $ref: '#/components/schemas/JobStatus'
        updated_at:
          format: date-time
          type: string
        use_proxy:
          type: boolean
        user_id:
          $ref: '#/components/schemas/UserId'
      required:
      - id
      - status
      - created_at
      - user_id
      - membership_id
      - job_type
      - max_steps_without_save
      - use_proxy
      - updated_at
      type: object
    JobType:
      enum:
      - Web
      - Pdf
      - Derive
      - Scrape
      - Match
      - ConnectorExplore
      - DatahubIngestion
      type: string
    BasicPropValue:
      oneOf:
      - type: string
      - format: int64
        type: integer
      - type: boolean
      - format: double
        type: number
    ExplorationRunId:
      format: uuid
      type: string
    EntityId:
      format: uuid
      type: string
    FileType:
      enum:
      - Text
      - PDF
      - SEC
      type: string
    AddRelationshipParams:
      additionalProperties: false
      properties:
        dataset:
          type: string
        from_id:
          $ref: '#/components/schemas/EntityId'
        properties:
          additionalProperties:
            $ref: '#/components/schemas/BasicPropValue'
          type: object
        relationship_type:
          type: string
        to_id:
          $ref: '#/components/schemas/EntityId'
      required:
      - dataset
      - from_id
      - to_id
      - relationship_type
      type: object
    Address:
      oneOf:
      - properties:
          components:
            additionalProperties:
              type: string
            type: object
          original_address:
            type: string
        required:
        - original_address
        - components
        title: AddressObject
        type: object
      - description: 'Address string in formats: ''123 Main St, Springfield, IL 62701, USA'', ''1600 Amphitheatre Parkway, Mountain View, California 94043'', ''1600 Pennsylvania Ave NW, Washington, DC 20500'', ''NYC, NY'', ''Oahu, Hawaii'''
        title: AddressString
        type: string
      title: AddressProperty
    SourceLocation:
      oneOf:
      - properties:
          Text:
            properties:
              byte_offset:
                minimum: 0
                type: integer
            required:
            - byte_offset
            type: objec

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/structify/refs/heads/main/openapi/structify-entity-api-openapi.yml