> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.paradex.trade/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.paradex.trade/_mcp/server.

# API Quick start

## Calling a public endpoint

To dive right in you can start by trying a call to one of Paradex's public endpoints:

# List available markets

GET

[https://api.testnet.paradex.trade/v1](https://api.testnet.paradex.trade/v1)    / markets

Get markets static data component

### Query parameters

market string Optional

Market Name - example: BTC-USD-PERP

### Request

GET [https://api.prod.paradex.trade/v1/markets](https://api.prod.paradex.trade/v1/markets)

```python
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('https://api.prod.paradex.trade/v1/markets', headers = headers)

print(r.json())

```

```curl
curl -X GET https://api.prod.paradex.trade/v1/markets \
-H 'Accept: application/json'

```

```javascript
const headers = {
  'Accept':'application/json'
};

fetch('https://api.prod.paradex.trade/v1/markets',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

```

```go
package main
import (
      "bytes"
      "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.prod.paradex.trade/v1/markets", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.prod.paradex.trade/v1/markets")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.prod.paradex.trade/v1/markets")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.prod.paradex.trade/v1/markets');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.prod.paradex.trade/v1/markets");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.prod.paradex.trade/v1/markets")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Response (200)

```json
{
  "results": [
    {
      "asset_kind": "PERP",
      "base_currency": "ETH",
      "clamp_rate": "0.05",
      "delta1_cross_margin_params": {
        "imf_base": "0.11",
        "imf_factor": "0",
        "imf_shift": "0",
        "mmf_factor": "0.51"
      },
      "expiry_at": 0,
      "fee_config": {
        "api_fee": {
          "maker_fee": {
            "fee": "0.0003",
            "fee_cap": "0.5",
            "fee_floor": "-0.5"
          },
          "taker_fee": {
            "fee": "0.0003",
            "fee_cap": "0.5",
            "fee_floor": "-0.5"
          }
        },
        "interactive_fee": {
          "maker_fee": {
            "fee": "0.0003",
            "fee_cap": "0.5",
            "fee_floor": "-0.5"
          },
          "taker_fee": {
            "fee": "0.0003",
            "fee_cap": "0.5",
            "fee_floor": "-0.5"
          }
        },
        "rpi_fee": {
          "maker_fee": {
            "fee": "0.0003",
            "fee_cap": "0.5",
            "fee_floor": "-0.5"
          },
          "taker_fee": {
            "fee": "0.0003",
            "fee_cap": "0.5",
            "fee_floor": "-0.5"
          }
        }
      },
      "funding_multiplier": 1,
      "funding_period_hours": 8,
      "interest_rate": "0.01",
      "iv_bands_width": "0.05",
      "market_kind": "cross",
      "max_funding_rate": "0.05",
      "max_funding_rate_change": "0.0005",
      "max_open_orders": 100,
      "max_order_size": "100",
      "max_slippage": "0.05",
      "max_tob_spread": "0.2",
      "min_notional": "3",
      "open_at": 0,
      "option_cross_margin_params": {
        "imf": {
          "long_itm": "0.2",
          "premium_multiplier": "1.2",
          "short_itm": "0.4",
          "short_otm": "0.25",
          "short_put_cap": "0.5"
        },
        "mmf": {
          "long_itm": "0.2",
          "premium_multiplier": "1.2",
          "short_itm": "0.4",
          "short_otm": "0.25",
          "short_put_cap": "0.5"
        }
      },
      "option_spread_margin_params": {
        "unpaired_scale_im": "1.0",
        "unpaired_scale_mm": "1.0"
      },
      "option_type": "PUT",
      "oracle_ewma_factor": "0.2",
      "order_size_increment": "0.001",
      "position_limit": "500",
      "price_bands_width": "0.05",
      "price_feed_id": "GVXRSBjFk6e6J3NbVPXohDJetcTjaeeuykUpbQF8UoMU",
      "price_tick_size": "0.01",
      "quote_currency": "USD",
      "settlement_currency": "USDC",
      "strike_price": "66500",
      "symbol": "ETH-USD-PERP",
      "tags": [
        "MEME",
        "DEFI"
      ],
      "trading_mode": "STANDARD"
    }
  ]
}
```

## Interacting with private endpoint

To interact with private Paradex endpoints you need to onboard and generate a [JSON Web Token (JWT)](https://jwt.io/introduction) before making API requests. JWTs are a secure way to transmit information between parties. Please refer to the **Authentication** chapter and [onboarding and authentication code samples](https://github.com/tradeparadex/code-samples).