Structify match API

The match API from Structify — 2 operation(s) for match.

OpenAPI Specification

structify-match-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 match 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: match
paths:
  /match/create_jobs:
    post:
      description: 'This endpoint creates one job per entity in the source table. Each job will attempt to find

        a matching entity in the target table using LLM-based matching.'
      operationId: create_match_jobs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMatchJobsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateMatchJobsResponse'
          description: Successfully created match jobs
      security:
      - api_key: []
      - session_token: []
      summary: Create match jobs for all entities in a source table to match against a target table.
      tags:
      - match
  /match/list_results:
    get:
      description: 'Returns paginated match results showing which entities from the source table

        were matched to entities in target tables, along with the reasoning.'
      operationId: list_match_results
      parameters:
      - description: Dataset name
        in: query
        name: dataset
        required: true
        schema:
          type: string
      - description: Source table name to get matches for
        in: query
        name: source_table
        required: true
        schema:
          type: string
      - description: 'Number of results to return (default: 1000, max: 1000)'
        in: query
        name: limit
        required: false
        schema:
          minimum: 0
          type: integer
      - description: 'Offset for pagination (default: 0)'
        in: query
        name: offset
        required: false
        schema:
          minimum: 0
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/MatchResult'
                type: array
          description: List of match results for the source table
      security:
      - api_key: []
      summary: Get all match results for entities in a source table.
      tags:
      - match
components:
  schemas:
    CreateMatchJobsRequest:
      properties:
        conditioning:
          description: Optional conditioning prompt for the LLM matcher
          type: string
        dataset:
          description: Dataset name
          type: string
        node_id:
          allOf:
          - $ref: '#/components/schemas/WorkflowSessionNodeId'
          nullable: true
        source_table:
          description: Source table name (entities to match from)
          type: string
        target_table:
          description: Target table name (entities to match to)
          type: string
      required:
      - dataset
      - source_table
      - target_table
      - conditioning
      type: object
    JobId:
      format: uuid
      type: string
    CreateMatchJobsResponse:
      properties:
        count:
          description: Number of jobs created
          minimum: 0
          type: integer
        job_ids:
          description: IDs of the created match jobs
          items:
            $ref: '#/components/schemas/JobId'
          type: array
      required:
      - job_ids
      - count
      type: object
    EntityId:
      format: uuid
      type: string
    MatchResultId:
      format: uuid
      type: string
    MatchResult:
      properties:
        confidence_score:
          format: double
          nullable: true
          type: number
        created_at:
          format: date-time
          type: string
        id:
          $ref: '#/components/schemas/MatchResultId'
        job_id:
          $ref: '#/components/schemas/JobId'
        match_reason:
          type: string
        source_entity_id:
          $ref: '#/components/schemas/EntityId'
        source_entity_index:
          format: int32
          nullable: true
          type: integer
        target_entity_id:
          $ref: '#/components/schemas/EntityId'
        target_entity_index:
          format: int32
          nullable: true
          type: integer
      required:
      - id
      - job_id
      - source_entity_id
      - target_entity_id
      - match_reason
      - created_at
      type: object
    WorkflowSessionNodeId:
      format: uuid
      type: string
  securitySchemes:
    api_key:
      in: header
      name: api_key
      type: apiKey
    session_token:
      scheme: bearer
      type: http