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

# Solutions overview

> Request common types of data with Glasser parameters and Provider selection.

To get a company profile, you can send Glasser a domain. Glasser selects a suitable
Provider, builds its input, and runs the request. You can use this from a script or
integration without writing a separate request format for each Provider.

A **Solution** groups these data capabilities for a type of user. The first is
`gtm` (go-to-market), for sales and marketing research. A **Capability** is one
member of that Solution, such as `company_intelligence` or `people_search`.

## Why use a Solution?

Several Providers can supply the same type of data, but their Endpoint names and
input fields differ. Solutions put that selection and input mapping in Glasser.
For company enrichment, you send `domain` whether the selected Provider expects
`domain`, `website`, or `company_website`.

Use a Solution when its inputs cover your task. If you need a specific Endpoint,
its full input options, or its exact Price before execution, use
[search](/docs/api-reference/endpoints/search), [inspect](/docs/api-reference/endpoints/inspect),
and [run](/docs/api-reference/runs/create) to select and call it directly.

## Available capabilities

Each Capability has its own request path under `/v1/solutions/gtm/`.

| Capability | What you can request |
| - | - |
| [Web research](/docs/api-reference/solutions/gtm/web_research) | Web and news search, places, shopping results, and page content. |
| [Company intelligence](/docs/api-reference/solutions/gtm/company_intelligence) | Company profiles, technology, traffic, competitors, funding, and news. |
| [People search](/docs/api-reference/solutions/gtm/people_search) | Find people, enrich profiles, and look up business contact information. |
| [SEO research](/docs/api-reference/solutions/gtm/seo_research) | Keyword data, rankings, backlinks, and search competitors. |
| [Social research](/docs/api-reference/solutions/gtm/social_research) | Platform-specific profiles, posts, comments, and search results. |
| [Market data](/docs/api-reference/solutions/gtm/market_data) | US property records, value and rent estimates, listings, and stock quotes. |

The reference for each Capability lists its supported actions, Providers, and
required fields. Most use `action` to select what to do; Social research uses
`platform` and `mode`.

## Example: get a company profile

Set up your Key as described in the [API overview](/docs/api-reference/overview).
This request executes paid data retrieval:

```bash theme={null}
curl --request POST \
  --url https://api.glasser.ai/v1/solutions/gtm/company_intelligence \
  --header "Authorization: Bearer $GLASSER_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: company-profile-glasser-001" \
  --data '{"domain":"glasser.ai"}'
```

For this Capability, `domain` is the only required body field. Omitting `action`
uses `enrich`; omitting `provider` uses `auto`. `metadata` is optional and can be
left out. Keep the same `Idempotency-Key` when retrying this request; choose a new
value for a fresh lookup or a different request.

## How Provider selection works

With `provider: "auto"`, Glasser uses a defined preference order for the requested
action. It selects the first Provider whose Endpoint your Key can run and whose
inputs support the request. The order is not a comparison of live prices.

If that Provider returns a Provider error or times out, Glasser can try the next
eligible Provider. It can also continue if an Endpoint is unavailable before a
Run starts. An empty result stops the request; it does not trigger another lookup.

To choose a Provider, add a value such as `"provider": "apollo"` to the company
profile request. A named Provider does not fall back to another Provider. The
Provider must support the requested action and be permitted by your Key.

## Results and charges

The response is the same **Run** returned by a direct Endpoint call. Its `provider`,
`endpoint`, and `input` show what Glasser selected. `output` keeps the Provider's
own structure, so its fields can differ when the Provider changes.

Each Run follows its Endpoint's Price and charge rules. If automatic fallback
creates several Runs, each has its own charge. The response contains the last
Run; its `charge_usd` is that Run's charge, not a total for the whole request.
You can review all Runs in the [Runs list](/docs/api-reference/runs/list).

To group the Runs from this company lookup, you can pass an optional `task_id`
and then filter the Runs list by `task`. Optional `metadata` stores your own
key-value strings for tracking; it does not affect Provider selection or Price.


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