---
title: "List custom API providers and actions"
method: GET
path: "/credits/custom-endpoints"
tags: ["Custom APIs"]
---

# List custom API providers and actions

`GET /credits/custom-endpoints`

## Request

- Base URL: `https://api.paywithlocus.com/api`
- URL: `https://api.paywithlocus.com/api/credits/custom-endpoints`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Feature-gated enterprise management surface. Requires catalog:write. The raw upstream credential is never returned. Only a workspace owner whose credential also has credentials:manage receives the provider base URL and redacted authentication metadata; every other authorized caller receives null for those upstream configuration fields.

## Response `200`

Custom providers, effective workspace markup cap, and schema-backed actions

- CustomProviderListResponse
  - `success` unknown, required
  - `markupCapBps` integer, required
  - `providers` CustomProvider[], required
    - `id` string, uuid, required
    - `slug` string, required
    - `publicProvider` string, required: Provider name used in catalog discovery and /wrapped/credits/{provider}/{endpoint}.
    - `name` string, required
    - `description` string, nullable, required
    - `baseUrl` string, uri, nullable, required: Null when upstream configuration is redacted for this caller.
    - `auth` CustomAuthView, required
      - `type` 'bearer' | 'header' | 'query' | 'none' | 'null', nullable, required: Null when upstream configuration is redacted for this caller.
      - `name` string, nullable, required
      - `prefix` string, nullable, required
      - `configured` boolean, required
      - `hint` string, nullable, required: Non-secret credential hint for an authorized owner; never the credential itself.
      - `version` integer, required
      - `updatedAt` string, date-time, nullable, required
    - `traffic` CustomTrafficPolicy, required
      - `requestsPerMinute` integer, required: Must not exceed the platform-wide 60,000 request-per-minute ceiling.
      - `maxConcurrency` integer, required
      - `timeoutSeconds` integer, required
      - `circuitBreaker` CustomCircuitBreakerPolicy, required
        - `failureThreshold` integer, required
        - `windowSeconds` integer, required
        - `cooldownSeconds` integer, required
    - `endpoints` CustomEndpoint[], required
      - `id` string, uuid, required
      - `slug` string, required
      - `publicSlug` string, required: Catalog and execution identity.
      - `name` string, required
      - `description` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', required
      - `path` string, required
      - `inputSchema` object, required
      - `inputExample` object, required
      - `outputSchema` object, nullable, required
      - `outputExample` unknown, required
      - `providerCostUsdc` string, required: Non-negative exact decimal string with at most six fractional digits. Endpoint-specific positivity and amount limits still apply.
      - `markupBps` integer, required
      - `flatMarkupUsdc` string, required: Non-negative exact decimal string with at most six fractional digits. Endpoint-specific positivity and amount limits still apply.
      - `endUserPriceUsdc` string, required: Non-negative exact decimal string with at most six fractional digits. Endpoint-specific positivity and amount limits still apply.
      - `enabled` boolean, required
      - `pricingRevision` integer, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `401`: Missing, invalid, expired, or revoked management credential
- `403`: Custom APIs are not enabled for this enterprise workspace or the credential lacks catalog:write

---

[API](https://skmtc.dev/paywithlocus/apis/locus-pro-api.md) - [All operations](https://skmtc.dev/paywithlocus/apis/locus-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paywithlocus/apis/locus-pro-api/revisions/aab8fa5d6cef?raw)
