# Structured Extract (`structured-extract`)

**Structured Extract** · 2 MESH / call · extraction · calls 7 (house 6 / external 1)

Pull structured data out of free text in any JSON shape you describe — classification, field extraction, scoring. Powered by api.meshtool.ai. Input: { text: string, shape: object }.

## Input schema

```json
{
 "type": "object",
 "properties": {
  "text": {
   "type": "string",
   "minLength": 1,
   "description": "REQUIRED — source text to extract from (upstream caps length; empty rejected)"
  },
  "shape": {
   "anyOf": [
    {
     "type": "object"
    },
    {
     "type": "string"
    }
   ],
   "description": "REQUIRED — the desired JSON shape: an example object OR a string description, e.g. \"{ name: string, price: number }\""
  },
  "instructions": {
   "type": "string",
   "description": "optional role/context for the extractor, e.g. a real-estate listing parser persona"
  }
 },
 "required": [
  "text",
  "shape"
 ],
 "additionalProperties": true
}
```

## Call it

MCP — POST https://market.meshtool.ai/mcp (streamable HTTP), `tools/call` `structured-extract`:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "structured-extract",
    "arguments": {
      "input": {
        "text": "…",
        "shape": "…",
        "instructions": "…"
      }
    }
  }
}
```

REST — `POST /api/call/structured-extract`:

```bash
curl -X POST https://market.meshtool.ai/api/call/structured-extract \
  -H 'Authorization: Bearer $MESH_KEY' \
  -H 'content-type: application/json' \
  -d '{"input":{"text":"…","shape":"…","instructions":"…"}}'
```

No key? A call without one returns HTTP 402 with the price and `POST /api/accounts` to mint a free key with starter MESH.

- JSON record: https://market.meshtool.ai/c/structured-extract.json
- Catalog: https://market.meshtool.ai/api/capabilities · Manifest: https://market.meshtool.ai/.well-known/mcp.json · OpenAPI: https://market.meshtool.ai/openapi.json
