---
title: "Get a dedicated endpoint"
method: GET
path: "/api/v1/dedicated/endpoints/{id}"
tags: ["dedicated"]
---

# Get a dedicated endpoint

`GET /api/v1/dedicated/endpoints/{id}`

## Request

- Base URL: `https://api.morphllm.com`
- URL: `https://api.morphllm.com/api/v1/dedicated/endpoints/{id}`
- Auth: HTTP bearer

Full lifecycle snapshot: state, provisioning status, failure code, the event trail, connection details, and any scheduled cancellation.

## Path parameters

- `id` string, uuid, required: Endpoint id from the list response or purchase.

## Response `200`

The endpoint snapshot.

- DedicatedEndpointStatus: Full lifecycle snapshot of one dedicated endpoint.
  - `id` string, uuid, required: Endpoint id (the order id).
  - `state` 'checkout_pending' | 'paid' | 'capacity_held' | 'provisioning' | 'pr_open' | 'merged' | 'deploying' | 'ready' | 'refunding' | 'refunded' | 'failed' | 'suspended' | 'canceled', required: Lifecycle state; same values as the list response. Only `ready` serves requests.
  - `createdAt` string, date-time, required: ISO 8601 creation time of the order.
  - `activationDeadline` string, date-time, nullable, required: Set at payment, two hours out. If the endpoint is not `ready` by then, the order moves to `refunding`.
  - `readyAt` string, date-time, nullable, required: ISO 8601 time of first readiness, else null.
  - `failureCode` string, nullable, required: Reserved; currently always null. For why an order ended before activation, read the last entry in `events`.
  - `spendCapCents` integer, required: Billing spend cap for the order, in US cents.
  - `planName` string, required: Display name of the capacity plan.
  - `reservedGpuEquivalents` integer, required: GPUs reserved by the plan.
  - `modelId` string, required: Catalog model id purchased.
  - `modelDisplayName` string, required: Display name of the purchased model.
  - `modelHardware` string, required: GPU generation for the purchased model.
  - `provisioningStatus` 'pending' | 'pr_open' | 'merged' | 'deploying' | 'ready' | 'failed' | 'null', nullable, required: Status of the internal deployment job, or null before one starts. Diagnostic only: gate on `state`, which also covers payment and cancellation.
  - `events` DedicatedLifecycleEvent[], required: Lifecycle trail, oldest first.
    - `id` string, uuid, required: Event id.
    - `eventType` string, required: What happened, as `area.action`: for example `payment.succeeded`, `capacity.held`, `deployment.started`, `deployment.ready`, `deployment.failed`, `cancellation.noticed`, `cancellation.effective`.
    - `fromState` string, nullable, required: State before the event, or null when the event did not change state.
    - `toState` string, nullable, required: State after the event, or null when the event did not change state.
    - `actorType` string, required: Who caused the event: `user`, `stripe`, `system`, `github_app`, or `github_actions`.
    - `createdAt` string, date-time, required: ISO 8601 time of the event.
  - `endpoint` object, nullable, required: Serving coordinates, or null before provisioning creates them. Not cleared when the endpoint stops serving, so check `state`.
    - `servedModelName` string, required: The `model` value requests must use.
    - `displayName` string, required: Human-readable name of the served model.
    - `endpointUrl` string, uri, nullable, required: Base URL for requests; append `/v1` for OpenAI clients.
    - `hardware` string, nullable, required: Hardware serving this endpoint.
    - `contextWindow` integer, nullable, required: Maximum context length in tokens.
    - `maxConcurrency` integer, nullable, required: Concurrent request limit for the endpoint.
    - `inputPricePerM` number, required: USD per million input tokens, for usage display.
    - `outputPricePerM` number, required: USD per million output tokens, for usage display.
    - `cachedInputPricePerM` number, nullable, required: USD per million cached input tokens, for usage display.
  - `cancelEffectiveAt` string, date-time, nullable, required: When a requested cancellation takes effect, else null. A `ready` endpoint with this set keeps serving until then, then moves to `canceled`.

## Other responses

- `401`: The Authorization header is missing or holds an invalid Morph API key.
- `404`: No endpoint with this id belongs to the key. Endpoints owned by another account also return 404, so existence is never leaked.

## Changes

- **2026-10-14** `94e639b0e59b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/morphllm/apis/morph-api/changes/api/v1/dedicated/endpoints/:id/get.md)

---

[API](https://skmtc.dev/morphllm/apis/morph-api.md) - [All operations](https://skmtc.dev/morphllm/apis/morph-api/llms.txt) - [OpenAPI document](https://skmtc.dev/morphllm/apis/morph-api/revisions/d5b145cc274e?raw)
