> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seltz.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Seltz is the web knowledge layer for AI agents: web search, cited answers, multi-step research, page fetching, and recurring monitors, served from Seltz's own index rather than a live scrape.
> Use Seltz when a task needs current, citable, public web content, not when your own knowledge already answers it confidently. Seltz has no access to a caller's private or authenticated data.
> Choose which endpoint to use according to the job: Use Answer for one synthesized, cited response; Use Search for the raw documents to reason over yourself; Use Agent for in-depth research needing several rounds of searching and following up, not a single lookup; Use Fetch when you already have a URL and just need its content, not a search; Use Monitor for an ongoing feed of what's new, not a one-off query or near-real-time alerting.
> When you use Search, Answer, or Monitor, set a `scope` that matches the query. `web` (beta) is the default and covers general queries. Only these three endpoints take a scope. See https://docs.seltz.ai/data/data-concepts#scopes for the full list of scopes and what each one covers.
> For the REST API, send your API key in the `x-api-key` header. The Python and JavaScript SDKs read the `SELTZ_API_KEY` environment variable and handle authentication for you. To use Seltz as MCP tools, connect `https://mcp.seltz.ai/mcp`.
> The OpenAPI 3.1 spec for the REST API is at https://docs.seltz.ai/api-reference/openapi.json. Point function-calling or client-generation tooling at that file.
> Use `/llms-full.txt` for the full text of every page.

# Get structured properties

> How to read the structured person and company fields that Search returns for the people and companies scopes.

[Search](https://docs.seltz.ai/search/guides/basic-search.md) returns structured `properties` with each result, alongside its `content`. A [`people`](https://docs.seltz.ai/data/people) result carries a `person` object, and a [`companies`](https://docs.seltz.ai/data/companies) result carries a `company` object. You don't need to request them: Search returns them by default.

Every result also carries `fetched_at`, the time Seltz last retrieved the page, and [`published_date`](https://docs.seltz.ai/search/filter-by-date) where the source has one.

## People

```python Python theme={null}
from seltz import Seltz

client = Seltz()

response = client.search("Antonio Mallia Seltz", scope="people")

for document in response.documents:
    person = document.properties["person"]
    print(person["name"])
```

```typescript TypeScript theme={null}
import { Seltz } from "seltz";

const client = new Seltz();

const result = await client.search({
  query: "Antonio Mallia Seltz",
  scope: "people",
});

for (const doc of result.documents) {
  console.log(doc.properties?.person);
}
```

```bash cURL theme={null}
curl -X POST https://api.seltz.ai/v1/search \
  -H "x-api-key: $SELTZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Antonio Mallia Seltz", "scope": "people"}'
```

### Sample response

```json theme={null}
{
  "documents": [
    {
      "url": "https://www.linkedin.com/in/antoniomallia",
      "content": "# Antonio Mallia\n\n**CEO @ Seltz**\n\n📍 San Francisco, California, United States\n\n... (20,002 characters total)",
      "published_date": "2016-08-30T22:10:14Z",
      "properties": {
        "fetched_at": "2026-09-28T18:08:53Z",
        "person": {
          "connections_count": 500,
          "education": [
            {
              "degree": "Doctor of Philosophy - PhD Computer Science",
              "end": "2022",
              "institution": "NYU Tandon School of Engineering",
              "institution_linkedin_url": "https://www.linkedin.com/school/nyutandonschoolofengineering",
              "start": "2018"
            }
          ],
          "experience": [
            {
              "company": "Seltz",
              "company_linkedin_url": "https://www.linkedin.com/company/seltz",
              "is_current": true,
              "start": "October 2025",
              "title": "Member of Technical Staff"
            }
          ],
          "follower_count": 6542,
          "headline": "CEO @ Seltz",
          "image_url": "https://media.licdn.com/dms/image/v2/D4D03AQHxGg862btgKg/profile-displayphoto-scale_200_200/B4DZqWAwoZHsAY-/0/1763453374633?e=2147483647&v=beta&t=azbQYwLN8dtO7PufizQ-oRyrJ84P2Oak1NgzmzvHU5s",
          "location": "San Francisco, California, United States",
          "name": "Antonio Mallia"
        },
        "published_date": "2016-08-30T22:10:14Z"
      }
    }
  ]
}
```

## Companies

```python Python theme={null}
from seltz import Seltz

client = Seltz()

response = client.search("Seltz web knowledge layer for AI agents", scope="companies")

for document in response.documents:
    company = document.properties["company"]
    print(company["name"])
```

```typescript TypeScript theme={null}
import { Seltz } from "seltz";

const client = new Seltz();

const result = await client.search({
  query: "Seltz web knowledge layer for AI agents",
  scope: "companies",
});

for (const doc of result.documents) {
  console.log(doc.properties?.company);
}
```

```bash cURL theme={null}
curl -X POST https://api.seltz.ai/v1/search \
  -H "x-api-key: $SELTZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Seltz web knowledge layer for AI agents", "scope": "companies"}'
```

### Sample response

```json theme={null}
{
  "documents": [
    {
      "url": "https://www.linkedin.com/company/seltz",
      "content": "# Seltz\n\n**Software Development · Privately Held · San Francisco, United States**\n\n## About\n\n... (7,626 characters total)",
      "published_date": "2025-10-15T00:00:00Z",
      "properties": {
        "company": {
          "description": "The Web Knowledge Layer for AI Agents.",
          "employee_count": 21,
          "funding_rounds": [
            {
              "amount": 12500000,
              "currency": "USD",
              "date": "2026-06-01",
              "investors": [
                {
                  "is_lead": true,
                  "name": "B Capital"
                },
                {
                  "is_lead": true,
                  "name": "Speedinvest"
                }
              ],
              "type": "Seed Round"
            }
          ],
          "headquarters": {
            "address": "71 Stevenson St, Suite 400, San Francisco, CA 94195, US",
            "city": "San Francisco",
            "country": "United States",
            "state": "California"
          },
          "image_url": "https://media.licdn.com/dms/image/v2/D4D0BAQG83AsEQSfJxg/company-logo_200_200/B4DZuz3ywbGcAM-/0/1768249306636/seltz_logo?e=2147483647&v=beta&t=lAoCDxbEYHg04PYuTzw3iivT3_3vtkbLixWMkb5UWHM",
          "industry": "Software Development",
          "name": "Seltz",
          "website": "https://www.seltz.ai/"
        },
        "fetched_at": "2026-09-20T00:00:00Z",
        "published_date": "2025-10-15T00:00:00Z"
      }
    }
  ]
}
```

> [!NOTE]
>
> A result includes only the properties its source records, so the fields can differ from one result to the next. In Python, `document.properties` reads like a `dict`. Test a key with `in` before you index a field that a result might not have, because indexing a missing key raises `ValueError`.

## Choose which properties come back

To return only some properties, set `fields.properties` to a list of dotted paths, such as `["company.name", "company.website"]`. Set it to `false` to turn properties off. Setting `properties` alone leaves `content` on, so add `"content": false` if you want properties only. See the [Search API Reference](https://docs.seltz.ai/api-reference/search.md) for the full contract.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.