Title: Make your first Algorand API call
Source: https://nodely.io/docs/get-started/

# Make your first Algorand API call

Nodely provides two Algorand APIs: **Algod** reads node state and submits transactions; **Indexer** searches indexed blockchain data. Begin on testnet. These read-only examples need `curl`, internet access and no API key.

<a id="1-read-node-status"></a>

## 1\. Read node status

```bash
curl --fail-with-body https://testnet-api.4160.nodely.dev/v2/status
```

A successful response is a JSON object containing `last-round`, the node’s current round. The value changes as the network produces blocks. This request does not create or submit a transaction.

<a id="2-read-indexer-data"></a>

## 2\. Read indexer data

```bash
curl --fail-with-body 'https://testnet-idx.4160.nodely.dev/v2/transactions?limit=1'
```

The response contains a `transactions` array and `current-round`. An empty array is valid. For larger result sets, use the returned pagination token as described in the [Indexer specification](https://nodely.io/swagger/api/4160/indexer.oas3.yml).

<a id="3-choose-the-right-network-and-access-plan"></a>

## 3\. Choose the right network and access plan

-   Use the [endpoint matrix](https://nodely.io/docs/free/endpoints/) to select mainnet, testnet or another supported AVM chain.
-   **Free** endpoints work without tokens, subject to the [usage policy](https://nodely.io/docs/free/policy/).
-   **Boost** uses public `nodely.dev` hosts with paid authentication.
-   **Unlimited and Enterprise** use the commercial endpoints in the [Unlimited guide](https://nodely.io/docs/unlimited/start/).
-   Compare current prices and included services on [Pricing](https://nodely.io/pricing).

When using an Algorand SDK, configure the base host without appending `/v2`. The SDK constructs operation paths. See the [JavaScript and Python examples](https://nodely.io/docs/free/start/).

<a id="4-authenticate-when-using-a-paid-plan"></a>

## 4\. Authenticate when using a paid plan

Keep tokens in your backend environment. For example, with a token from the Nodely portal:

```bash
curl --fail-with-body \
  -H "X-API-Key: $NODELY_TOKEN" \
  https://mainnet-api.4160.nodely.io/v2/status
```

Use the host appropriate to your plan. Browser applications should use verified sites instead of embedding a secret token. The [authentication guide](https://nodely.io/docs/access/authentication/) covers SDK headers, verified sites, and eligible IP whitelists.

<a id="5-handle-errors-and-reduce-repeated-work"></a>

## 5\. Handle errors and reduce repeated work

-   On **429**, reduce concurrency and use exponential backoff with jitter. Honor `Retry-After` when supplied.
-   On a **403 quota response**, inspect the response body and current quota. Retrying continuously will not restore a used daily allowance.
-   Cache immutable block and transaction data; avoid requesting identical history repeatedly.
-   Limit pagination concurrency and request only the new data your application needs.

Read the [current limits and quota reset rules](https://nodely.io/docs/access/limits/) and [free-tier usage policy](https://nodely.io/docs/free/policy/) before increasing traffic.

<a id="next-steps"></a>

## Next steps

-   [Algod OpenAPI YAML](https://nodely.io/swagger/api/4160/algod.oas3.yml) and [Indexer OpenAPI YAML](https://nodely.io/swagger/api/4160/indexer.oas3.yml)
-   [Query state at a past round](https://nodely.io/docs/access/time-travel/)
-   [Agent-readable documentation and local search](https://nodely.io/agents/)
-   [x402 discovery](https://nodely.io/docs/x402/discovery/) for Nodely’s separate pay-per-call services
