---
title: "Get a project's owned-media profiles"
method: GET
path: "/projects/{id}/owned_media"
tags: ["Owned Media & Communities"]
---

# Get a project's owned-media profiles

`GET /projects/{id}/owned_media`

## Request

- Base URL: `https://api.llmpulse.ai/api/v1`
- URL: `https://api.llmpulse.ai/api/v1/projects/{id}/owned_media`
- Auth: API key in header `Authorization`

The profiles whose citations count as yours in the Owned Media and YouTube Intelligence reports, as Project Settings > Owned Media shows them. platforms holds one entry per platform with whether it is connected, how many extra profiles it accepts and its profiles: the main one, the extra ones, and on Reddit the claimed subreddits and usernames, each with its URL, handle, store (for apps), name, avatar and the state of the scrape that reads them. settings holds the current value of every field PATCH accepts, ready to edit and send back. Requires the Growth plan or above.

## Path parameters

- `id` integer, required

## Response `200`

Profiles per platform and the editable settings

- OwnedMediaProfilesResponse
  - `project_id` integer
  - `platforms` OwnedMediaPlatformProfiles[]
    - `platform` 'youtube' | 'mobile_apps' | 'instagram' | 'facebook' | 'tiktok' | 'linkedin' | 'reddit'
    - `connected` boolean
    - `max_extra_profiles` integer, nullable: How many extra profiles the platform accepts; null where it takes none
    - `profiles` OwnedMediaProfile[]
      - `url` string
      - `handle` string, nullable: The handle, page id, store app id, subreddit or username
      - `kind` 'profile' | 'app' | 'subreddit' | 'username'
      - `main` boolean: True for the main profile of its platform (or store), false for an extra one
      - `store` string, nullable: google_play or app_store for an app; null elsewhere
      - `name` string, nullable
      - `avatar_url` string, nullable
      - `scrape_status` string, nullable: State of the profile scrape that reads its name and avatar: pending, running, ready, failed or skipped; null when none has started or the platform has none
  - `settings` OwnedMediaProfileSettings: The current value of every field PATCH /projects/{id}/owned_media accepts
    - `youtube_channel_url` string, nullable
    - `app_store_url` string, nullable
    - `google_play_url` string, nullable
    - `instagram_profile_url` string, nullable
    - `facebook_page_url` string, nullable
    - `tiktok_profile_url` string, nullable
    - `linkedin_company_url` string, nullable
    - `youtube_extra_profile_urls` string[]
    - `mobile_apps_extra_profile_urls` string[]
    - `instagram_extra_profile_urls` string[]
    - `facebook_extra_profile_urls` string[]
    - `tiktok_extra_profile_urls` string[]
    - `linkedin_extra_profile_urls` string[]
    - `reddit_subreddits` string[]
    - `reddit_usernames` string[]
  - `request_id` string

## Other responses

- `403`: A plan below Growth answers ERR_PLAN_REQUIRED, and a team member whose permissions do not grant Owned Media ERR_INSUFFICIENT_PERMISSION, with the same status
- `404`: Resource not found

## Changes

- **2026-10-16** `dd090b1e1154`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/llmpulse/apis/llm-pulse-api/changes/projects/:id/owned_media/get.md)

---

[API](https://skmtc.dev/llmpulse/apis/llm-pulse-api.md) - [All operations](https://skmtc.dev/llmpulse/apis/llm-pulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/llmpulse/apis/llm-pulse-api/revisions/38a31f123641?raw)
