---
updatedAt: 2025-05-28T00:02:33.000Z
agentTools:
  projectIndex: https://looksrare.dev/v1.0/llms.txt
---

# Response Schema

LooksRare uses conventional [HTTP response codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) to indicate the success or failure of an API request.

## Successful HTTP Responses

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th style={{ textAlign: "left" }}>
        Code
      </th>

      <th style={{ textAlign: "left" }}>
        Meaning
      </th>

      <th style={{ textAlign: "left" }}>
        Endpoint(s)
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ textAlign: "left" }}>
        200
      </td>

      <td style={{ textAlign: "left" }}>
        The request was successful.
      </td>

      <td style={{ textAlign: "left" }}>
        All endpoints.
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        201
      </td>

      <td style={{ textAlign: "left" }}>
        The order has been created.
      </td>

      <td style={{ textAlign: "left" }}>
        The `/orders` endpoint.
      </td>
    </tr>
  </tbody>
</Table>

You can find an example of a successful response for each endpoint in the API reference.

## Error HTTP Responses

<Table align={["left","left","left","left"]}>
  <thead>
    <tr>
      <th>
        Code
      </th>

      <th>
        Message
      </th>

      <th>
        Meaning
      </th>

      <th>
        Endpoint(s)
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        400
      </td>

      <td>
        Invalid queries, check 'errors' property for more info. *See[400 Bad Request](https://looksrare.dev/reference/response-reference#400-bad-request) for more details.*
      </td>

      <td>
        There is something wrong with your request. See the error for more details.
      </td>

      <td>
        All endpoints.
      </td>
    </tr>

    <tr>
      <td>
        401
      </td>

      <td>
        API key is missing or invalid.
      </td>

      <td>
        Either the API key is invalid or it's missing when calling a protected endpoint.
      </td>

      <td>
        All endpoints.
      </td>
    </tr>

    <tr>
      <td>
        403
      </td>

      <td>
        This request is forbidden.
      </td>

      <td>
        Your API key is disabled.
      </td>

      <td>
        All endpoints.
      </td>
    </tr>

    <tr>
      <td>
        404
      </td>

      <td>
        Token not found.
      </td>

      <td>
        The provided combination of `collection` and `tokenId` was not found.
      </td>

      <td>
        The `/tokens/refresh` endpoint.
      </td>
    </tr>

    <tr>
      <td>
        429
      </td>

      <td>
        Exceeds rate limit.
      </td>

      <td>
        You've exceeded your rate limit—your allowance for the number of API requests per minute.
      </td>

      <td>
        All endpoints.
      </td>
    </tr>

    <tr>
      <td>
        500
      </td>

      <td>
        Internal server error.
      </td>

      <td>
        We're unable to process your request. Get in touch with us if you get this error.
      </td>

      <td>
        All endpoints.
      </td>
    </tr>

    <tr>
      <td>
        503
      </td>

      <td>
        The service is running in read-only mode at the moment.
      </td>

      <td>
        We are performing a maintenance which requires to set the API to read-only mode.
      </td>

      <td>
        All POST requests.
      </td>
    </tr>
  </tbody>
</Table>

## 400 Bad Request

Response schema:

```json
{
  "success": false,
  "data": null,
  "message": "string",
  "errors": [ // Optional
    {
      "target": {},
      "value": {},
      "property": "string",
      "children": [],
      "constraints": {} // Optional
    }
  ]
}
```

This response can occur in two variants, as shown below. The first error response is strictly related to a type validation error; for example, the Ethereum address is invalid. While the second error format is generally about other non-type-related issues, for example, a duplicate MakerOrder or a missing approval.

In the following response example, a request was sent to the `/orders` endpoint with invalid parameters; the `startTime` was set to `1` and the `pagination[first]` to `ABCD`.

`https://api.looksrare.org/api/v1/orders?isOrderAsk=true&nonce=8&startTime=1&pagination[first]=ABCD`

```json
{
  "success": false,
  "data": null,
  "message": "Invalid queries, check 'errors' property for more info.",
  "errors": [
    {
      "target": {
        "isOrderAsk": true,
        "nonce": {
          "type": "BigNumber",
          "hex": "0x08"
        },
        "pagination": {
          "first": null
        },
        "startTime": {
          "type": "BigNumber",
          "hex": "0x01"
        }
      },
      "value": {
        "type": "BigNumber",
        "hex": "0x01"
      },
      "property": "startTime",
      "children": [],
      "constraints": {
        "isTimestamp": "startTime must be a valid timestamp in seconds"
      }
    },
    {
      "target": {
        "isOrderAsk": true,
        "nonce": {
          "type": "BigNumber",
          "hex": "0x08"
        },
        "pagination": {
          "first": null
        },
        "startTime": {
          "type": "BigNumber",
          "hex": "0x01"
        }
      },
      "value": {
        "first": null
      },
      "property": "pagination",
      "children": [
        {
          "target": {
            "first": null
          },
          "value": null,
          "property": "first",
          "children": [],
          "constraints": {
            "isNumber": "first must be a number conforming to the specified constraints"
          }
        }
      ]
    }
  ]
}
```

As shown above, with this type of error:

* `success` will be set to `false`.
* `data` will be set to `null`.
* `message` will be set to `Invalid queries, check 'errors' property for more info`.
* `errors` will contain an object for each invalid parameter in your request. *(optional)*

An error object has the following properties:

* `target` will contain all the request's parameters.
* `value` will contain the value which is causing the error.
* `property` will contain the invalid property.
* `children` will contain an error object for each error if the property value is an object.
* `constraints` will contain an object with a property for each constraint that was not met. *(optional)*

### Other errors messages

In some cases, when sending requests to the `/orders` endpoint, the 400 error can differ from the above format.

For example:

```json
{
  "success": false,
  "data": null,
  "message": "Cannot query Orders with a nonce without a signer."
}
```

Possible `message` values:

* `Cannot query Orders with a tokenId without a collection.`
* `Cannot query Orders with a nonce without a signer.`
* `This strategy is deprecated`
* `tokenId is missing`
* `Signature and Signer do not match.`
* `Token does not exist.`
* `Collection does not exist.`
* `Duplicated order payload.`
* `Duplicated order (nonce) payload.`
* `Invalid order payload {ERROR_CODE_STRING}.`

All the possible `ERROR_CODE_STRING` values can be found here: [Order Validation Errors](https://looksrare.dev/reference/order-validation-errors)

For example:

```json
{
  "success": false,
  "data": null,
  "message": "Invalid order payload (NONCE_BELOW_MIN_ORDER_NONCE)."
}
```

## All other error responses

Response schema:

```json
{
  "success": false,
  "data": null,
  "name": "string", // Optional
  "message": "string"
}
```