# Quickstart

> Create an API key, make one web search request, and understand the response.

Canonical URL: https://s1.dev/docs/get-started/quickstart

<Steps>

<Step>

### Get an API key

Sign up at [app.s1.dev](https://app.s1.dev), then open **API Keys** and create a key. New accounts receive [100 free Search API credits](https://s1.dev/free-search-api?utm_source=docs&utm_medium=referral&utm_campaign=free_search_api) without a credit card or expiration date.

Keep the key server-side. For local development, put it in an environment variable:

```bash
export SEARCH1API_KEY="YOUR_API_KEY"
```

</Step>

<Step>

### Search the web

```bash
curl -X POST https://api.search1api.com/search \
  -H "Authorization: Bearer $SEARCH1API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "best open source vector databases"}'
```

</Step>

<Step>

### Read the response

```json
{
  "searchParameters": {
    "query": "best open source vector databases",
    "max_results": 5
  },
  "results": [
    {
      "title": "Qdrant - Vector Database",
      "link": "https://qdrant.tech/",
      "snippet": "Qdrant is an open source vector database...",
      "published_date": "2026-09-03",
      "content": ""
    }
  ]
}
```

Search returns up to five results by default. `snippet` is the search engine summary. `published_date` is the page's publication date in ISO 8601 and is omitted when the source does not expose one. `content` is populated when you ask Search1API to crawl a result.

</Step>

<Step>

### Decide what to build next

Your first request is complete. From here:

- If the model needs full page text, learn how to use `crawl_results` in [Improving search results](https://s1.dev/docs/guides/improving-search-results#read-the-results-not-just-the-snippets).
- If you are starting from a URL or need structured data, use [Choosing an endpoint](https://s1.dev/docs/guides/choosing-an-endpoint).
- Before production, review [Authentication](https://s1.dev/docs/essentials/authentication), [Credits and limits](https://s1.dev/docs/essentials/credits-and-limits), and [Error handling](https://s1.dev/docs/essentials/error-handling).

</Step>

</Steps>

## Other ways to connect

- [Official SDKs](https://s1.dev/docs/integrations/sdks): Use typed TypeScript or Python clients with retries, errors, and deepcrawl polling included.

- [Search API reference](https://s1.dev/docs/basic/search): Review every request field and response schema.

- [MCP server](https://s1.dev/docs/integrations/mcp): Connect an MCP-compatible AI client without writing API code.

- [CLI](https://s1.dev/docs/integrations/cli): Search and crawl from your terminal.