---
title: "404 Not found"
description: "QuotaStack has nothing here with that ID. Nothing changed."
---

# 404 Not found

`https://api.quotastack.io/errors/not-found`

QuotaStack has nothing here with that ID. Nothing changed.

## Why it happened

- The ID is real, and it sits in the other environment. A sandbox key cannot see live data.
- The ID belongs to a different tenant.
- The record was deleted.
- You sent your own `external_id` where the call wants the QuotaStack UUID.

## How to fix it

1. Check that the key environment matches the data you want.
2. Use the `by-external-id` twin of the call when you hold your own ID.
3. List the collection first, to see what is really there.

### Example response 404

```json
{
  "type": "https://api.quotastack.io/errors/not-found",
  "title": "Not Found",
  "status": 404,
  "detail": "Customer not found."
}
```

## Which calls return this

- [`GET /v1/customers/{id}`](/docs/api/customers#getCustomer)
- [`PATCH /v1/customers/{id}`](/docs/api/customers#updateCustomer)
- [`DELETE /v1/customers/{id}`](/docs/api/customers#deleteCustomer)
- [`GET /v1/customer-by-external-id/{external_id}`](/docs/api/customers#getCustomerByExternalId)
- [`PATCH /v1/customer-by-external-id/{external_id}`](/docs/api/customers#updateCustomerByExternalId)
- [`DELETE /v1/customer-by-external-id/{external_id}`](/docs/api/customers#deleteCustomerByExternalId)
- [`GET /v1/customers/{customer_id}/credits`](/docs/api/credits#getCustomerCredits)
- [`POST /v1/customers/{customer_id}/credits/grant`](/docs/api/credits#grantCustomerCredits)
- [`POST /v1/customers/{customer_id}/credits/adjust`](/docs/api/credits#adjustCustomerCredits)
- [`GET /v1/customers/{customer_id}/overage`](/docs/api/credits#getCustomerOverage)
- [`GET /v1/customer-by-external-id/{external_id}/credits`](/docs/api/credits#getCustomerCreditsByExternalId)
- [`POST /v1/customer-by-external-id/{external_id}/credits/grant`](/docs/api/credits#grantCustomerCreditsByExternalId)
- [`POST /v1/customer-by-external-id/{external_id}/credits/adjust`](/docs/api/credits#adjustCustomerCreditsByExternalId)
- [`GET /v1/customer-by-external-id/{external_id}/overage`](/docs/api/credits#getCustomerOverageByExternalId)
- [`GET /v1/entitlements/check`](/docs/api/entitlements#checkEntitlement)
- [`GET /v1/customers/{id}/entitlements/{metric}`](/docs/api/entitlements#checkCustomerEntitlement)
- [`GET /v1/customers/{id}/entitlements`](/docs/api/entitlements#getCustomerEntitlements)
- [`GET /v1/customer-by-external-id/{external_id}/entitlements/{metric}`](/docs/api/entitlements#checkCustomerEntitlementByExternalId)
- [`GET /v1/customer-by-external-id/{external_id}/entitlements`](/docs/api/entitlements#getCustomerEntitlementsByExternalId)
- [`POST /v1/customers/{id}/entitlements/{billable_metric_key}/increment`](/docs/api/entitlements#incrementGauge)
- [`POST /v1/customers/{id}/entitlements/{billable_metric_key}/decrement`](/docs/api/entitlements#decrementGauge)
- [`POST /v1/entitlements/consume`](/docs/api/entitlements#consumeEntitlement)
- [`POST /v1/customer-by-external-id/{external_id}/entitlements/{billable_metric_key}/increment`](/docs/api/entitlements#incrementGaugeByExternalId)
- [`POST /v1/customer-by-external-id/{external_id}/entitlements/{billable_metric_key}/decrement`](/docs/api/entitlements#decrementGaugeByExternalId)
- [`POST /v1/subscriptions`](/docs/api/subscriptions#createSubscription)
- [`GET /v1/subscriptions/{id}`](/docs/api/subscriptions#getSubscription)
- [`POST /v1/subscriptions/{id}/upgrade`](/docs/api/subscriptions#upgradeSubscription)
- [`POST /v1/subscriptions/{id}/downgrade`](/docs/api/subscriptions#downgradeSubscription)
- [`POST /v1/subscriptions/{id}/cancel`](/docs/api/subscriptions#cancelSubscription)
- [`GET /v1/subscriptions/{id}/overrides`](/docs/api/overrides#listOverrides)
- [`POST /v1/subscriptions/{id}/overrides`](/docs/api/overrides#createOverride)
- [`PATCH /v1/subscriptions/{id}/overrides/{billable_metric_key}`](/docs/api/overrides#updateOverride)
- [`DELETE /v1/subscriptions/{id}/overrides/{billable_metric_key}`](/docs/api/overrides#deleteOverride)
- [`POST /v1/reservations`](/docs/api/reservations#reserveCredits)
- [`GET /v1/reservations/{id}`](/docs/api/reservations#getReservation)
- [`POST /v1/reservations/{id}/commit`](/docs/api/reservations#commitReservation)
- [`POST /v1/reservations/{id}/release`](/docs/api/reservations#releaseReservation)
- [`GET /v1/plans/{id}`](/docs/api/plans#getPlan)
- [`GET /v1/plan-variants/{id}`](/docs/api/plans#getPlanVariant)
- [`POST /v1/plans/{id}/variants/{vid}/entitlements`](/docs/api/plans#attachVariantEntitlement)
- [`PATCH /v1/plans/{id}/variants/{vid}/entitlements/{billable_metric_key}`](/docs/api/plans#updateVariantEntitlement)
- [`DELETE /v1/plans/{id}/variants/{vid}/entitlements/{billable_metric_key}`](/docs/api/plans#detachVariantEntitlement)
- [`GET /v1/billable-metrics/{key}`](/docs/api/billable-metrics#getBillableMetric)
- [`PATCH /v1/billable-metrics/{key}`](/docs/api/billable-metrics#updateBillableMetric)
- [`POST /v1/topups/grant`](/docs/api/topups#grantTopup)
- [`POST /v1/webhooks/events/{id}/redeliver`](/docs/api/webhooks#redeliverWebhookEvent)

## See also

- [Environments](/docs/concepts/environments)
