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

# Quickstart

> Make your first News API call in under five minutes.

This guide walks you through installing the SDK, making your first search
request, and understanding the response.

## Before you begin

Make sure you have the following:

* A News API key — contact your account manager or sign up at
  [newscatcherapi.com/news-api](https://www.newscatcherapi.com/news-api)
* Python 3.10 or later — for the Python SDK
* Node.js 16 or later — for the TypeScript SDK
* Java 8 or later — for the Java SDK

## Steps

<Steps>
  <Step title="Install the SDK">
    Install the client library for your preferred language:

    <CodeGroup>
      ```bash Python (pip) theme={null}
      pip install newscatcher
      ```

      ```bash Python (poetry) theme={null}
      poetry add newscatcher
      ```

      ```bash TypeScript theme={null}
      npm install newscatcher-sdk
      ```

      ```bash Java (Gradle) theme={null}
      dependencies {
          implementation 'com.newscatcherapi:newscatcher-sdk:latest.release'
      }
      ```

      ```bash Java (Maven) theme={null}
      <dependency>
          <groupId>com.newscatcherapi</groupId>
          <artifactId>newscatcher-sdk</artifactId>
          <version>LATEST</version>
      </dependency>
      ```
    </CodeGroup>
  </Step>

  <Step title="Make your first request">
    Search for articles about renewable energy using the `/search` endpoint:

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X POST "https://v3-api.newscatcherapi.com/api/search" \
        -H "x-api-token: YOUR_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{
          "q": "renewable energy",
          "lang": "en",
          "page_size": 1
        }'
      ```

      ```python Python theme={null}
      from newscatcher import NewscatcherApi

      client = NewscatcherApi(api_key="YOUR_API_KEY")

      response = client.search.post(
          q="renewable energy",
          lang="en",
          page_size=1,
      )

      print(response.articles[0].title)
      ```

      ```typescript TypeScript theme={null}
      import { NewscatcherApiClient } from "newscatcher-sdk";

      const client = new NewscatcherApiClient({ apiKey: "YOUR_API_KEY" });

      const response = await client.search.post({
        q: "renewable energy",
        lang: "en",
        pageSize: 1,
      });

      console.log(response.articles?.[0]?.title);
      ```

      ```java Java theme={null}
      import com.newscatcher.api.NewscatcherApiClient;
      import com.newscatcher.api.resources.search.requests.PostSearchRequest;

      NewscatcherApiClient client = NewscatcherApiClient.builder()
          .apiKey("YOUR_API_KEY")
          .build();

      var response = client.search().post(
          PostSearchRequest.builder()
              .q("renewable energy")
              .lang("en")
              .pageSize(1)
              .build()
      );

      System.out.println(response.getArticles().get(0).getTitle());
      ```
    </CodeGroup>

    <Note>
      Store your API key in an environment variable rather than hardcoding it.
      The examples below use `YOUR_API_KEY` as a placeholder.
    </Note>
  </Step>

  <Step title="Review the response">
    A successful request returns a JSON object with pagination metadata and an
    `articles` array:

    <Expandable title="example response">
      ```json theme={null}
      {
        "status": "ok",
        "total_hits": 10000,
        "page": 1,
        "total_pages": 10000,
        "page_size": 1,
        "articles": [
          {
            "title": "EU-Moldova High-Level Energy Dialogue: Renewed commitment to closer energy cooperation",
            "author": "",
            "authors": [],
            "journalists": [],
            "published_date": "2026-05-05 12:56:15",
            "published_date_precision": "full",
            "updated_date": "2026-05-05 12:00:00",
            "updated_date_precision": "full",
            "link": "https://energy.ec.europa.eu/news/eu-moldova-high-level-energy-dialogue-2026-05-05_en",
            "domain_url": "europa.eu",
            "full_domain_url": "energy.ec.europa.eu",
            "name_source": "European Union",
            "is_headline": false,
            "paid_content": false,
            "parent_url": "https://energy.ec.europa.eu/news",
            "country": "RO",
            "rights": "europa.eu",
            "rank": 40,
            "media": "https://energy.ec.europa.eu/sites/default/files/styles/...",
            "language": "en",
            "description": "The European Commission and the Republic of Moldova held today the 7th High-Level Energy Dialogue in Brussels...",
            "content": "The European Commission and the Republic of Moldova held today the 7th High-Level Energy Dialogue...",
            "word_count": 254,
            "is_opinion": false,
            "twitter_account": null,
            "all_links": ["https://www.linkedin.com/showcase/eu-energy/", "..."],
            "all_domain_links": ["youtube.com", "x.com", "linkedin.com", "..."],
            "id": "93b554adf9bf7feb5fc70be8209f8fc9",
            "score": 5.787511
          }
        ]
      }
      ```
    </Expandable>

    <Note>
      If `total_hits` returns exactly `10000`, your query matches more articles
      than the per-request cap. To learn how to retrieve the full result set, see
      [Retrieve large datasets](/news-api/how-to/retrieve-more-than-10k-articles)
      .
    </Note>
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="API reference" icon="book" href="/news-api/api-reference/overview">
    Explore all endpoints and request parameters
  </Card>

  <Card title="Query syntax" icon="magnifying-glass" href="/news-api/guides-and-concepts/advanced-querying">
    Build precise queries with Boolean operators and proximity search
  </Card>

  <Card title="Retrieve large datasets" icon="database" href="/news-api/how-to/retrieve-more-than-10k-articles">
    Retrieve result sets beyond the 10,000 article cap
  </Card>

  <Card title="NLP features" icon="brain" href="/news-api/guides-and-concepts/nlp-features">
    Sentiment, entities, themes, and summaries
  </Card>
</CardGroup>
