Product

Sep 11, 2026

Introducing Selts Agent

Max V

Byron Landry

Ask big questions and get grounded, multi-step research responses using Selts Agent.

You can now hand Seltz an open-ended question and get back a grounded, cited answer that took real research to produce, without writing the research loop yourself. 

The new Seltz Agent API run a full plan → search → read → synthesize cycle on your behalf and returns a schema-valid, sourced result, typically within minutes.

Agent is available as a new set of endpoints alongside Search and Answer. Where Answer gives you a fast, grounded response to a single question, Agent takes on questions that need several rounds of searching and reading to answer well: the kind you'd normally break into steps and run yourself.

How it works

A run starts with one call: send a natural-language query, an optional effort level, and an optional JSON Schema describing the shape you want back.


from seltz import Seltz

client = Seltz()

response = client.agent.create(
    query="What are the top three AI infrastructure startups that raised "
          "Series B rounds in the last 90 days, and who led each round?",
    effort="high",
    output_schema={
        "type": "json_schema",
        "json_schema": {
            "name": "company_list",
            "schema": {
                "type": "object",
                "properties": {
                    "companies": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {"type": "string"},
                                "round": {"type": "string"},
                                "lead_investor": {"type": "string"},
                            },
                            "required": ["name", "round", "lead_investor"],
                            "additionalProperties": False,
                        },
                    },
                },
                "required": ["companies"],
                "additionalProperties": False,
            },
            "strict": True,
        },
    },
)

print(response.id, response.status)
# run_01J9XYZ... pending
from seltz import Seltz

client = Seltz()

response = client.agent.create(
    query="What are the top three AI infrastructure startups that raised "
          "Series B rounds in the last 90 days, and who led each round?",
    effort="high",
    output_schema={
        "type": "json_schema",
        "json_schema": {
            "name": "company_list",
            "schema": {
                "type": "object",
                "properties": {
                    "companies": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {"type": "string"},
                                "round": {"type": "string"},
                                "lead_investor": {"type": "string"},
                            },
                            "required": ["name", "round", "lead_investor"],
                            "additionalProperties": False,
                        },
                    },
                },
                "required": ["companies"],
                "additionalProperties": False,
            },
            "strict": True,
        },
    },
)

print(response.id, response.status)
# run_01J9XYZ... pending
from seltz import Seltz

client = Seltz()

response = client.agent.create(
    query="What are the top three AI infrastructure startups that raised "
          "Series B rounds in the last 90 days, and who led each round?",
    effort="high",
    output_schema={
        "type": "json_schema",
        "json_schema": {
            "name": "company_list",
            "schema": {
                "type": "object",
                "properties": {
                    "companies": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {"type": "string"},
                                "round": {"type": "string"},
                                "lead_investor": {"type": "string"},
                            },
                            "required": ["name", "round", "lead_investor"],
                            "additionalProperties": False,
                        },
                    },
                },
                "required": ["companies"],
                "additionalProperties": False,
            },
            "strict": True,
        },
    },
)

print(response.id, response.status)
# run_01J9XYZ... pending

You can check the run status and access the result as follows:

import json
run = client.agent.get(response.id)
print(run.status, run.stop_reason)
result = json.loads(run.output.structured)
print(result)
import json
run = client.agent.get(response.id)
print(run.status, run.stop_reason)
result = json.loads(run.output.structured)
print(result)
import json
run = client.agent.get(response.id)
print(run.status, run.stop_reason)
result = json.loads(run.output.structured)
print(result)

Every field in a structured result is traceable back to a source: grounding maps each field path to the citations that support it, and if a run can't find grounded support for a value, it returns null there rather than guessing. Here's an example result object:

{
  "id": "run_01J9XYZ...",
  "status": "completed",
  "stop_reason": "finished",
  "output": {
    "structured": {
      "companies": [
        {"name": "...", "round": "Series B", "lead_investor": "..."}
      ]
    },
    "sources": [
      {"id": 1, "url": "https://..."}
    ],
    "grounding": [
      {
        "field": "companies.0.lead_investor",
        "citations": [{"source_id": 1, "url": "https://..."}]
      }
    ]
  }
}
{
  "id": "run_01J9XYZ...",
  "status": "completed",
  "stop_reason": "finished",
  "output": {
    "structured": {
      "companies": [
        {"name": "...", "round": "Series B", "lead_investor": "..."}
      ]
    },
    "sources": [
      {"id": 1, "url": "https://..."}
    ],
    "grounding": [
      {
        "field": "companies.0.lead_investor",
        "citations": [{"source_id": 1, "url": "https://..."}]
      }
    ]
  }
}
{
  "id": "run_01J9XYZ...",
  "status": "completed",
  "stop_reason": "finished",
  "output": {
    "structured": {
      "companies": [
        {"name": "...", "round": "Series B", "lead_investor": "..."}
      ]
    },
    "sources": [
      {"id": 1, "url": "https://..."}
    ],
    "grounding": [
      {
        "field": "companies.0.lead_investor",
        "citations": [{"source_id": 1, "url": "https://..."}]
      }
    ]
  }
}

Skip output_schema and you get cited Markdown instead, with inline [n] references into the same sources list.

Use cases for Agent

  • Research questions that need synthesis, not just retrieval. "Who are our top three competitors doing X, and how do their approaches differ?" — questions that need several searches and some judgment to answer well.

  • Structured extraction at the end of a research task. Ask for a JSON Schema-shaped result and skip the step of parsing an answer out of prose.

  • Anything today's /v1/answer doesn't have time to fully work through. Agent is built for longer, deeper passes — Answer stays the right tool for a fast, single-pass response.

Try Seltz Agent

Seltz Agent is available now. Grab an API key at console.seltz.ai/api-keys and read the Agent quickstart and API reference to get started.

Ciao, The Seltz Team

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.

Fast, up-to-date web data, providing context-engineered web signals with sources for real-time AI reasoning.