# Info / Venues / Providers

**Three lightweight endpoints for reading server configuration and discovering available venues and providers.** All are simple GET requests you can issue at any time.

**All responses are MessagePack-encoded.** Set `Accept: application/vnd.msgpack` in your request headers.

**Authentication** — `Authorization: Bearer <token>` header or `?auth=<token>` query param. See [Connection & Negotiation](/titan/developer-doc/swap-api/reference/direct/connection.md#authentication) for JWT details.

***

## Info

```
GET /api/v1/info
```

**Returns server settings, protocol version, and configurable parameter bounds.** The REST equivalent of [GetInfo](/titan/developer-doc/swap-api/reference/direct/get-info.md). Call it to read the defaults and limits you'll need when configuring swap requests.

{% hint style="info" %}
For full `ServerInfo` type definitions (including `VersionInfo`, `ServerSettings`, `BoundedValueWithDefault`, and all sub-types), see the [GetInfo](/titan/developer-doc/swap-api/reference/direct/get-info.md) reference page.
{% endhint %}

### Example

```typescript
import { Decoder } from '@msgpack/msgpack';

// useBigInt64 required — 64-bit integer fields (amounts, timestamps)
const decoder = new Decoder({ useBigInt64: true });

// Fetch server info from the Gateway REST endpoint
const res = await fetch(
  `${process.env.TITAN_ENDPOINT}/api/v1/info`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.TITAN_API_KEY}`,
      'Accept': 'application/vnd.msgpack',
    },
  }
);

// Decode the MessagePack response
const info = decoder.decode(new Uint8Array(await res.arrayBuffer())) as any;

// Protocol version — major changes are backwards-incompatible
console.log('Protocol version:', info.protocolVersion);

// Quote stream settings — use these bounds when configuring requests
console.log('Default update interval:', info.settings.quoteUpdate.intervalMs.default, 'ms');
console.log('Concurrent streams allowed:', info.settings.connection.concurrentStreams);
```

***

## Venues

```
GET /api/v1/venues
```

**Returns the list of on-chain venues available for routing.** Each label is a valid value for the `dexes` and `excludeDexes` query parameters on [Quote Swap](/titan/developer-doc/swap-api/reference/gateway/gateway-quote-swap.md) and [Quote Price](/titan/developer-doc/swap-api/reference/gateway/gateway-quote-price.md).

{% hint style="info" %}
For full `VenueInfo` type definitions, see the [GetVenues / ListProviders](/titan/developer-doc/swap-api/reference/direct/venues-providers.md) reference page.
{% endhint %}

### Query parameters

* **`includeProgramIds`** — `"true"` to include the Solana program ID for each venue.

### Example

```typescript
// Fetch all available venues with their on-chain program IDs
const res = await fetch(
  `${process.env.TITAN_ENDPOINT}/api/v1/venues?includeProgramIds=true`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.TITAN_API_KEY}`,
      'Accept': 'application/vnd.msgpack',
    },
  }
);

// Decode and inspect the venue list
const venues = decoder.decode(new Uint8Array(await res.arrayBuffer())) as any;
console.log('Available venues:', venues.labels);
// e.g. ['Raydium', 'Whirlpool', 'Phoenix', 'Meteora', ...]
```

***

## Providers

```
GET /api/v1/providers
```

**Returns the list of active quote providers.** Each `id` is a valid value for the `providers` query parameter on [Quote Swap](/titan/developer-doc/swap-api/reference/gateway/gateway-quote-swap.md). Each provider independently competes to deliver the best-priced route.

{% hint style="info" %}
For full `ProviderInfo` and `ProviderKind` type definitions, see the [GetVenues / ListProviders](/titan/developer-doc/swap-api/reference/direct/venues-providers.md) reference page.
{% endhint %}

### Query parameters

* **`includeIcons`** — `"true"` to include 48×48 icon URIs for each provider.

### Example

```typescript
// Fetch all active quote providers
const res = await fetch(
  `${process.env.TITAN_ENDPOINT}/api/v1/providers`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.TITAN_API_KEY}`,
      'Accept': 'application/vnd.msgpack',
    },
  }
);

// Decode and iterate over the provider list
const providers = decoder.decode(new Uint8Array(await res.arrayBuffer())) as any[];
for (const p of providers) {
  console.log(`${p.name} (${p.id}) — ${p.kind}`);
  // e.g. "Titan (Titan) — DexAggregator"
}
```

***

## Error responses

* **`400`** — **Invalid parameters.** Malformed query parameter value.
* **`401`** — **Missing or invalid authentication token.** Check your JWT and its claims.

***

## Related pages

* [GetInfo](/titan/developer-doc/swap-api/reference/direct/get-info.md) — Direct (WebSocket) equivalent with full `ServerInfo` type definitions
* [GetVenues / ListProviders](/titan/developer-doc/swap-api/reference/direct/venues-providers.md) — Direct (WebSocket) equivalents with full `VenueInfo` and `ProviderInfo` type definitions
* [Configure Routing](/titan/developer-doc/swap-api/guides/configure-routing.md) — Use venue and provider IDs to filter and customize quote routing
* [Titan Direct vs Titan Gateway](/titan/developer-doc/swap-api/reference/direct-vs-gateway.md) — Choosing between WebSocket and REST


---

# 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://titan-exchange.gitbook.io/titan/developer-doc/swap-api/reference/gateway/gateway-info.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.
