---
title: "Refresh tracked accounts data"
method: POST
path: "/accounts/tracked/refresh"
tags: ["Track Accounts"]
---

# Refresh tracked accounts data

`POST /accounts/tracked/refresh`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/accounts/tracked/refresh`
- Auth: API key in header `x-api-key`

Manually refresh data for specific tracked accounts. Only refreshes accounts with active account tracking. An account a manual refresh was already requested for in the last 10 minutes, by anyone in the organization, is not refreshed or charged again: it is listed under `skipped`. A request whose accounts are all skipped succeeds with an empty `refreshed` list. The `X-Viral-Credits-Consumed` response header carries the credits charged.

⚠️ Consumes extra credits: 3 credits per tracked video – rounded up per account.

## Request body

- object: Refresh tracked accounts data
  - `items` object[], required
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
    - `id` string, required: Native platform account id

## Response `200`

OK

- object: Result of refreshing tracked accounts
  - `refreshed` object[], required
    - `id` string, required: Organization account ID with orgacc_ prefix. Not the same as platform account ID.
    - `platformAccountId` string, required: Native platform account id
    - `username` string, nullable, required
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
  - `totalRefreshed` number, required
  - `eventIds` string[], required
  - `syncRequestId` string, nullable, required: The sync this request started. The `sync.completed` webhook reports it under this id (`sync.id`) once it is over, every item live or failed. Null when nothing was synced, or when viral.app could not record the sync for progress tracking (the sync still runs; no `sync.completed` follows).
  - `skipped` object[], required: Accounts a manual refresh was already requested for in the last 10 minutes, by anyone in the organization: not refreshed again and not charged.
    - `id` string, required: Organization account ID with orgacc_ prefix. Not the same as platform account ID.
    - `platformAccountId` string, required: Native platform account id
    - `username` string, nullable, required
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
    - `refreshRequestedAt` string, date-time, required: When the refresh that is still running for this account was requested.

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500

---

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