Pitchfire

tRPC type-safe API

Voor TypeScript-projecten kun je rechtstreeks onze AppRouter-types importeren en compile-time gevalideerde calls maken. Geen handgeschreven types, geen OpenAPI-generators.

Installeren

pnpm add @pitchfire/types @trpc/client superjson

Client opzetten

import { createTRPCClient, httpBatchLink } from '@trpc/client';
import superjson from 'superjson';
import type { AppRouter } from '@pitchfire/types';

export const pitchfire = createTRPCClient<AppRouter>({
  links: [
    httpBatchLink({
      url: `https://${SLUG}.pitchfire.app/api/trpc`,
      transformer: superjson,
      headers: () => ({
        authorization: `Bearer ${process.env.PITCHFIRE_TOKEN}`,
      }),
    }),
  ],
});

Gebruik

// Volledig type-safe — Cmd+Click een procedure-naam voor de definitie
const { campaigns, pagination } = await pitchfire.campaign.list.query({
  status: 'ACTIVE',
  pageSize: 50,
});

const newCampaign = await pitchfire.campaign.create.mutate({
  name: 'Spring promo',
  status: 'PLANNED',
  budgetCents: 250000,
  budgetCurrency: 'EUR',
});

const suggestions = await pitchfire.ai.suggestions.query({
  status: 'PENDING',
  priority: 'HIGH',
});

Beschikbare routers

Alle 19 routers met hun procedure-namen:

  • workspace — list, current, switch, create, update, archive
  • team — list, invite, remove, updateRole
  • settings — tenant, updateTenant, updateCustomDomain, updateBranding
  • campaign — list, byId, create, update, archive, duplicate
  • asset — list, byId, create, update, delete
  • pillarPage — list, byId, create, update, delete
  • linkedinPost — list, calendar, byId, create, update, delete
  • mediaAsset — list, byId, create, update, delete
  • automation — list, byId, create, update, toggleActive, delete
  • leadScoring — list, create, update, delete
  • salesAsset — list, create, update, delete
  • event — list, upcoming, create, update, delete
  • advertising — connections, campaigns, totals, spendTimeline, campaignById
  • adCreative — list, byId, create, update, approve, delete
  • ai — suggestions, applySuggestion, dismiss, snooze, inject
  • dashboard — overview, spendByPlatform, campaignActivity
  • comment — list, create, delete
  • activity — list
  • billing — details, updateDetails, invoices, invoice

Voor elke procedure: .query() (lezen) of .mutate() (schrijven). Inputs en outputs zijn volledig getypeerd via Zod schemas in onze codebase.

Real-time updates

Voor live data (zoals advertising metrics) abonneer je op websocket-updates via Pusher-compatible kanalen — zie Webhooks.

tRPC API · Pitchfire