> For the complete documentation index, see [llms.txt](https://docs.nfh.global/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nfh.global/product-documentation/products/discovr/getting-started.md).

# Getting started

This guide shows a consumer application (consumer node) how to connect to an NFH fabric DISCOVR instance and run its first discover request.

This guide shows a consumer application (consumer node) how to connect to an NFH fabric DISCOVR instance and run its first discover request.

> Looking to **run** DISCOVR rather than call it? See [Deploying Your Own Discover](/product-documentation/products/discovr/deploying-your-own-discover.md).

## Prerequisites

Before you can call discover, you need:

| Item                 | Description                                                                                             |
| -------------------- | ------------------------------------------------------------------------------------------------------- |
| **DISCOVR base URL** | The hostname of the DISCOVR instance you are integrating with (e.g. `https://discovery.yourdomain.com`) |
| **`bapId`**          | Your consumer (consumer node) identifier, as registered on the network                                  |
| **`bapUri`**         | Your publicly reachable callback URL — DISCOVR delivers `on_discover` results here                      |
| **Signing key**      | An Ed25519 key pair registered against your `bapId` for Beckn HTTP Signature authentication             |
| **`networkId`**      | The identifier of the network you want to search within                                                 |

## Step 1 — Prepare your callback endpoint

Discovery is asynchronous: DISCOVR acknowledges your request immediately, then delivers results to your `bapUri` via `POST /on_discover`. Your application must expose an endpoint that:

* Accepts `POST /on_discover` with the result payload (see [Usage](/product-documentation/products/discovr/usage.md))
* Correlates the response to your request using `messageId` / `transactionId`
* Returns an `ACK`

## Step 2 — Send a discover request

Send your search intent to `POST /discover` on the DISCOVR base URL, signed with your Beckn HTTP Signature.

```bash
curl -X POST "https://discovery.yourdomain.com/discover" \
  -H "Content-Type: application/json" \
  -H "Authorization: <Beckn HTTP Signature>" \
  -d '{
    "context": {
      "version": "2.0.0",
      "action": "discover",
      "messageId": "55555555-5555-5555-5555-555555555555",
      "transactionId": "66666666-6666-6666-6666-666666666666",
      "timestamp": "2026-03-26T11:00:00Z",
      "bapId": "bap.myapp.in",
      "bapUri": "https://bap.myapp.in",
      "networkId": "retail-grocery"
    },
    "message": {
      "intent": { "textSearch": "Coffee" }
    }
  }'
```

DISCOVR responds synchronously with an `ACK`:

```json
{ "message": { "status": "ACK", "messageId": "55555555-5555-5555-5555-555555555555" } }
```

## Step 3 — Receive results

Shortly after the `ACK`, DISCOVR delivers matching catalogues, resources, and offers to your `bapUri` as an `on_discover` callback. See [Usage](/product-documentation/products/discovr/usage.md) for the response shape and [Examples](/product-documentation/products/discovr/examples.md) for more search modes.

## Postman Collection

A Postman collection and environment files are available in the NFH fabric Discovery Service repository (`api-collection/`) to help you try requests against local, dev, and production instances.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.nfh.global/product-documentation/products/discovr/getting-started.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
