---
title: "Merkl Studio Developer Portal"
description: "Programmatic access to Merkl distributions: the public REST API, its OpenAPI specification, the Merkl MCP server, and the campaign configuration model behind Merkl Studio."
canonical: "https://studio.merkl.xyz/developers"
generated: "2026-09-18T14:21:21.717Z"
---

# Merkl Studio Developer Portal

Merkl Studio is a client of the public Merkl API. Everything you can configure and read here is reachable programmatically, so a team running many campaigns never has to drive the UI to keep its own systems current.

Studio is the place to launch a campaign by hand. When you want to launch, monitor or reconcile campaigns from your own stack instead, the surfaces below are what you build against.

## 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/campaigns**: list and filter campaigns, including the ones you created
- **GET /v4/campaigns/count**: campaign totals, for reconciliation
- **GET /v4/opportunities**: the pools, vaults and markets campaigns point at
- **GET /v4/rewards**: what each wallet has earned from a campaign, and 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

## Campaign configuration

Every Merkl campaign is a configuration: a campaign type that says what behaviour is rewarded, plus the structured inputs that type requires. Understanding that model is the prerequisite for creating campaigns programmatically, because the API takes the same configuration Studio builds.

Campaigns are created onchain against the Merkl distribution contracts. Studio encodes the configuration and submits the transaction; an integration does the same thing with its own signer.

- [How a Merkl campaign is built](/guides/getting-started/how-merkl-campaigns-are-configured): the configuration model, explained
- [Testing your campaign before going live](/guides/getting-started/test-campaigns)
- [Campaign templates](/templates): prebuilt configurations to start from
- [Merkl documentation](https://docs.merkl.xyz): campaign types and distribution mechanics

## Agent-readable content

Studio publishes its guides in machine-readable form. Start at /llms.txt: it states when to use Merkl Studio and indexes every published guide with its description.

- [llms.txt](/llms.txt): when to use Studio, plus the guide index
- [llms-full.txt](/llms-full.txt): every guide inlined as full text
- [sitemap.xml](/sitemap.xml)
- [Guides](/guides)

## Elsewhere in Merkl

- [Merkl App](https://app.merkl.xyz): live opportunities, with a markdown twin of every page
- [Developer documentation](https://developers.merkl.xyz)
- [GitHub](https://github.com/AngleProtocol): smart contracts and public repositories
- [Contact Merkl](/contact)

