BIO.RE
Creator

List Connected Social Accounts

Read up to 50 connected social accounts for the current creator. Returns platform, public username, verification flag, and connection timestamp. OAuth tokens are NOT exposed.

GET /api/v1/creators/social — 🔑 Bearer

Returns up to 50 connected social accounts for the calling user, ordered by connectedAt ASC (oldest first). Each row exposes only the public-safe fields — the OAuth tokens stored at connect time are kept server-side and never returned.

The 50-cap is enforced server-side. In practice creators link 2–6 platforms; the cap exists to bound payload size for unusual cases. Pagination is not exposed.

Request

No body, no params.

HeaderRequiredNotes
Authorization: Bearer <accessToken>JWT from POST /auth/login

Response

200 OKArrayApiResponseOf<SocialAccountItemDto>

{
  "success": true,
  "data": [
    {
      "platform": "instagram",
      "platformUsername": "johndoe",
      "verified": true,
      "connectedAt": "2026-04-29T20:00:00.000Z"
    },
    {
      "platform": "x",
      "platformUsername": "@johndoe",
      "verified": true,
      "connectedAt": "2026-04-29T20:00:00.000Z"
    }
  ]
}
FieldTypeNotes
platformstringPlatform identifier as recorded at connect time
platformUsernamestring | nullPublic handle on the platform (may be null if the platform's API didn't return one)
verifiedbooleantrue for OAuth-verified connections (always true for accounts created via POST /creators/social/connect — admin-injected accounts may differ)
connectedAtstring (ISO 8601)When the row was created

Errors

HTTPcode / i18nKeyReason
401(guard)Missing / invalid bearer token

Side effects

  1. prisma.socialAccount.findMany({ where: { userId }, select: { platform, platformUsername, verified, connectedAt }, orderBy: { connectedAt: 'asc' }, take: 50 }).
  2. Return the array. accessToken, refreshToken, tokenExpiresAt, platformUserId are excluded from the select — they are server-only.
  3. No mutations.

Code samples

curl https://api.bio.re/api/v1/creators/social \
  -H "Authorization: Bearer $ACCESS_TOKEN"
type SocialAccountItem = {
  platform: string;
  platformUsername: string | null;
  verified: boolean;
  connectedAt: string;
};

async function getConnectedSocialAccounts(accessToken: string): Promise<SocialAccountItem[]> {
  const res = await fetch('https://api.bio.re/api/v1/creators/social', {
    headers: { Authorization: `Bearer ${accessToken}` },
  });
  const json = await res.json();
  if (!res.ok || !json.success) {
    throw Object.assign(new Error(json?.error?.message ?? 'Social list fetch failed'), {
      code: json?.error?.code,
    });
  }
  return json.data;
}
import { useQuery } from '@tanstack/react-query';

export const creatorKeys = {
  social: () => ['creators', 'social'] as const,
};

export function useConnectedSocialAccounts() {
  return useQuery({
    queryKey: creatorKeys.social(),
    queryFn: async () => {
      const res = await fetch('/api/v1/creators/social');
      const json = await res.json();
      if (!res.ok || !json.success) {
        throw Object.assign(new Error(json?.error?.message ?? 'Social list fetch failed'), {
          code: json?.error?.code,
          i18nKey: json?.error?.i18nKey,
        });
      }
      return json.data as SocialAccountItem[];
    },
    staleTime: 60_000,
  });
}

Try it

GET
/api/v1/creators/social
AuthorizationBearer <token>

In: header

Response Body

application/json

application/json

curl -X GET "https://loading/api/v1/creators/social"
{
  "success": true,
  "data": [
    {
      "platform": "instagram",
      "platformUsername": "string",
      "verified": true,
      "connectedAt": "2019-08-24T14:15:22Z"
    }
  ]
}
{
  "success": false,
  "error": {
    "code": "AUTH_UNAUTHORIZED",
    "message": "Invalid credentials",
    "i18nKey": "auth.login.invalid_credentials",
    "i18nVars": {
      "field": "email"
    },
    "details": [
      {
        "message": "email must be an email"
      }
    ],
    "correlationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}

Source

SourcePathLines
Controllerapps/api-core/src/modules/creator/creator.controller.ts85–91 (getSocialAccounts)
DTO (response item)apps/api-core/src/modules/creator/dto/creator-client-response.dto.ts303–315 (SocialAccountItemDto)
Serviceapps/api-core/src/modules/creator/creator.service.ts284–291 (getSocialAccounts)
Prisma modelpackages/prisma/prisma/schema.prismaSocialAccount (server-only fields excluded from select: accessToken, refreshToken, tokenExpiresAt, platformUserId)

On this page