---
title: "Structure an unstructured data source into the given dataset in an async fashion."
method: POST
path: "/structure/run_async"
tags: ["structure"]
---

# Structure an unstructured data source into the given dataset in an async fashion.

`POST /structure/run_async`

Returns a token that can be waited on until the request is finished.

## Request body

- RunRequestParams
  - `dataset` string, required
  - `instructions` string, nullable
  - `model` string, nullable
  - `node_id` string, uuid
  - `save_requirement` SaveRequirement[]
    - union — It's an OR statement across these.
      - RequiredRelationship
        - `relationship_name` string, required
      - RequiredEntity
        - `entity_id` string, uuid
        - `seeded_entity_id` integer, required — The integer id corresponding to an entity in the seeded entity graph (different from the global dataset entity id)
      - RequiredProperty
        - `property_names` string[], required — If there are multiple properties, it can match just one of them
        - `table_name` string, required — The table name of the entity to update
  - `seeded_entity` LLMKnowledgeGraph — Knowledge graph info structured to deserialize and display in the same format that the LLM outputs. Also the first representation of an LLM output in the pipeline from raw tool output to being merged into a DB
    - `entities` LLMEntity[], required
      - `id` integer, required
      - `properties` object, required
      - `type` string, required
    - `relationships` LLMRelationship[]
      - `properties` object
      - `source` integer, required
      - `target` integer, required
      - `type` string, required
  - `source` union, required — These are all the types that can be converted into a BasicInputType
    - object
      - `PDF` PDFIngestor, required — Ingest all pages of a PDF and process them independently.
        - `page` integer, nullable
        - `path` string, required
    - object
      - `Web` WebSearch, required
        - `banned_domains` string[]
        - `starting_searches` string[]
        - `starting_urls` string[]

## Response `200`

The job id.

## Changes

- **2026-01-21** `817198e84647` — 1 warning, 1 info
  - removed the request property `source/oneOf[subschema #1]/PDF/single_agent`
  - added the new optional request property `source/oneOf[subschema #1]/PDF/page`
- **2026-01-21** `d4cc893e9116` — 1 warning, 1 info
  - removed the request property `source/oneOf[subschema #1]/PDF/page`
  - added the new optional request property `source/oneOf[subschema #1]/PDF/single_agent`
- **2026-01-21** `45952f7cb8cb` — 1 warning, 1 info
  - removed the request property `source/oneOf[subschema #1]/PDF/single_agent`
  - added the new optional request property `source/oneOf[subschema #1]/PDF/page`
- **2026-01-15** `6fcd2a15c067` — 1 info
  - added the new optional request property `source/oneOf[subschema #1]/PDF/single_agent`
- **2026-01-14** `aa5d4f7da7b2` — 2 info
  - added the new optional request property `instructions`
  - added the new optional request property `model`

[Change history](https://skmtc.dev/structifyai/apis/structify/changes/structure/run_async/post.md)

---

[API](https://skmtc.dev/structifyai/apis/structify.md) · [All operations](https://skmtc.dev/structifyai/apis/structify/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/structifyai/structify/revisions/1364930b6980/schema)
