Extract & structure

Guaranteed structure

Any messy input — text, HTML, an email — plus YOUR JSON schema → output that conforms to it. Retries and validation handled.

POST /v1/structure$0.06/call · 6 credits, charged only on success

Send this

{
  "input": "Hey — new order from Dana Reyes, dana@brightco.io. 3 large planters, ship to 44 Vine St Portland OR by the 20th.",
  "schema": {
    "type": "object",
    "required": [
      "customer",
      "items"
    ],
    "properties": {
      "customer": {
        "type": "object"
      },
      "items": {
        "type": "array"
      },
      "shipTo": {
        "type": "string"
      },
      "deadline": {
        "type": "string"
      }
    }
  }
}

Every response carries usage — the credits burned and your remaining balance. A failed call never burns credits.

Try it live against your own key in the interactive reference; every account gets 500 free credits a month, no card.

Get this back

{
  "data": {
    "customer": {
      "name": "Dana Reyes",
      "email": "dana@brightco.io"
    },
    "items": [
      {
        "product": "large planter",
        "quantity": 3
      }
    ],
    "shipTo": "44 Vine St, Portland OR",
    "deadline": "2026-07-20"
  },
  "valid": true,
  "notes": [],
  "usage": {
    "credits": 6,
    "balanceRemaining": 371
  }
}

Four ways in. Same $0.06/call.

curl
curl https://api.kynth.studio/v1/structure \
  -H "Authorization: Bearer ksk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"input":"Hey — new order from Dana Reyes, dana@brightco.io. 3 large planters, ship to 44 Vine St Portland OR by the 20th.","schema":{"type":"object","required":["customer","items"],"properties":{"customer":{"type":"object"},"items":{"type":"array"},"shipTo":{"type":"string"},"deadline":{"type":"string"}}}}'
TypeScript
import { KynthCore } from "@kynth/api";

const kynth = new KynthCore({ apiKey: process.env.KYNTH_API_KEY! });
const result = await kynth.structure({
  "input": "Hey — new order from Dana Reyes, dana@brightco.io. 3 large planters, ship to 44 Vine St Portland OR by the 20th.",
  "schema": {
    "type": "object",
    "required": [
      "customer",
      "items"
    ],
    "properties": {
      "customer": {
        "type": "object"
      },
      "items": {
        "type": "array"
      },
      "shipTo": {
        "type": "string"
      },
      "deadline": {
        "type": "string"
      }
    }
  }
});
Python
from kynth import Kynth

client = Kynth(api_key=os.environ["KYNTH_API_KEY"])
result = client.structure(
    input="Hey — new order from Dana Reyes, dana@brightco.io. 3 large planters, ship to 44 Vine St Portland OR by the 20th.",
    schema={
    "type": "object",
    "required": [
      "customer",
      "items"
    ],
    "properties": {
      "customer": {
        "type": "object"
      },
      "items": {
        "type": "array"
      },
      "shipTo": {
        "type": "string"
      },
      "deadline": {
        "type": "string"
      }
    }
  },
)
MCP
// One-time setup in your MCP client (Claude, Cursor, …):
{ "mcpServers": { "kynth-core": {
    "command": "npx", "args": ["@kynth/api-mcp"],
    "env": { "KYNTH_API_KEY": "ksk_live_…" } } } }

// Then the agent just calls the kynth_structure tool.

More from extract & structure