---
title: "Search for companies using natural language queries with Extruct AI. POST variant accepts filters as a JSON object. Use when exclude.domains list is too large for a GET URL."
method: POST
path: "/extruct-ai/v1/companies/search"
tags: ["Extruct AI"]
---

# Search for companies using natural language queries with Extruct AI. POST variant accepts filters as a JSON object. Use when exclude.domains list is too large for a GET URL.

`POST /extruct-ai/v1/companies/search`

## Request

- Base URL: `https://api.orthogonal.com/mpp`
- URL: `https://api.orthogonal.com/mpp/extruct-ai/v1/companies/search`
- Auth: none declared
- TypeScript: <https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/docs/extruct-ai/v1/companies/search/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object
  - `q` string, required: Search query
  - `filters` object: Structured filters object with include/exclude keys for size, country, city, domains, and founded_year_range
  - `pagination` object: Offset/limit pagination object

## Response `200`

Successful response

## Other responses

- `402`: Payment Required (x402 / MPP / np)

## Changes

- **2026-11-08** `857e915717f4`: 1 breaking
  - added required request body
- **2026-09-19** `1d73fba7f0d8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/changes/extruct-ai/v1/companies/search/post.md)

---

[API](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace.md) - [All operations](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/llms.txt) - [OpenAPI document](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/revisions/f3e9572f3f12?raw)
