---
title: "Merkl Developer Portal"
description: "Every programmatic surface of the Merkl App in one place: the public REST API, its OpenAPI specification, the Merkl MCP server, and the markdown views agents can read directly."
canonical: "https://app.merkl.xyz/developers"
generated: "2026-09-18T10:29:02.957Z"
---

# Merkl Developer Portal

Everything the Merkl App displays is readable programmatically. The app itself is a client of the public Merkl API, so an integration never has to scrape this site to stay current.

There are three surfaces, in decreasing order of structure: the REST API for raw JSON, the MCP server for agents that can speak Model Context Protocol, and a markdown twin of every public page for agents that only fetch URLs.

## REST API

The public Merkl API is served at https://api.merkl.xyz. Read endpoints under /v4 need no API key and no authentication. List endpoints paginate with ?page=N&items=M, both 1-indexed.

Errors are returned as RFC 9457 problem documents with the media type application/problem+json, carrying type, title, status, detail and instance, so a client can branch on the error without parsing prose.

- [API reference](https://api.merkl.xyz/docs): browsable, with request and response schemas
- [OpenAPI specification](/openapi.json): OpenAPI 3.0, served from this origin
- [Developer documentation](https://developers.merkl.xyz)

## Most useful endpoints

- **GET /v4/opportunities**: list opportunities, filterable by chainId, status, protocol, reward token, APR and TVL
- **GET /v4/opportunities/:id**: one opportunity, with its campaigns
- **GET /v4/campaigns**: individual reward campaigns
- **GET /v4/rewards**: what a wallet has earned, and campaign leaderboards
- **GET /v4/chains**: every supported chain
- **GET /v4/protocols**: every integrated protocol
- **GET /v4/tokens**: reward and underlying token metadata

## MCP server

Merkl runs a first-party Model Context Protocol server at https://mcp.merkl.xyz/mcp, over the Streamable HTTP transport. It is protected by OAuth 2.1: an unauthenticated request is answered with a WWW-Authenticate challenge pointing at the server's protected-resource metadata, so a standards-compliant MCP client discovers and completes the flow on its own.

The server exposes the sanctioned campaign, opportunity, rewards and analytics routes, plus onchain read helpers. Prefer it over raw HTTP when your client supports MCP: it carries tool descriptions and argument schemas the REST surface cannot.

- [MCP endpoint](https://mcp.merkl.xyz/mcp): Streamable HTTP, OAuth 2.1
- [Server descriptor](/.well-known/mcp): machine-readable transport and authorization metadata

## Markdown surface for agents

Every public page on the Merkl App has a markdown twin, reachable by suffixing the canonical URL with .md. The twins are rendered from the same loaders as the HTML pages, so they never disagree with what a person sees, and each one carries YAML frontmatter, pagination metadata and links to the twins of every entity it references.

Start at /llms.txt. It states when to use Merkl, names every entry point, and documents the pagination and cross-navigation conventions.

- [llms.txt](/llms.txt): navigation guide for agents
- [Opportunities index](/opportunities.md): recommended starting point
- [Chains index](/chains.md)
- [Protocols index](/protocols.md)
- [Tokens index](/tokens.md)
- [Programs index](/programs.md)
- [sitemap.xml](/sitemap.xml)

## Structured data

Every HTML page embeds schema.org JSON-LD in a script tag of type application/ld+json: FinancialProduct for an opportunity, Organization for a protocol, and breadcrumbs throughout. Use it when you are parsing HTML and the markdown twin is not enough.

## Product documentation

How campaigns, distribution types, forwarders and claiming actually work is documented outside this app. Read it before modelling Merkl data, because several fields only make sense against the distribution mechanics.

- [Merkl documentation](https://docs.merkl.xyz)
- [Merkl Studio](https://studio.merkl.xyz): create and manage distributions
- [GitHub](https://github.com/AngleProtocol): smart contracts and public repositories
- [Contact Merkl](/contact)

