---
title: "Search for trader portfolios or Smart Portfolios by free-text query"
method: GET
path: "/api/v1/portfolios/search"
tags: ["PortfolioSearch"]
---

# Search for trader portfolios or Smart Portfolios by free-text query

`GET /api/v1/portfolios/search`

**Rate limit:** 60 requests per 60 seconds. This is the **default shared quota** — it is shared with every other endpoint that has no dedicated limit, so requests across those endpoints all draw from the same budget.

---

Returns a relevance-ranked list of publicly visible trader portfolios or Smart Portfolios matching the query string. The required `type` parameter determines which index is searched. Results are capped at `limit`.

## Query parameters

- `type` 'trader' | 'smart-portfolio', required
- `query` string, required
- `limit` integer

## Headers

- `x-request-id` string, uuid, required
- `x-api-key` string, password, required
- `x-user-key` string, password, required

## Response `200`

Successful search response

- PortfolioSearchResponse
  - `results` PortfolioSearchResult[], required — Relevance-ranked results. Never null - empty array when no matches.
    - `username` string, required
    - `fullName` string, nullable
    - `avatarUrl` string, nullable
    - `type` 'trader' | 'smart-portfolio', required
    - `subType` 'pi-certified' | 'pi-cadet' | 'pi-rising-star' | 'pi-champion' | 'pi-elite' | 'pi-elite-pro' | 'top-traders' | 'partners' | 'market', nullable
    - `copiers` integer, nullable
    - `country` string, nullable
    - `profileUrl` string, required

## Other responses

- `400` — Invalid request - validation error
- `429` — Too many requests - rate limit exceeded
- `502` — Upstream search provider error
- `504` — Upstream search provider timeout

---

[API](https://skmtc.net/etoro/apis/etoro-api.md) · [All operations](https://skmtc.net/etoro/apis/etoro-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/etoro/etoro-api/revisions/69c1fb266c35/schema)
