# Developers

Public API base URL:

```
https://indexer.blackpearlmarket.com
```

All paths below are relative to that base URL. The public API exposes PRC20 state, marketplace data, swap state, and service health. Internal operator endpoints, credentials, privileged mutation paths, and infrastructure controls are intentionally excluded.

## API Groups

| Group         | Purpose                                            |
| ------------- | -------------------------------------------------- |
| Health/status | Service and indexing status.                       |
| PRC20         | Tokens, balances, operations, listings, quotes.    |
| Swaps         | Bids, asks, deals, and settlement lifecycle state. |

## Common Shapes

PRC20 endpoints commonly return:

```json
{ "message": "Success", "prev": null, "next": null, "result": [] }
```

Swap validation errors commonly return:

```json
{
  "ok": false,
  "error": "ASK_BELOW_MIN_USDC",
  "message": "Ask amount is below the minimum USDC amount",
  "details": {}
}
```

Clients should handle additional fields gracefully.

## Lifecycle Statuses

| Area | Common statuses                                                                                                              |
| ---- | ---------------------------------------------------------------------------------------------------------------------------- |
| Bid  | `BID_OPEN`, `BID_CREATED`, `BID_ACCEPTED`, `BID_CANCELLED`, `USDC_REFUNDED`, `SETTLED`                                       |
| Ask  | `ASK_OPEN`, `ASK_TAKEN`, `ASK_PAUSED`, `ASK_CANCELLED`                                                                       |
| Deal | `DEAL_OPEN`, `USDC_LOCKED`, `LOCK_SUBMITTED`, `PEARL_LOCKED`, `USDC_CLAIMABLE`, `USDC_REFUNDED`, `PEARL_REFUNDED`, `SETTLED` |

Status strings can vary across compatibility paths. Integrators should prefer canonical deal status when available.

## Authentication And Rate Limits

Public read APIs are intended for user-facing integrations. Rate limits and gateway policy may be adjusted by deployment policy. Internal operator access is not documented publicly.


---

# 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://docs.blackpearlmarket.com/overview-2.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.
