# List CRM people

`GET /people/`

Review the request and response contract for this operation.

Base URL: https://api.levr.ai/v1

Authentication: Bearer — Portal API key

[REST guide](https://docs.levr.ai/rest-api.md) · [OpenAPI specification](https://docs.levr.ai/generated/openapi.json)

## Parameters

### search (query)

Type: string. Required: no.

Schema:



```json
{
  "type": "string"
}
```

### tag (query)

Type: string. Required: no.

Schema:



```json
{
  "type": "string"
}
```

### ordering (query)

Type: string. Required: no.

Schema:



```json
{
  "enum": [
    "name",
    "-name",
    "created_at",
    "-created_at",
    "updated_at",
    "-updated_at"
  ],
  "type": "string"
}
```

### page_size (query)

Type: integer. Required: no.

Schema:



```json
{
  "maximum": 100,
  "minimum": 1,
  "type": "integer"
}
```

### cursor (query)

Type: string. Required: no.

Schema:



```json
{
  "type": "string"
}
```

## Example request

```sh
curl --request GET \
  --url "https://api.levr.ai/v1/people/" \
  --header "Authorization: Bearer $LEVR_API_KEY"
```

## Responses

### 200

Successful response.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "items": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "company_name": {
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "frontend_link": {
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "full_name": {
            "type": "string"
          },
          "id": {
            "pattern": "^pers_[a-z0-9]+$",
            "type": "string"
          },
          "is_do_not_contact": {
            "type": "boolean"
          },
          "job_title": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "object": {
            "const": "person",
            "type": "string"
          },
          "owner": {
            "type": [
              "object",
              "null"
            ]
          },
          "phone_number": {
            "type": "string"
          },
          "revision": {
            "minimum": 0,
            "type": "integer"
          },
          "tags": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "object",
          "full_name",
          "email",
          "phone_number",
          "company_name",
          "job_title",
          "is_do_not_contact",
          "notes",
          "owner",
          "tags",
          "created_at",
          "updated_at",
          "frontend_link"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "next_cursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "object": {
      "const": "list",
      "type": "string"
    },
    "previous_cursor": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "object",
    "items",
    "next_cursor",
    "previous_cursor"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "items": [
    {
      "company_name": "Growth financing intake",
      "created_at": "2026-09-02T16:42:13Z",
      "email": "developer@example.com",
      "frontend_link": "https://example.invalid/use-the-url-returned-by-the-api",
      "full_name": "Growth financing intake",
      "id": "pers_2m8q7c9k4x6p3n5d",
      "is_do_not_contact": true,
      "job_title": "Finance director",
      "notes": "Met at the regional lending conference.",
      "object": "person",
      "owner": {},
      "phone_number": "+1 604 555 0198",
      "tags": [
        {}
      ],
      "updated_at": "2026-09-02T16:42:13Z"
    }
  ],
  "next_cursor": null,
  "object": "list",
  "previous_cursor": null
}
```

### 400

Correct the request fields and try again.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "invalid_request",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "Correct the request fields and try again.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "invalid_request_error"
  }
}
```

### 401

Provide a valid API key and try again.

#### Response headers



```json
{
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "invalid_api_key",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "Provide a valid API key and try again.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "authentication_error"
  }
}
```

### 403

This API key does not allow the requested action.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "permission_denied",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "This API key does not allow this action.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "permission_error"
  }
}
```

### 404

The requested resource was not found or is not available to this API key.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "not_found",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "The requested resource was not found.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "invalid_request_error"
  }
}
```

### 409

The request conflicts with the resource's current state. Refresh it before trying again.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "conflict",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "The request conflicts with the current resource state.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "conflict_error"
  }
}
```

### 412

The request was not completed.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "precondition_failed",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "Refresh the resource and try again.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "invalid_request_error"
  }
}
```

### 429

Too many requests were sent. Wait before trying again.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  },
  "Retry-After": {
    "description": "Minimum seconds to wait before retrying.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "rate_limited",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "Wait before sending another request.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "rate_limit_error"
  }
}
```

### 500

Levr could not complete the request. Keep the request ID and retry when safe.

#### Response headers



```json
{
  "RateLimit-Limit": {
    "description": "Maximum requests in the effective fixed quota window.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "RateLimit-Remaining": {
    "description": "Requests remaining in the effective quota window.",
    "schema": {
      "minimum": 0,
      "type": "integer"
    }
  },
  "RateLimit-Reset": {
    "description": "Seconds until the effective quota window resets.",
    "schema": {
      "minimum": 1,
      "type": "integer"
    }
  },
  "Request-Id": {
    "description": "Server-generated request identifier for support and event correlation.",
    "schema": {
      "pattern": "^req_[a-z0-9]+$",
      "type": "string"
    }
  }
}
```

Content type: application/json

#### Schema



```json
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "additionalProperties": false,
      "properties": {
        "code": {
          "type": "string"
        },
        "details": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "pointer": {
                "type": "string"
              }
            },
            "required": [
              "pointer",
              "code",
              "message"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "documentation_url": {
          "format": "uri",
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "request_id": {
          "pattern": "^req_[a-z0-9]+$",
          "type": "string"
        },
        "type": {
          "enum": [
            "api_error",
            "authentication_error",
            "conflict_error",
            "idempotency_error",
            "invalid_request_error",
            "permission_error",
            "rate_limit_error"
          ],
          "type": "string"
        }
      },
      "required": [
        "type",
        "code",
        "message",
        "details",
        "request_id",
        "documentation_url"
      ],
      "type": "object"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
```

#### Example

Illustrative data. Use the identifiers, cursors, and URLs returned by your requests.



```json
{
  "error": {
    "code": "internal_error",
    "details": [],
    "documentation_url": "https://docs.levr.ai/rest-api-reference/people/list-people/",
    "message": "Retry the request, then contact support if it fails again.",
    "request_id": "req_2m8q7c9k4x6p3n5d",
    "type": "api_error"
  }
}
```
