Hopp til innhold
DocsSDKFeil og paginering

Feil og paginering

Oppdatert juli 2026·1 min

Hver feil kaster en typet MedalApiError med HTTP-status og en stabil kode; listeendepunkter paginerer med cursorer.

API-nøkler-fanen i personlige innstillinger, med én arbeidsområdenøkkel og Opprett-knappen.API-nøkler-fanen i personlige innstillinger, med én arbeidsområdenøkkel og Opprett-knappen.

Raskt eksempel

Typesjekket mot @medalsocial/sdk v1.3.0 (2026-07-20). En utgivelse som endrer en signatur stopper denne sidens bygg.

ts
import { Medal, MedalApiError } from '@medalsocial/sdk';

const medal = new Medal(process.env.MEDAL_API_KEY as string);

// Every error is a typed MedalApiError with an HTTP status and a stable code
try {
  await medal.posts.publish('post_does_not_exist');
} catch (error) {
  if (error instanceof MedalApiError) {
    console.error(error.status, error.code, error.message);
  } else {
    throw error;
  }
}

// List endpoints paginate with cursors — loop until has_more is false
let cursor: string | undefined;
do {
  const { data, pagination } = await medal.contacts.list({ limit: 100, cursor });
  console.log(data.length, 'contacts');
  cursor = pagination.next_cursor ?? undefined;
  if (!pagination.has_more) break;
} while (cursor);

MedalApiError

Thrown for every non-2xx response. status is the HTTP status; code is a stable machine-readable string; details carries endpoint-specific context when available.

ts
declare class MedalApiError extends Error {
  readonly status: number;
  readonly code: string;
  readonly details?: unknown;
}

PaginatedResponse<T>

List endpoints return data plus a pagination envelope. Pass next_cursor back as cursor until has_more is false.

ts
interface PaginatedResponse<T> {
  data: T[];
  pagination: { has_more: boolean; next_cursor: string | null };
}