v1.2.0
  1. ds
  2. Operations
  3. Endpoints and status codes

Endpoints and status codes

HTTP methods, paths with parameters, status code badges.

  • GET /v1/orders/{order_id}

    Fetch one order with its line items.

    38 msp95 0.01%errors
  • POST /v1/orders

    Create an order. Idempotent with an Idempotency-Key header.

    142 msp95 0.08%errors
  • PATCH /v1/orders/{order_id}/status

    Move an order to packed, shipped or delivered.

    64 msp95 0.02%errors
  • POST /v1/webhooks/{endpoint_id}/replay

    Resend failed deliveries from the last 72 hours.

    1.9 sp95 2.4%errors
  • DELETE /v1/customers/{customer_id}/cards/{card_id}

    Remove a saved card.

    51 msp95 0.00%errors
  • GET /v0/orders?page={n}

    Offset pagination. Removed on 1 Jan 2027.

    210 msp95 0.03%errors
Show code
<ul class="endpoints">
  <li class="endpoint">
    <span class="method get">GET</span>
    <span class="path">/v1/orders/<em>{order_id}</em></span>
    <p>Fetch one order with its line items.</p>
    <div class="ep-stats">
      <span class="spark" style="--w:4.5rem;--h:1.25rem" role="img" aria-label="p95 steady over 24 hours"><svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true"><path d="M0 21.57L4.35 27.5L8.7 25.98L13.04 23.1L17.39 17.51L21.74 16.15L26.09 6.1L30.43 5.16L34.78 4.72L39.13 10.78L43.48 8.24L47.83 9.94L52.17 14.87L56.52 15.23L60.87 11.26L65.22 11.63L69.57 14.04L73.91 12.05L78.26 7L82.61 4.14L86.96 3.31L91.3 8.17L95.65 2.5L100 5.39"/></svg><i style="--y:0.8203"></i></span>
      <span><b>38 ms</b>p95</span>
      <span><b>0.01%</b>errors</span>
    </div>
  </li>
  <li class="endpoint">
    <span class="method post">POST</span>
    <span class="path">/v1/orders</span>
    <p>Create an order. Idempotent with an Idempotency-Key header.</p>
    <div class="ep-stats">
      <span class="spark" style="--w:4.5rem;--h:1.25rem" role="img" aria-label="p95 steady over 24 hours"><svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true"><path d="M0 27.5L4.35 22.97L8.7 24.12L13.04 21.55L17.39 21.49L21.74 20.02L26.09 15.09L30.43 14.97L34.78 17.7L39.13 17.03L43.48 17.63L47.83 20.91L52.17 21.17L56.52 19.31L60.87 20.88L65.22 19.88L69.57 18.49L73.91 19.52L78.26 15.4L82.61 11.13L86.96 10.08L91.3 10.69L95.65 3.81L100 2.5"/></svg><i style="--y:0.9167"></i></span>
      <span><b>142 ms</b>p95</span>
      <span><b>0.08%</b>errors</span>
    </div>
  </li>
  <li class="endpoint">
    <span class="method patch">PATCH</span>
    <span class="path">/v1/orders/<em>{order_id}</em>/status</span>
    <p>Move an order to packed, shipped or delivered.</p>
    <div class="ep-stats">
      <span class="spark" style="--w:4.5rem;--h:1.25rem" role="img" aria-label="p95 steady over 24 hours"><svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true"><path d="M0 6.46L4.35 7.98L8.7 6.46L13.04 5.71L17.39 5.35L21.74 3.48L26.09 3.31L30.43 2.5L34.78 5.35L39.13 8.75L43.48 10.3L47.83 10.57L52.17 12.55L56.52 14.72L60.87 15.76L65.22 16.99L69.57 19.18L73.91 18.54L78.26 20.37L82.61 23.02L86.96 24.4L91.3 26.11L95.65 27.5L100 25.72"/></svg><i style="--y:0.1427"></i></span>
      <span><b>64 ms</b>p95</span>
      <span><b>0.02%</b>errors</span>
    </div>
  </li>
  <li class="endpoint">
    <span class="method post">POST</span>
    <span class="path">/v1/webhooks/<em>{endpoint_id}</em>/replay</span>
    <p>Resend failed deliveries from the last 72 hours.</p>
    <div class="ep-stats">
      <span class="spark c-down" style="--w:4.5rem;--h:1.25rem" role="img" aria-label="p95 rising over 24 hours"><svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true"><path d="M0 27.5L4.35 25.43L8.7 23.67L13.04 23.11L17.39 23.41L21.74 21.59L26.09 20.83L30.43 20.47L34.78 19.01L39.13 15.63L43.48 16.45L47.83 15.66L52.17 13.09L56.52 10.4L60.87 6.28L65.22 7.91L69.57 7.65L73.91 7.17L78.26 5.83L82.61 8.49L86.96 6.84L91.3 3.63L95.65 2.5L100 3.47"/></svg><i style="--y:0.8844"></i></span>
      <span><b>1.9 s</b>p95</span>
      <span><b class="bad">2.4%</b>errors</span>
    </div>
  </li>
  <li class="endpoint">
    <span class="method delete">DELETE</span>
    <span class="path">/v1/customers/<em>{customer_id}</em>/cards/<em>{card_id}</em></span>
    <p>Remove a saved card.</p>
    <div class="ep-stats">
      <span class="spark" style="--w:4.5rem;--h:1.25rem" role="img" aria-label="p95 steady over 24 hours"><svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true"><path d="M0 19.25L4.35 20.29L8.7 23.66L13.04 27.5L17.39 24.72L21.74 22.46L26.09 22.55L30.43 23.22L34.78 19.63L39.13 17.31L43.48 18.77L47.83 24.58L52.17 20.86L56.52 18.27L60.87 21.28L65.22 20.05L69.57 18.07L73.91 15.82L78.26 13.79L82.61 7.63L86.96 2.5L91.3 7.32L95.65 5.88L100 7"/></svg><i style="--y:0.7668"></i></span>
      <span><b>51 ms</b>p95</span>
      <span><b>0.00%</b>errors</span>
    </div>
  </li>
  <li class="endpoint deprecated">
    <span class="method get">GET</span>
    <span class="path">/v0/orders<span class="q">?page=<em>{n}</em></span></span>
    <p>Offset pagination. Removed on 1 Jan 2027.</p>
    <div class="ep-stats">
      <span class="spark" style="--w:4.5rem;--h:1.25rem" role="img" aria-label="p95 steady over 24 hours"><svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true"><path d="M0 20.1L4.35 24.2L8.7 21.83L13.04 21.67L17.39 27.5L21.74 25.12L26.09 24.56L30.43 20.61L34.78 14.4L39.13 6.31L43.48 9.45L47.83 10.43L52.17 10.04L56.52 5.05L60.87 4.7L65.22 2.5L69.57 2.86L73.91 7.99L78.26 12.05L82.61 16.1L86.96 16.02L91.3 18.55L95.65 20.55L100 20.49"/></svg><i style="--y:0.317"></i></span>
      <span><b>210 ms</b>p95</span>
      <span><b>0.03%</b>errors</span>
    </div>
  </li>
</ul>

An endpoint reads as method, path, one line of what it does, and how it is doing. The stats sit on the right with a 24-hour p95 sparkline, so the one endpoint that is slow or failing stands out in a list of fifty. Deprecated endpoints keep their row, struck through, with the removal date in the description.

Methods

GET POST PUT PATCH DELETE HEAD WS
Code
<span class="method get">GET</span>
<span class="method post">POST</span>
<span class="method put">PUT</span>
<span class="method patch">PATCH</span>
<span class="method delete">DELETE</span>
<span class="method">HEAD</span>
<span class="method ws">WS</span>

Fixed width, mono, uppercase, so paths line up after them. Methods use tones, the way API references have always told them apart: GET blue, POST green, PUT amber, PATCH teal. DELETE is red because it destroys something, which is the one place a method's colour should warn.

Paths

/v1/customers/{customer_id}/cards/{card_id} /v1/search?q={query}&limit=50
Code
<span class="path">/v1/customers/<em>{customer_id}</em>/cards/<em>{card_id}</em></span>
<span class="path">/v1/search<span class="q">?q=<em>{query}</em>&amp;limit=50</span></span>

Parameters in the accent, query strings in muted, so the fixed parts of the path read first.

Status codes

200 OK 201 Created 304 Not Modified 404 Not Found 429 Too Many Requests 502 Bad Gateway 503
Code
<span class="http">200 <small>OK</small></span>
<span class="http">201 <small>Created</small></span>
<span class="http redir">304 <small>Not Modified</small></span>
<span class="http warn">404 <small>Not Found</small></span>
<span class="http warn">429 <small>Too Many Requests</small></span>
<span class="http down">502 <small>Bad Gateway</small></span>
<span class="http down">503</span>

2xx green, 3xx the cool blue, 4xx amber because the client sent something wrong, 5xx red because you did. The reason phrase is optional and quieter.

ClassOnWhat it does
.methodspanMethod badge. .get, .post, .put, .patch, .delete, .ws; neutral for HEAD and OPTIONS.
.pathspanA path in mono. Wrap parameters in <em>, the query in .q.
.httpspanStatus code. 2xx by default, .redir, .warn (4xx), .down (5xx). <small> for the reason phrase.
.endpointsulThe list.
.endpointliMethod, path, a <p> description and .ep-stats. .deprecated strikes the path.
.ep-statsdivRight-hand figures: a .spark and value pairs, b.bad for one over its limit.
Do
  • Methods in capitals in the markup, as the HTTP spec writes them, so copying gives GET and not get.
  • p95 and error rate for the same window as the sparkline.
  • The removal date on anything deprecated.
Don't
  • Colouring 4xx red. A spike of 404s from a scanner is not an outage.
  • Truncating paths. Wrap them; the parameters are at the end.
  • A method colour for every verb your framework invented.

Accessibility

  • The method is a word, so colour only helps scanning.
  • Each sparkline has a label that says the trend in words.