> For the complete documentation index, see [llms.txt](https://titan-exchange.gitbook.io/titan/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://titan-exchange.gitbook.io/titan/developer-doc/swap-api/reference/gateway/gateway-info.md).

# 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
