Client Library
TypeScript SDK
The official SDK for the Mesocratic Compliance Engine. Fully typed. Generated from our OpenAPI spec.
@mesocrats/mce-sdk
v1.0.0Package
@mesocrats/mce-sdk
License
MIT
TypeScript
Full types included
Node.js
>= 18.0.0
Installation
npm install @mesocrats/mce-sdkQuick Start
1import { MesocraticClient } from '@mesocrats/mce-sdk';23const client = new MesocraticClient({4 TOKEN: 'mce_live_your_api_key',5});67// Get your committee8const { data: committee } = await client.committees.getCommittee();910// Record a contribution11const { data: contribution } = await client.contributions.createContribution({12 contributor_id: 'uuid',13 amount_cents: 25000,14 date_received: '2026-03-06',15 contribution_type: 'individual',16});Services
CommitteesService
client.committeesManage your committee record. Create or retrieve the committee bound to your API key.
getCommittee(): Promise<{ data: Committee | null }>
createCommittee(body): Promise<{ data: Committee }>
ContributorsService
client.contributorsCreate and search contributor (donor) records with automatic match_key generation.
listContributors(page?, limit?, search?): Promise<{ data: Contributor[], pagination }>
createContributor(body): Promise<{ data: Contributor }>
ContributionsService
client.contributionsRecord contributions with automatic FEC limit enforcement, YTD aggregate tracking, and itemization.
listContributions(page?, limit?, startDate?, endDate?, contributorId?, itemized?): Promise<{ data: Contribution[], pagination }>
createContribution(body): Promise<{ data: Contribution & { aggregate: AggregateInfo } }>
getContribution(id): Promise<{ data: Contribution }>
DisbursementsService
client.disbursementsTrack committee expenditures with FEC-compliant categorization.
listDisbursements(page?, limit?, startDate?, endDate?, category?): Promise<{ data: Disbursement[], pagination }>
createDisbursement(body): Promise<{ data: Disbursement }>
ReportsService
client.reportsCreate and manage FEC filing reports with coverage period tracking.
listReports(status?, reportType?): Promise<{ data: Report[] }>
createReport(body): Promise<{ data: Report }>
ComplianceService
client.complianceLook up FEC contribution limits for your committee type and election cycle.
getComplianceLimits(): Promise<{ data: { committee_type, cycle, limits, itemization_threshold } }>
SystemService
client.systemHealth check endpoint. No authentication required.
getHealth(): Promise<{ status, version, timestamp, database }>
Typed Models
| Model | Description |
|---|---|
| Committee | Committee record with FEC ID, type, treasurer, and filing frequency |
| Contribution | Individual contribution with amount, date, itemization, and attestation flags |
| Contributor | Donor record with name, address, employer, occupation, and match_key |
| Disbursement | Expenditure record with payee, purpose, category, and optional receipt |
| Report | FEC filing report with coverage period, status, and filing deadline |
| AggregateInfo | Year-to-date contribution aggregate for a contributor |
| Limit | FEC contribution limits by committee type for the current cycle |
| Page | Paginated response page wrapper |
| Pagination | Pagination metadata: page, limit, total, total_pages |
| Error | API error response with error message string |
OpenAPI Specification
Machine-readable API description conforming to OpenAPI 3.1. Use it to generate client libraries, mock servers, or import into Postman, Insomnia, or any OpenAPI-compatible tool.
Coming Soon
Python SDK
Coming Soonpip install mesocrats-mce
Full Python client with type hints and async support. Targeting Q3 2026.
Ruby SDK
Coming Soongem install mesocrats-mce
Ruby gem with idiomatic API wrappers. Targeting Q4 2026.