# Features

Copilot Scraper provides powerful customization options to help you generate more accurate, contextual, and verifiable responses from Copilot. These features allow you to tailor how Copilot behaves, what type of responses it returns, and how much detail it extracts.

***

### **Mode**

Select which Copilot chat mode to use for the request.

Each mode influences how Copilot approaches and structures its response.

| Mode          | Description                                                                    |
| ------------- | ------------------------------------------------------------------------------ |
| **chat**      | Standard conversational mode. Best for general queries and quick answers.      |
| **reasoning** | Deep analytical mode. Best for complex questions requiring logical depth.      |
| **smart**     | Balanced mode combining speed and reasoning for most use cases.                |
| **study**     | Detailed explanatory mode. Best for educational and research-oriented prompts. |

**Mode format**

The mode value must be one of: `chat`, `reasoning`, `smart`, `study`.

**Example**

```json
{
  "prompt": "Explain the pros and cons of residential proxies",
  "engine": "copilot",
  "mode": "reasoning"
}
```

**Use Cases**

* Use `chat` for fast, conversational responses
* Use `reasoning` for in-depth analysis and multi-step logic
* Use `smart` for a balanced response across general tasks
* Use `study` for structured, educational breakdowns of a topic

***

### **Geolocation**

Control and influence Copilot's responses based on a target geographic region.

Geolocation parameters affect examples, perspectives, terminology, and localized insights within the generated answer.

Geolocation supports country-level and state / city-level targeting.

***

**Country**

Influence Copilot's responses by specifying a target country.

This can affect examples, perspectives, or localized insights within the answer.

**Country format**

The country value must be a 2-letter country code.

**Example**

```json
{
  "prompt": "Trending products in 2025",
  "engine": "copilot",
  "country": "ca"
}
```

**Use Cases**

* Localized content generation
* Region-specific trend insights
* Country-influenced context within Copilot answers

***

**State and City**

Refine geolocation further by targeting a specific state or state + city.

The `state_city` parameter allows you to influence responses with more granular regional context, such as local brands, stores, events, or regulations.

> **Important** The `country` parameter is required when using `state_city`.

**State / City format**

* State only
* State and city
* State + City must be separated by underscore

**Examples**

State only:

```json
{
  "prompt": "Trending products in 2025",
  "country": "us",
  "state_city": "california"
}
```

State and city:

```json
{
  "prompt": "Trending products in 2025",
  "country": "us",
  "state_city": "california_losangeles"
}
```

**Use Cases**

* Hyper-local trend analysis
* City-specific product or business insights
* Location-aware content and recommendations

{% hint style="info" %}
Using countries outside of the US and UK, as well as the `state_city` feature, requires a premium package.
{% endhint %}

***

### **Callback URL (`callback_url`)**

Send the LLM Scraper response directly to your own API endpoint.

When `callback_url` is provided, the request is acknowledged and the final LLM Scraper response is delivered to your endpoint via a POST request.

**Example**

```json
{
  "prompt": "Summarize the main benefits of residential proxies",
  "engine": "copilot",
  "callback_url": "https://user-api.com"
}
```

**Initial Response (202 Accepted)**

When `callback_url` is included, the API returns a confirmation response indicating that the request was received.

```json
{
  "message": "request received",
  "traceId": "a1b2c3d4-e5f6-7a8b-9c0d-e1f2a3b4c5d6",
  "response_url": "https://user-api.com"
}
```

**Final Response**

Once processing is completed, the full LLM Scraper response will be sent to the provided `callback_url`.

The response structure is identical to the standard LLM Scraper response returned in synchronous requests.

**Use Cases**

* Deliver results directly into backend workflows
* Separate request handling from response processing
* Trigger automation pipelines after completion

***

### Automated Throttling (`throttling`)

The service includes an automated throttling mechanism designed to dynamically manage requests and maintain a high success rate during heavy traffic or platform-side limitations.

By default, throttling is enabled.

For advanced use cases, customers may choose to disable throttling by setting the `throttling` parameter to `false`.

#### Parameter

* type: `boolean`
* Default: `true`

#### Example Request

```json
{  
    "prompt": "What are the best headphones in 2025?",  
    "throttling": true
}
```

***

### **Error Handling**

The Copilot Scraper includes standardized error responses.

**400 — Validation Errors**

Returned when:

* Prompt missing
* Invalid parameter
* Prompt > 4096 characters

Example:

```json
{
  "message": "Prompt exceeds 4096 characters. Please shorten your prompt.",
  "error": "Bad Request",
  "statusCode": 400
}
```

**401 — Credentials Error**

Returned when:

* Username or Password is Incorrect
* No Active Package for the Product

Example:

```json
{
  "message": "Request failed with status code 401"
}
```

**500 — Internal Errors**

Every error of a scraping error will return a 500 error code like so:

```json
{
  "message": "Copilot scraper could not complete the request. Please try again.",
  "error": "Internal Scraper Error",
  "statusCode": 500
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.netnut.io/netnut-documentation/netnut-scraper-apis/llm-scraper/copilot/features.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
