---
title: "Someone else's public posts"
method: GET
path: "/v1/discover/profiles/{handle}/posts"
tags: ["Discovery"]
---

# Someone else's public posts

`GET /v1/discover/profiles/{handle}/posts`

## Request

- Base URL: `https://api.postlake.dev`
- URL: `https://api.postlake.dev/v1/discover/profiles/{handle}/posts`
- Auth: `bearerAuth` (a scheme the document does not define)

## Path parameters

- `handle` string, required

## Query parameters

- `account` string, required
- `cursor` string
- `limit` integer

## Response `200`

Success

- object
  - `items` DiscoveredPost[]
    - `id` string
    - `platform` string
    - `author` SocialActor
      - `handle` string
      - `displayName` string, nullable
      - `avatarUrl` string, nullable
      - `id` string, nullable: The network's own id, for follow/block/mute
    - `text` string
    - `createdAt` string, date-time
    - `url` string, nullable
    - `mediaType` 'text' | 'image' | 'video' | 'other': 'other' keeps a new network media type from breaking a parser that switches on this.
    - `isReply` boolean
    - `isQuote` boolean
    - `authorHidden` boolean: True when the network REFUSES to name the author, as opposed to us failing to read it. Instagram hashtag results are the case: Meta rejects the username field on media returned by a tag search, so author.handle is necessarily empty. Treat an empty handle WITHOUT this flag as a bug; with it, as the network's rule.
  - `cursor` string, nullable
  - `problems` ReadProblem[]
    - `account` string
    - `platform` string
    - `reason` string

---

[API](https://skmtc.dev/postlake/apis/postlake-api.md) · [All operations](https://skmtc.dev/postlake/apis/postlake-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postlake/apis/postlake-api/revisions/f81060e31f69?raw)
