Skip to main content
CivicGate

← API reference

Type catalog

410 types · generated from the live schema

Queries and mutations are on the reference. Fields are collapsed by default — open a type to see them.

Objects 387

AccountabilityFact One verifiable fact in a member's track record (M09). NUMBERS + SOURCE ONLY. Never a judgment: value is the factual figure, caveat is the neutral context that keeps it from being read as an accusation, anchor deep-links to the fuller sourced section for that fact.
FieldType
key String! Stable machine key: participation | bills_sponsored | bills_enacted | party_unity | cross_party | positions | committees | stock_trades | documented_relationships.
label String! Short neutral label, e.g. "Roll-call participation".
value String Formatted display value (e.g. "96.2%", "12"); null when the fact isn't available for this member (coverage-honest — the UI shows "—", never a guess).
detail String Secondary factual context — the denominator or comparison baseline; null when none.
caveat String Neutral per-fact caveat — the context that prevents the number being read as a verdict (e.g. a missed vote may be excused / leadership / pairing).
available Boolean! False → no data for this member; the UI shows "—" and the coverage note, never a fabricated number.
anchor String In-page anchor or URL to the fuller sourced section for this fact (e.g. /people/:id#voting).
sourceRef Reference Provenance for this specific fact.
AccountabilityRecord Track record (M09) — one member's verifiable accountability facts, ASSEMBLED. Posture-critical: this is a gathering of sourced FACTS, never a score / grade / ranking-by-virtue. caveat is the plain-language neutral banner shown above the facts (context matters — a missed vote may be excused; a party-unity rate reflects agenda, not virtue; a disclosed trade or documented relationship is a required public filing, not evidence of wrongdoing). Non-members / members with no record resolve to isMember:false + an honest coverageNote.
FieldType
personId ID! The member's canonical slug (or the requested id for non-members).
name String!
isMember Boolean! True only for a member of Congress. False → the honest "no record" state (non-members carry no roll-call / sponsorship record to assemble).
congress Int The Congress the vote-based facts (participation / party-unity) cover, when known.
caveat String! The plain-language neutral caveat banner shown above the facts — these are verifiable public-record facts, presented without judgment; context matters and this is not a score.
coverageNote String! One honest line about overall coverage (what's assembled, and that a "—" means missing data, not zero).
facts [AccountabilityFact!]! The assembled facts, in display order. Coverage-honest: a fact with no data carries available:false and a null value (never a fabricated number).
AccountabilityRow One member's participation row for the /accountability index (M09).
FieldType
person Person!
participationPct Float Votes cast / recorded roll calls; null when the member's chamber coverage is inadequate.
recordedRollCalls Int!
missed Int!
coverage String!
AccountabilityScore Coverage-honest roll-call participation for one member (M09 F09.1/F09.2). Neutral-administrator posture: participation (votes cast) + missed (recorded absences), never a judgment. participationPct is null unless chamber coverage is adequate — read the coverage line and fall back to recorded/missed counts when it is.
FieldType
congress Int! The Congress this score covers (e.g. 119).
recordedRollCalls Int! Roll calls we have a recorded position for this member (their eligible set within our coverage).
chamberRollCalls Int The chamber's TRUE roll-call count for the Congress (denominator); null when not yet known.
missed Int! Recorded roll calls where the member did not vote (not_voting).
participationPct Float Votes cast / recorded roll calls (= 1 − missed/recorded); null when coverage is inadequate.
chamberMedianPct Float Median participation across members with adequate coverage in the same chamber (comparison baseline).
coverage String! Human coverage line, e.g. 'based on 412 of 480 recorded roll calls' (always shown).
sourceRef Reference Provenance — Congress.gov roll-call records for this member.
ActionSentiment Aggregated community sentiment on an action (users' views, NOT a CivicGate verdict).
FieldType
support Int!
oppose Int!
viewerReaction String The signed-in viewer's own reaction (support|oppose), or null.
AdminJob A scheduled ingest job (systemd --user timer) and its live state (M16 admin).
FieldType
key String!
unit String!
description String!
schedule String Schedule directive value (OnCalendar or OnUnitActiveSec), null when unreadable.
scheduleKind String Which directive the schedule came from: OnCalendar | OnUnitActiveSec.
state String! systemd ActiveState: active | inactive | failed | activating | …
subState String
running Boolean! True while the service is active/activating.
lastRunAt String When the service last started (ISO).
lastFinishAt String When the service last finished (ISO).
enabled Boolean! M16 pause switch: false = the job refuses to run, even when started by hand (not just its timer stopped).
priority String! low | medium | high — drives OS niceness and inter-item pacing, so heavy background work (e.g. audio transcription) can be told to yield to interactive load.
lastRun JobRun The most recent recorded run, including resource usage. Null before a job has ever recorded one.
pausedAt String When it was paused (ISO), null when running.
pausedBy String Who paused it.
pauseNote String Optional operator note recorded with the pause.
lastExitCode Int Exit code of the last run.
lastResultOk Boolean True when the last run exited 0.
nextRunAt String Next scheduled fire time (ISO).
execStart String The unit's ExecStart command line.
AdminPersonFact Admin view of a person background fact (M01/M11 wiki-edit) — the public PersonFact plus its id, sort order, and curated/editor provenance (curated = human-authored/corrected, protected from the Wikipedia ingest).
FieldType
id ID!
fact String!
category String!
sourceUrl String
sourceLabel String
sortOrder Int!
curated Boolean! True = human-editor authored/corrected (protected from the Wikipedia person-facts ingest).
editedAt String When this fact was last curated by an editor (ISO); null for untouched Wikipedia facts.
AdminService A long-running service (systemd --user daemon) and its live state (M16 admin).
FieldType
key String!
unit String!
description String!
port Int
state String!
subState String
running Boolean!
activeSince String When the service entered the active state (ISO).
AdminStance A stated stance row for the M23 curation admin (includes its id + issue name, unlike the public IssueStance).
FieldType
id ID!
issueId String!
issueName String!
personType String!
personId String!
personName String!
stance String!
note String
sourceUrl String
asOf String
internalUrl String!
AdminTask A row from the backfill worklist (backfill_tasks) for the admin worklist view.
FieldType
id String!
kind String!
ref String!
status String! pending | running | done | error.
attempts Int!
note String
lastError String
updatedAt String
AdminTaskCount A kind × status count over the backfill worklist.
FieldType
kind String!
status String!
count Int!
AgencyListRow One agency row for the /agencies index (F7).
FieldType
id ID!
name String!
externalCode String
totalCents Float
latestFiscalYear Int
awardCount Int!
internalUrl String!
AgencyProfile A federal agency's award profile (F7 / M04).
FieldType
id ID!
name String!
externalCode String USAspending toptier code.
totalCents Float Total federal outlays attributed to this agency in the latest year we hold (from the funding_flows agency rollup). Null if not ingested.
latestFiscalYear Int
series [FundingSeriesPoint!]! Agency outlay total per fiscal year (oldest→newest) — for the over-time chart.
awardCount Int! Number of award line items we hold for this agency (the bounded 'top awards' sample).
awardFiscalYear Int The fiscal year the award sample is drawn from (max we ingested).
topAwards [AwardRow!]! Top award line items (largest obligated first) — a bounded sample, not the full universe.
topRecipients [AgencyRecipientRow!]! Top recipients across the ingested awards (largest total first).
byState [AgencyStateRow!]! Award dollars by recipient state (largest first) — from the ingested award sample.
coverageNote String Honest coverage note (the awards are a top-N sample, not exhaustive).
sourceRef Reference
AgencyRecipientRow A recipient rolled up across one agency's ingested awards (F7).
FieldType
name String!
uei String
state String
totalCents Float!
awardCount Int!
AgencyStateRow Award dollars in one state, for an agency (F7).
FieldType
code String!
totalCents Float!
awardCount Int!
AlertChannels
FieldType
inApp Boolean!
email Boolean!
sms Boolean!
push Boolean!
AlignmentPeer One peer in a member's vote-alignment lists (C2, E18/M03).
FieldType
id ID! The peer's canonical slug/id (segment of internalUrl).
name String!
party String
agreePct Float! Share of shared yea/nay roll calls the two voted the same (0–1).
sharedVotes Int! Roll calls where both cast a yea/nay (the agreement denominator).
internalUrl String!
ApiBudgetRow One rate-limited external API's current budget usage (M16 admin, T29) — spend vs cap in the current window.
FieldType
provider String!
label String!
window String! hour | day — the window the counter resets on.
spent Int!
cap Int!
remaining Int!
ApiKey M16 — an API key. The SECRET IS NEVER RETURNED here: only the display prefix and usage metadata. The full key is shown exactly once, in CreateApiKeyResult.
FieldType
id ID!
name String!
keyPrefix String! First few characters, e.g. cg_live_a1b2 — enough to identify the key, useless as a credential.
scopes [String!]!
origins [String!]! Optional browser-origin allow-list. Empty = any origin.
lastUsedAt String
useCount Int!
createdAt String
revokedAt String
active Boolean! False once revoked.
AppConfigEntry One generic app-config row (admin) — namespaced key + JSON value (state_bills.*, people.*, funding.*).
FieldType
key String!
value JSON!
updatedAt String
ApprovalPoint One Gallup job-approval reading (opinion polling) — a date + approve/disapprove percentages.
FieldType
date String! Reading window start (ISO date).
approving Int! % approving.
disapproving Int! % disapproving.
AssistantAnswer M10 — the grounded assistant answer. answer is Markdown with inline [title](url) citations (empty when the AI is unavailable). sources are the CivicGate pages retrieved for the question (always present when relevant data exists, so the client can render source chips even if the model is warming up). grounded=true when CivicGate had matching data; available=false when no AI session is attached or the call failed (show note + sources). note is a coverage-honest explanation for degraded/limited answers.
FieldType
answer String!
sources [AssistantSource!]!
grounded Boolean!
available Boolean!
note String
jobId String Async job id: askAssistant submits the AI job and returns immediately with this id (null when degraded); poll assistantResult(jobId) for the answer. No held connection, no server-side timeout cap.
status String pending | ready | failed | warming. askAssistant returns pending (or warming/failed when degraded); assistantResult flips to ready (answer set) or failed.
AssistantSource M10 — a source the assistant grounded its answer on. url is the INTERNAL CivicGate page (e.g. /bill/hr-22-119 or /learn/electoral-college). type ∈ bill | issue | person | candidate | committee | policyArea | document | learn.
FieldType
type String!
label String!
url String!
AwardRow One federal award line item (F7).
FieldType
id ID!
piidFain String Human award id (PIID for contracts, FAIN for assistance).
recipientName String
recipientUei String
recipientState String
awardType String contract | grant | loan | direct_payment | other.
awardTypeCode String Raw upstream type label (e.g. "DEFINITIVE CONTRACT", "BLOCK GRANT (A)").
subAgency String
amountCents Float
outlayCents Float
naicsCode String
naicsDesc String
pscCode String
cfdaNumber String
description String
actionDate String
periodEnd String
fiscalYear Int
sourceRef Reference Upstream USAspending award page (provenance).
BackfillCounts
FieldType
bills Int!
donations Int!
entities Int!
edges Int!
billText Int!
committees Int!
BackfillJob Status of a backfill job (poll this after enqueuing).
FieldType
id ID!
state String! queued | active | completed | failed | cancelled.
progress String Current step, while running.
message String Result summary (done) or failure reason.
ok Boolean true/false when terminal, null while running.
BackfillJobRef Reference to a queued backfill job.
FieldType
jobId ID!
status String!
BackfillResult
FieldType
ok Boolean!
entityType String!
entityId ID!
features [String!]!
since String
counts BackfillCounts!
unsupported [String!]!
message String!
Ballot What a voter is being asked to decide, for one place (M08/E19).
FieldType
placeKey String! The narrowest place key this ballot was resolved for.
placeLabel String! Human label for that place — never a fabricated name.
level String! country | state | county | district
elections [BallotElection!]!
coverage BallotCoverage! How complete this ballot is. RENDER THIS — an unlabelled partial ballot is a wrong answer.
BallotCandidate
FieldType
id ID!
name String!
party String
slug String
internalUrl String Their CivicGate profile, or null when they have none — never a dead link.
incumbent Boolean!
status String incumbent | challenger | open_seat
imageThumb String
raisedCents Float
BallotContest
FieldType
id ID!
office String! The office as published, e.g. U.S. House PA-03.
title String!
level String! country | state | county | district — the level this contest is decided at.
placeKey String! The place key that put this contest on the ballot.
candidateCount Int!
candidates [BallotCandidate!]!
results [BallotResult!]! Certified returns for a PAST race, strongest first. Empty for an upcoming race by definition, and empty for most past ones: coverage is U.S. Senate 1976-2024 only, because the source guestbook-gates its House and President data. Write-in and scattering buckets appear as rows with no candidate link, so a winner share is never overstated by omitting them.
BallotCoverage What CivicGate actually holds for this place, per level. Computed from rows present, never assumed. A ballot missing state and local races looks identical to a complete one unless this is shown.
FieldType
federal String! complete | partial | none
state String!
local String!
note String! A plain sentence for the reader. Always populated.
BallotElection
FieldType
id ID!
slug String
name String!
date String! ISO date, UTC midnight of the true calendar date.
daysAway Int! Whole days from today. Negative for a past election.
type String
internalUrl String!
contests [BallotContest!]!
BallotResult One certified line of a past race's returns.
FieldType
candidateId ID Our candidate row, when the ingest matched one. Null for write-in buckets and unmatched names.
name String!
party String
votes Int
totalVotes Int
voteShare Float Percent of the total, as published.
won Boolean
isWriteIn Boolean!
internalUrl String
Bill
FieldType
id ID!
number String!
title String!
summary String
aiSummary String Neutral plain-language summary of the bill's full text (claude-broker). Null until generated.
aiSummaryAt String When the AI summary was generated (ISO).
BillAction One deduped action on a bill (M03).
FieldType
date String
text String!
type String
chamber String
parts [BillActionPart!]! The action text split into runs, so a committee mentioned in it can be linked. Concatenating every part text reproduces the action text exactly. Only the committee NAME carries an internalUrl — in Referred to the House Committee on Energy and Commerce, just the Energy and Commerce span. A name we cannot resolve confidently, or one that is ambiguous across chambers, stays plain text rather than risking a wrong link.
BillActionPart One run of a bill action's text. internalUrl set = render it as a link.
FieldType
text String!
internalUrl String
BillCommitteeAction
FieldType
motions [BillCommitteeMotion!]!
hearings [HearingListItem!]!
BillCommitteeMotion
FieldType
id ID!
title String
rawDescription String
motionType String
result String
yeas Int
nays Int
votesStatus String
hearingId ID!
hearingTitle String
occurredAt String
committeeName String
videoUrl String
internalUrl String!
sourceRef Reference
BillPage
FieldType
id ID!
number String!
title String!
summary String
summaryExcerpt String
introducedAt String
internalUrl String!
sourceRef Reference
textRef Reference
textStatus String available | unavailable (text not yet published) | null (not yet fetched).
introHtml String Sanitized 'IN THE SENATE…' block HTML.
bodyHtml String Sanitized bill/resolution body HTML (in-page anchors preserved).
status String Legislative milestone (M03): Introduced | Passed House | Passed Senate | To President | Became Law.
latestActionText String
latestActionAt String
detailFetched Boolean! True once sponsors/committees/actions/related have been pulled.
upvoteCount Int! User upvote/like count + whether the signed-in viewer has upvoted this bill.
viewerUpvoted Boolean!
sponsors [BillSponsor!]!
cosponsorCount Int! Number of cosponsors (sponsors excluded).
committees [Committee!]!
actions [BillAction!]! Deduped action timeline (newest first).
relatedBills [RelatedBill!]!
topicalBills [RelatedBill!]! Topical discovery (F1) — OTHER bills sharing the most legislative subjects with this one (distinct from the procedural relatedBills). relationship = 'shares N subjects'. Empty until subjects are ingested.
policyArea String CRS policy area (F3) — the single Congress.gov policy-area topic for this bill. Null until ingested.
subjects [String!]! Congress.gov legislative subjects (F3) — the many-per-bill taxonomy topics. Empty until ingested. Topics, not an economic-impact claim.
issues [String!]! Curated issue tags (F3/E18) for this bill. Empty when none tagged.
aiSummary String Neutral plain-language summary of the bill's full text (claude-broker). Null until generated.
aiSummaryAt String When the AI summary was generated (ISO).
rollCalls [BillRollCall!]! Per-roll-call member breakdown (F03.12) — every recorded roll call on this bill, how each member voted, and the tally by party. Empty until roll-call votes are ingested for the bill.
textVersions [BillTextVersion!]! Stored text versions (M03), newest first — the successive published texts. Empty until captured; drives the 'Text versions' diff section.
BillRollCall One recorded roll call on a bill (F03.12) — the whole-chamber outcome plus how each member voted, tallied by party. Neutral: a factual record of the vote.
FieldType
rollCall Int
chamber String
question String The question voted on, e.g. 'On Passage'.
result String Chamber outcome, e.g. 'Passed' | 'Failed' | 'Agreed to'.
votedAt String
sourceRef Reference Official roll-call record (Congress.gov / clerk / senate.gov).
totals RollCallTotals!
byParty [RollCallPartyTally!]! Per-party tally (D | R | I | …), ordered by size.
members [RollCallMemberVote!]! Every member's position on this roll call, for the expandable breakdown.
BillsPage A page of the bills index (M03) plus the total matching count and the full status vocabulary (for the filter dropdown).
FieldType
bills [BillSummary!]!
total Int! Total bills matching the current search/filters (across all pages).
statuses [String!]! Every distinct status across the whole index (not just this page) — powers a stable status filter.
sponsor BillsSponsorScope The member the list is scoped to when the sponsor argument was passed, resolved to their canonical identity so the page can NAME the scope rather than echoing the raw id back. Null when no sponsor filter is active OR when the id resolved to nobody (in which case the list is empty — an unresolvable id must never read as "no bills").
BillSponsor
FieldType
bioguideId ID!
slug String
name String!
party String
state String
district Int
relation String! sponsored | cosponsored.
isCosponsor Boolean!
imageThumb String Small square portrait for the listing avatar. Falls back to the full-size image, and is null when we hold no photo — the UI shows initials rather than a broken img.
BillsSponsorScope The resolved subject of a billsPage(sponsor:) scope (M03) — enough to label and link the filter, never a full profile.
FieldType
id ID! Canonical person slug (what /people/:id resolves).
name String!
internalUrl String!
bioguideId String!
BillSubjectListItem A Congress.gov legislative subject with its live bill count (M03) — one entry in the /bills subject facet.
FieldType
subject String!
billCount Int!
BillSummary A registered bill with its latest roll-call outcome (M03), for the /bills index.
FieldType
id ID!
number String!
title String!
congress Int!
introducedAt String
updatedAt String Last-updated date (Congress.gov updateDate; has a timestamp). Shown after the introduced date when it differs.
internalUrl String!
status String Result of the bill's latest roll call (its 'status') — Passed | Failed | Nomination Confirmed | Cloture Motion Agreed to | …
legislativeStatus String Legislative milestone (M03): Introduced | Passed House | Passed Senate | To President | Became Law.
policyArea String Congress.gov CRS policy area (one per bill).
totalYea Int Whole-chamber outcome totals for that roll call.
totalNay Int
totalNotVoting Int
votedAt String
chamber String house | senate.
rollCallCount Int! Number of roll calls on this bill.
issues [String!]! Issue slugs tagged to this bill (M23).
hasText Boolean! Full text pulled yet? (drives the listing 'text not pulled' marker).
hasDetail Boolean! Detail (sponsors/committees/actions/related) pulled yet? (drives the 'data not pulled' marker).
upvoteCount Int! User upvote/like count (engagement). Sort the list by popularity via billsPage sort=upvotes.
BillTextDiff A diff between two bill text versions (M03), computed over REFLOWED logical lines with word-level in-place change detection (so re-wrapping / renumbering doesn't explode into a full diff).
FieldType
from BillTextVersion
to BillTextVersion
rows [BillTextDiffRow!]!
added Int! Lines only in the new version / only in the old version.
removed Int!
changed Int! Lines edited in place (word-level change rows).
truncated Boolean! True when the diff was too large to align line-by-line and fell back to a coarse block diff.
note String Coverage-honest note (identical versions, missing text, or a truncation notice); null otherwise.
BillTextDiffRow One row of a bill text diff. op = equal | add | del | change (edited in place, word-level) | gap (a collapsed run of unchanged lines). For equal/add/del/gap read text; for change read left/right word-spans.
FieldType
op String!
text String Whole line for equal | add | del | gap rows (null for a word-level change row).
left [BillTextDiffSpan!] Old-side word spans for an in-place change (changed words have c=true).
right [BillTextDiffSpan!] New-side word spans for an in-place change.
BillTextDiffSpan One word-span of an in-place change row. t = token text (word or whitespace); c = changed?
FieldType
t String!
c Boolean!
BillTextVersion One published text version of a bill (M03) — a stage in its life (Introduced/Reported/Engrossed/Enrolled…).
FieldType
code String! GPO stage code (ih, rh, eh, es, enr…) — the diff selector key.
label String! Human label from Congress.gov ('Introduced in House', 'Enrolled Bill'…).
chamber String house | senate | null (derived from the label).
date String ISO date of this version (may be null upstream).
charLen Int! Length of the stored plain text (0 if the text wasn't reachable).
sourceRef Reference Upstream record for THIS version (Congress.gov/govinfo).
BillUpvoteResult
FieldType
upvoteCount Int!
viewerUpvoted Boolean!
BlockedUser
FieldType
user PersonSummary!
blockedAt String!
note String
BrokerStatus The AI broker master switch (M10/M16).
FieldType
enabled Boolean! False = every AI dispatch is refused. Work already in flight is allowed to finish.
updatedAt String When the switch was last changed, so the banner can say how long AI has been off.
updatedBy String Who turned it off, when we know.
note String! A plain sentence for the UI to render — never assembled in the client, so every surface says the same thing.
CacheStat
FieldType
name String!
size Int!
max Int!
ttlMs Float!
evicted Int! Entries dropped for exceeding max. Persistently high means max is too small for the key space.
expired Int! Entries dropped by the age sweep.
CandidateFinancials Campaign-finance totals (cents) from FEC — type breakdown.
FieldType
individualItemized Float
individualUnitemized Float
pac Float
party Float
selfFunded Float
CandidateListItem A candidate list row (M08/M04) for the /people Candidates tab — thin projection over the candidates table.
FieldType
id ID!
slug String
name String!
party String
state String Two-letter state (derived from the contest office/title or the person's entity).
office String The office / race this candidacy is for.
statusLabel String Humanized FEC status: Incumbent | Challenger | Open seat | null.
raisedCents Float FEC receipts raised this candidacy (cents).
cashOnHandCents Float Cash on hand (cents).
internalUrl String!
sourceRef Reference FEC record (provenance).
CandidatePage
FieldType
id ID!
name String!
slug String
party String
incumbent Boolean!
fecStatus String
receiptsCents Float Total raised (cents).
disbursementsCents Float Total spent (cents).
cashOnHandCents Float Cash on hand at period end (cents).
financials CandidateFinancials
financeLines [FinanceLine!]! Hierarchical Form-3 finance breakdown (receipts/disbursements → sub-lines), ordered for display.
financeByCycle [CycleFinance!]! Per-election-cycle finance history (newest first) — for the per-year finance view.
financialsCoverageDate String FEC reporting coverage end date (ISO).
financeUpdatedAt String When CivicGate last pulled this candidate's finance from FEC (ISO; null = never).
contest Contest
election Election
bioguideId String
politician Politician For incumbents: their full CivicGate politician record (bills, money, lens).
sourceRef Reference
CivicActivity E03/E06/E12 — a signed-in user's OWN, PRIVATE, NON-COMPETITIVE civic-activity summary. Counts, streak, and milestones are all computed from the user's own recorded rows (user_actions, user_favorites, bill_likes); nothing here compares them to another user, awards points, or fabricates a tally.
FieldType
hasActivity Boolean! True once the user has ANY recorded activity (an action, a follow, or an upvote).
counts CivicActivityCounts!
streak CivicActivityStreak Recency + streak over the user's recorded activity days. Null when there is no activity yet.
milestones [CivicMilestone!]! The factual participation milestones the user has crossed (earned only). Never a score or a rank.
note String Coverage-honest note (e.g. when there is nothing yet). Null when there is activity to show.
CivicActivityCounts
FieldType
repsContacted Int! Representatives contacted (user_actions actionType=contact) — real sends + prepared hand-offs.
votesUrged Int! Votes urged (user_actions actionType=urge_vote).
totalActions Int! All recorded civic actions (contacts + urged votes).
following Int! Entities the user follows (user_favorites).
billsUpvoted Int! Bills the user has upvoted (bill_likes).
monthsActive Int! Distinct calendar months (UTC) in which the user took an action — an honest breadth measure, NOT a score.
forumThreads Int! Forum threads the user has started (M13, from the separate forum service). 0 when none OR the forum is unreachable (coverage-honest — never fabricated).
forumPosts Int! Forum comments (posts) the user has authored (M13). 0 when none OR the forum is unreachable.
CivicActivityStreak
FieldType
activeSince String Earliest recorded activity (ISO) — "active since". Null when there is no activity.
lastActivityAt String Most recent recorded activity (ISO).
activeDays Int! Distinct calendar days (UTC) with any recorded activity.
currentStreakDays Int! Consecutive days (UTC) with activity ending today or yesterday — a REAL streak; 0 when not currently active.
CivicFeed E01 Live Civic Theater — the public activity feed (a page of items + an opaque cursor to fetch older ones).
FieldType
items [CivicFeedItem!]! The items. DEFAULT view (no kinds filter) = a diversified round-robin mix across signals; FILTERED view = strict newest-first.
nextCursor String Opaque cursor to fetch the next OLDER page; null when there are no more items. Grammar depends on mode: an OFFSET page index in the diversified default, an ISO timestamp when a kinds filter is applied. Pass it back verbatim as cursor.
diversified Boolean! True when this response is the diversified default (kinds mix, round-robin) rather than a strict reverse-chronological filtered timeline — lets the UI show a one-line note.
CivicFeedItem One item in the site-wide civic activity feed (E01). Flat shape over many signal kinds so the client renders one merged stream.
FieldType
kind String! The signal kind: new_bill | bill_action | roll_call | bill_text | state_bill | election_contest | judicial_opinion.
id ID! Stable id for the item (source-row id, prefixed by kind so ids never collide across sources).
timestamp String ISO timestamp used to order the merged stream (the civic event's own time). May be null.
title String! Neutral one-line headline (never editorializing).
summary String Optional short supporting detail (action text, roll-call result, bill title, etc.).
url String CivicGate-internal page for the item (bill → /bill/:id; state bill → /state-bill/:id; election → /elections/:id; judge → /judge/:slug).
ref Reference Upstream source record (Congress.gov / govinfo / OpenStates / CourtListener). Null when the row carries no source URL.
badge String! Short human label for the kind badge (New bill, Bill advanced, Roll-call vote, New bill text, State bill, New contest, Judicial opinion).
CivicMatches E16 — the signed-in user's personalized civic-matches digest. Distinct from the /dashboard aggregator (which just LISTS follows): this MATCHES the user's followed issues + location against bills, reps' documented positions, and elections. Every section is independently coverage-honest — an empty list + an honest note when data is thin, never a fabricated match.
FieldType
hasLocation Boolean! True when the user has a usable saved location (drives the reps + near-you sections).
state String The user's resolved state (2-letter), when known.
stateName String
stateHubUrl String The user's per-state civic hub (/state/:code), when a state resolved.
followedIssues [MatchedIssue!]! The issues the user follows (favorites, entity_type=issue) — the matching key for the bill + rep sections. Empty when they follow no issues.
billsForIssues [MatchedBill!]! Recent/active bills tagged to the issues the user follows (bill_issues ⋈ bills), newest action first. Empty when they follow no issues (or none have tagged bills yet).
repsOnIssues [MatchedRep!]! The user's OWN reps + any DOCUMENTED position (person_issue_stances) on the issues they follow. Coverage-honest: most reps carry "no documented position" — never an inferred stance.
nearYou [MatchedElection!]! Upcoming elections in the user's state (M08), soonest first. Empty when no location or no upcoming races.
act [MatchedAction!]! 1–2 concrete next actions drawn from the E02/E11 contact pipeline (contact your reps about a followed issue).
coverageNote String An honest top-level line when the digest is thin (no location / no follows); null when sections have data.
CivicMilestone
FieldType
id String! Stable id — used client-side to detect a newly-crossed milestone for a gentle acknowledgement.
label String! Neutral, factual label (e.g. "First representative contacted").
description String A one-line factual description of the threshold crossed.
achievedAt String When the milestone was crossed (ISO), best-effort from the row that crossed it. Null if not determinable.
CivicProfile
FieldType
userId ID!
username String
displayName String
bio String
joinedAt String
profileUrl String!
location ProfileLocation
interests [ProfileInterest!]!
positions [ProfilePosition!]!
connectionCount Int
stats CivicProfileStats!
visibility CivicProfileVisibility!
CivicProfileStats
FieldType
posts Int!
actions Int
favorites Int
subscribed Int
CivicProfileVisibility Which facets this viewer may see — lets an integrator tell 'hidden' from 'empty'.
FieldType
location Boolean!
interests Boolean!
positions Boolean!
actions Boolean!
favorites Boolean!
subscribed Boolean!
connectionCount Boolean!
CivicRole An internal CivicGate role granted to a user for ONE jurisdiction. Scope never cascades: a state moderator has no authority in a city inside that state.
FieldType
id ID!
userId String!
role String! admin | moderator | captain
level String! federal | state | county | city | district | zip | block
countryCode String
state String
countyFips String
placeGeoid String
districtKind String congressional | state_upper | state_lower
district String
zip String
regionLabel String
status String!
grantedBy String
grantedAt String
expiresAt String
note String
placeLabel String! Human summary of the jurisdiction, e.g. PA-3 (congressional).
CivicRoleCoverage
FieldType
level String!
roles [CivicRole!]!
CivicRoleSearch
FieldType
total Int!
users [CivicRoleUser!]!
CivicRoleUser
FieldType
userId String!
displayName String
username String
city String
state String
zip String
roles [CivicRole!]!
matchedBy String! Why this user matched the filter: role | profile | both. A self-declared profile place and an assigned jurisdiction are different facts and are never conflated.
Committee
FieldType
id ID!
name String!
slug String
internalUrl String!
CommitteeActiveMember
FieldType
slug String!
name String!
party String
count Int!
internalUrl String!
CommitteeBill
FieldType
id ID!
number String!
title String!
internalUrl String!
introducedAt String
status String Legislative milestone (M03).
sourceRef Reference Congress.gov record for this bill (per-item provenance).
CommitteeHearings
FieldType
upcoming [HearingListItem!]!
recent [HearingListItem!]!
totalMeetings Int!
totalRecordedVotes Int!
withVideo Int!
voteCoverage VoteCoverage
voteBehaviour CommitteeVoteBehaviour
CommitteeListItem One row of the /committees index.
FieldType
systemCode ID!
name String!
slug String
chamber String
committeeType String
parentSystemCode String
internalUrl String!
billCount Int!
recentBillNumber String
recentBillUrl String
recentBillAt String
CommitteeMember One member sitting on a committee (M03).
FieldType
bioguideId String!
name String!
party String
state String
role String Chair | Ranking Member | Member | Vice Chair | null.
internalUrl String!
image String Source/original portrait (may be a remote URL). Null when we have no photo.
imageThumb String Derived ~256px square portrait for the roster avatar; falls back to image.
CommitteePage A congressional committee (M03) — from the authoritative Congress.gov list, with its recent bills.
FieldType
systemCode ID!
name String!
slug String
chamber String House | Senate | Joint.
committeeType String Standing | Select | Joint | Subcommittee | …
parent CommitteeRef Parent committee (set when this is a subcommittee).
subcommittees [CommitteeRef!]!
internalUrl String!
sourceRef Reference
billCount Int! Total bills referred to this committee.
recentBills [CommitteeBill!]! Most-recent bills referred here (newest by latest action).
oversightSectors [String!]! Market sectors this committee's jurisdiction oversees (M05), from the sourced committee_jurisdiction map — powers the accountability cross-link (a member trading/funded in a sector this committee oversees). Empty when none mapped.
members [CommitteeMember!]! The members who sit on this committee (M03), leadership first. Empty until memberships are ingested.
CommitteeRef A lightweight committee reference (parent/subcommittee link, list rows).
FieldType
systemCode ID!
name String!
slug String
internalUrl String!
CommitteeVoteBehaviour How a committee votes, computed ONLY from the per-member breakdowns actually read. Always reports its denominator: a party-line rate over 5 of 60 votes would be a misleading number presented as a finding.
FieldType
votesAnalysed Int!
partyLineVotes Int!
partyLineRate Int Percent, or null when nothing has been read yet. Never a fabricated zero.
mostVotes [CommitteeActiveMember!]!
mostMotions [CommitteeActiveMember!]!
note String!
CommunityActivity E03 Layer B — CivicGate's COLLECTIVE civic momentum over a window. Every figure is an ANONYMIZED aggregate over real rows (user_actions, user_favorites, bill_likes); nothing here names, individually counts, or ranks a user against another. Anti-gaming counting rules: rep-contact + vote-urge metrics count only COMPLETED actions (status sent|handoff — failed attempts excluded) and DEDUPE repeats of the same (user, target) within the window, so re-sending can't inflate a total; follows count one row per (user, entity) (unfollow/refollow churn is not counted); participants is a COUNT of DISTINCT user ids and never exposes any id. Quiet windows show 0 honestly — never a fabricated tally.
FieldType
window String! The window covered: this_week (rolling 7 days) | this_month (rolling 30 days) | all_time.
windowLabel String! Human label for the window (e.g. "This week").
metrics CommunityMetrics!
mostFollowedBills [CommunityFollowedItem!]! Most-followed bills over the window (top few) — each an aggregate follower count linking to its internal page. Empty when none.
mostFollowedIssues [CommunityFollowedItem!]! Most-followed issues over the window (top few). Empty when none.
note String Coverage-honest note when the window is quiet (no activity). Null when there is activity to show.
CommunityFollowedItem E03 Layer B — one most-followed entity in a window. Carries an AGGREGATE follower count only; never who followed.
FieldType
entityType String! Entity kind — bill | issue.
entityId ID!
label String! Human label — a bill's number + title, or an issue's name.
internalUrl String! Internal link to the entity's CivicGate page.
followers Int! Number of follows recorded in the window — an aggregate, never identifying.
CommunityMetrics E03 Layer B — the anonymized aggregate counts for a window. Each is a real count over real rows; none identifies or ranks an individual.
FieldType
repsContacted Int! Distinct (participant, representative) contacts — completed only (sent|handoff), deduped per window.
votesUrged Int! Distinct (participant, bill) vote-urges — completed only (sent|handoff), deduped per window.
billsFollowed Int! Bills followed (user_favorites, entity_type=bill) in the window — one per (user, bill), no churn.
issuesFollowed Int! Issues followed (user_favorites, entity_type=issue) in the window.
peopleFollowed Int! People followed (user_favorites, entity_type=person) in the window.
billsUpvoted Int! Bills upvoted (bill_likes) in the window.
participants Int! Distinct participants — a COUNT of distinct user ids across all the above. The ids themselves are NEVER exposed.
ConflictSignal One materialized conflict/accountability signal (M05 → M09). Posture-critical: a documented FACT, never a verdict. confidence reflects data COVERAGE quality (high|medium), not a guilt score; coverageNote states what the count does and does not include. summary is a single neutral factual sentence; the section-level disclaimer ('A documented relationship is not evidence of wrongdoing') is rendered once, not per signal.
FieldType
id ID!
person Person The member this signal concerns — populated on the /conflicts directory; null on a member's own page (redundant there).
signalType String! Machine type, e.g. 'committee_trade_overlap'.
sector String Traded sector this signal concerns (defense|finance|health|energy|tech|telecom); null for non-sector signals.
title String! Short neutral label for the signal.
summary String! One plain factual sentence describing the documented relationship.
confidence String! Data-coverage quality: high (amounts known) | medium. NOT a severity or guilt score.
coverageNote String! Honesty string — what the underlying counts include and exclude.
committees [SignalCommittee!]! The overseeing committee(s) this member sits on that create the overlap.
tradeCount Int Disclosed trades in this sector we could count (sector coverage is partial).
amountHighCents Float Sum of the high end of the disclosed amount RANGES (cents). Float — totals exceed 32-bit.
firstTrade String Earliest / latest counted trade date (ISO).
lastTrade String
tickers [String!]! Distinct tickers involved (capped).
sourceRefs [Reference!]! Provenance — the committee record(s) + the member's disclosure filings.
CongressCollabEdge One undirected strong tie in the collaboration graph (M09/E18).
FieldType
a ID! Bioguide id of endpoint A (a < b lexicographically).
b ID! Bioguide id of endpoint B.
weight Int! Raw tie strength: # bills where one member is the primary sponsor and the other a cosponsor (either direction).
affinity Float! Normalized tie strength: weight / sqrt(deg(a)*deg(b)) — down-weights the busiest members so real cliques surface.
CongressCollabGraph Congress co-sponsorship COLLABORATION GRAPH (M09/E18, "who helps whom"). Precomputed nodes + strong-tie edges + header meta. Neutral-administrator posture: collaboration clusters from public sponsorship data, NOT official caucuses. Coverage-honest: empty (meta:null, nodes:[], edges:[]) until the ingest has run.
FieldType
meta CongressCollabMeta Header stats + run parameters for this Congress's graph; null until the ingest has run.
nodes [CongressCollabNode!]! The member nodes (current members with at least one strong tie), each with its community + laid-out (x,y).
edges [CongressCollabEdge!]! The undirected strong ties (each stored once), carrying raw weight + normalized affinity + the two node ids.
CongressCollabMeta Header stats + parameters for a collaboration graph (M09/E18).
FieldType
congress Int! The Congress this graph covers (e.g. 119).
chamber String The scope the graph was built over: house | senate | both.
nodeCount Int!
edgeCount Int!
communityCount Int! Number of Louvain collaboration communities detected.
minWeight Int! Min raw weight (# bills of mutual help) an edge needed to be kept in the stored graph.
topK Int! Top-K strongest ties kept per node in the stored graph.
computedAt String When the graph was last recomputed.
sourceNote String! Provenance — the graph is derived from Congress.gov bill sponsorship/cosponsorship records.
CongressCollabNode One member node in the collaboration graph (M09/E18).
FieldType
id ID! The member's bioguide id (stable node key).
slug String The member's canonical slug (segment of internalUrl); falls back to the bioguide id.
name String!
party String Party at compute time (D|R|I|…).
chamber String Chamber (house|senate).
state String
community Int! Louvain community id — collaborators cluster into the same community (stable per run, NOT an official caucus).
x Float! Force-directed layout coordinate, normalized to 0..1000.
y Float!
degree Int! # of distinct collaborators this member has in the stored (strong-tie) graph — the node's rendered size.
sponsoredCount Int! Bills this member primary-sponsored this Congress.
cosponsoredCount Int! Bills this member cosponsored this Congress.
weightTotal Int! Total raw collaboration weight over ALL partners (before the strong-tie filter).
internalUrl String! The member's CivicGate profile page.
CongressToday
FieldType
today [HearingListItem!]!
upcoming [HearingListItem!]!
recent [HearingListItem!]!
house Int!
senate Int!
note String Set on a quiet day, so the widget explains itself instead of rendering an empty box.
Connection
FieldType
user PersonSummary!
connectedAt String
subscribed Boolean! Do I subscribe to their updates? Accepting a connection subscribes by default; you can turn it off and stay connected.
ConnectionPage
FieldType
items [Connection!]!
nextCursor String
total Int!
ConnectionRequest
FieldType
user PersonSummary!
message String
requestedAt String!
direction String! in = they asked me; out = I asked them.
ConnectionState none | pending_out | pending_in | accepted | blocked | self
FieldType
state String!
subscribed Boolean! True when I subscribe to them.
canRequestAfter String Set when a declined request is still inside the 30-day cooloff.
ContactSendResult Result of a contact send/handoff (E11 → E02). status ∈ sent (CivicGate emailed the official) | handoff (no auto-send channel — the client delivers the prefilled message) | failed (send errored; degrade to compose-assist). channel names the path used; messageId is the contact_messages log id when written.
FieldType
status String!
channel String!
messageId ID
detail String
ContactTemplate E11 — a compose-assist message template (contact your rep). subjectTpl/bodyMd carry {{variables}} the client resolves against page context (member/bill/issue/user); variables lists the variable names used. Phase 1: read-only, compose-assist only.
FieldType
slug ID! Stable slug id, e.g. "urge-vote-bill".
title String!
category String! Where it applies: general | bill | vote | issue.
scope String! Target jurisdiction: federal | state | any.
subjectTpl String Subject-line template ({{vars}}); null for body-only templates.
bodyMd String! Markdown body template ({{vars}}).
variables [String!]! The variable names the template references (e.g. "member.name", "bill.number").
stance String E08 community template: which stance it frames (support | oppose | neutral). Null for the built-in/admin templates.
community Boolean True when this template was shared by a community member (community_templates) rather than seeded.
Contest
FieldType
id ID!
kind String!
title String!
office String
description String
candidates [ContestCandidate!]!
sourceRef Reference
ContestCandidate
FieldType
id ID!
name String!
slug String
party String
incumbent Boolean!
fecStatus String FEC status: incumbent | challenger | open_seat.
receiptsCents Float Total raised (cents).
internalUrl String!
CosponsorLink A co-sponsorship coalition link (M03) — a member the subject frequently co-sponsors bills with.
FieldType
bioguideId String!
name String!
party String
state String
chamber String
internalUrl String!
sharedBills Int!
crossParty Boolean! True when this partner is in a different party (a bipartisan ally).
CountryIndicatorRow E17 — one country's ranked row for the selected indicator (M06/E17 Global layer). Coverage-honest.
FieldType
rank Int! Rank by value (1 = largest value); the report notes that ranking is descending by value, not an editorial 'best'.
countryCode String! ISO alpha-3 country code (e.g. USA).
countryName String!
value Float!
year Int! Observation year of the value.
isUS Boolean! True for the United States (highlighted in the UI so the reader sees where the US sits).
sourceRef Reference
CountryIndicatorValue E17 — one indicator's value for a single country, with its rank among countries (M06/E17). Coverage-honest.
FieldType
code String!
name String!
unit String
value Float!
year Int!
rank Int Rank among countries by value (1 = largest); descending by value, not an editorial 'best'.
outOf Int Coverage denominator — how many countries have a value for this indicator.
sourceRef Reference
CountryProfile E17 — a single country's civic snapshot across the ingested World Bank indicators. GATED — coverage-honest.
FieldType
code String! ISO alpha-3 country code (e.g. USA).
name String!
available Boolean! False until this country has ingested rows; the UI then renders an honest placeholder.
indicators [CountryIndicatorValue!]! The country's indicators, in a stable display order. Empty when unavailable.
note String Honest coverage / scope note.
sourceRef Reference
County A county / parish / borough / planning region, from the authoritative Census county table (M02/M06).
FieldType
geoid ID! 5-digit GEOID = state FIPS + county FIPS (e.g. "42101"). The canonical county key.
name String! Census name verbatim, including the type word: "Philadelphia County", "Orleans Parish", "Richmond city".
shortName String! The name with the type word removed ("Philadelphia"). Virginia independent cities keep theirs, because "Richmond city" and "Richmond County" are different places.
state String!
stateName String
stateFips String!
countyFips String!
status String! current | retired. A retired county (Connecticut pre-2022) still resolves, because historical records are keyed on its code.
internalUrl String!
sourceUrl String! Census QuickFacts for this county.
CountyPage A county page (M02/M06). Coverage-honest: the ZIP list is what has been resolved so far, never a claim to be complete.
FieldType
county County!
zips [String!]! ZIPs known to be in this county — opportunistic, from the ZIP geocode cache.
coverageNote String Says in words what the ZIP list is and is not. Null when there is nothing to qualify.
siblings [County!]! Sibling counties in the same state, name-ordered.
CreateApiKeyResult The ONLY place a full API key is ever returned. Show it, let the user copy it, then forget it — CivicGate stores a hash and cannot show it again.
FieldType
key ApiKey!
secret String! The full secret, shown exactly once.
CrpIndustryRow One canonical CRP industry aggregated across members for a cycle (M04, OpenSecrets). Cite OpenSecrets.
FieldType
code String! CRP industry code (e.g. F10) — the canonical id.
name String!
sector String Our six-bucket mapping (defense|finance|health|energy|tech|telecom) — null when none applies.
toCandidatesCents Float! Total attributed to federal candidates across ingested members for the cycle.
memberCount Int! Members contributing to this total (coverage denominator).
internalUrl String Internal CivicGate link for the industry row (e.g. /industries).
sourceRef Reference
CycleFinance One election cycle's campaign finance for a candidate (per-year finance history).
FieldType
cycle Int!
receiptsCents Float
disbursementsCents Float
cashOnHandCents Float
coverageEndDate String
sourceUrl String
financeLines [FinanceLine!]!
DefenseContractorRow One defense prime contractor's federal money in a year. prime is the curated bucket the recipient matched; label is the raw USAspending recipient name.
FieldType
id ID!
entityId ID USAspending recipient id — matches fundingSeries recipient ids and the internal recipient page.
prime String Curated prime bucket this recipient matched (e.g. Lockheed Martin), or null.
label String! Raw recipient name as reported to USAspending.
fiscalYear Int!
amountCents Float!
internalUrl String Internal CivicGate recipient profile, when the recipient id is known.
sourceRef Reference
DefenseContractors Top defense prime contractors (M24) for one fiscal year — recipient rows filtered to the major primes, with the years available and provenance (USAspending).
FieldType
fiscalYear Int! Fiscal year these rows cover.
availableYears [Int!]! Fiscal years we have national recipient data for (newest first).
totalCents Float Sum of the listed contractors' federal money this year (the curated top-N, not all DoD spend).
contractors [DefenseContractorRow!]! The contractor rows, largest first.
sources [Reference!]!
Disbursement One disclosed committee payment (FEC Schedule B, M04) — a payee/vendor and amount. Documented ledger, not an accusation.
FieldType
id ID!
committeeId String!
payeeName String
payeeCity String
payeeState String
purpose String
category String
amountCents Float!
disbursedAt String
sourceRef Reference The FEC disbursements record.
DistrictDemographics Per-congressional-district demographics (M06) from the U.S. Census ACS 5-year estimates. Coverage-honest: every stat is nullable — a missing estimate is null (rendered as an em dash), never fabricated.
FieldType
population Int Total population.
medianHouseholdIncomeCents Float Median household income, in cents (dollars from the ACS multiplied by 100).
medianAge Float Median age, in years.
bachelorsPlusPct Float Share of the population age 25+ holding a bachelor's degree or higher (percent, 0-100).
race DistrictRaceEthnicity Race + Hispanic-origin population breakdown.
vintage Int The ACS 5-year vintage (end year), e.g. 2023.
sourceRef Reference Provenance — the Census ACS data page.
DistrictFundingPoint Federal funding total for one congressional district within a state, in a fiscal year (M06/F15 in-state choropleth). district = CD number as a string ("0" = at-large), matching the SVG district geometry keys.
FieldType
district String!
amountCents Float!
internalUrl String!
fiscalYear Int!
DistrictProfile A congressional-district hub (M02/M06/M08) — the district's federal officeholders, federal money flowing to it, its upcoming elections, and Census ACS 5-year demographics (M06).
FieldType
id ID! Lowercase state + district, e.g. "pa-12" — the /district/:id segment.
state String! Two-letter state code (uppercase).
number Int! House district number.
name String! Human name, e.g. "Pennsylvania's 12th District".
senators [Person!]! The state's two current U.S. Senators (chamber=senate).
representative Person The current U.S. House member for this state+district (null if vacant / not yet ingested / at-large mismatch).
fundingReceived [FundingRow!]! Federal money flowing to the district (USAspending, category='cd'), one row per fiscal year (latest first).
fundingSeries [FundingSeriesPoint!]! Total federal money to the district per fiscal year (oldest→newest) — for the over-time chart.
upcomingElections [Election!]! Upcoming elections touching this state/district (M08), soonest first.
pastElections [Election!]! Past elections touching this state/district (M08), most recent first — links to each election's page.
sources [Reference!]! Aggregated provenance — the members' Congress.gov pages, USAspending, and election sources.
demographics DistrictDemographics Census ACS 5-year demographics for the district (M06). Null when not yet ingested for this district.
internalUrl String!
DistrictRace One House district's race for an election year (M08) — the contest(s) with candidates, plus the district's federal funding for context.
FieldType
year Int!
state String!
district Int!
title String! Human title, e.g. "U.S. House — Texas District 10".
contests [Contest!]! General + primary contest(s) for the race (each resolves its candidates).
fundingReceived [FundingRow!]! Federal money to the district by fiscal year (latest first) — same data as the district hub.
fundingSeries [FundingSeriesPoint!]! District funding per fiscal year (oldest→newest) — for the over-time chart.
DistrictRaceEthnicity Population counts by race for a district, plus Hispanic origin. NOTE: hispanic is a Census ethnicity cross-cut (people of ANY race) and does not sum with the race buckets. Each field is nullable (coverage-honest).
FieldType
white Int
black Int
native Int
asian Int
pacific Int
other Int
twoPlus Int
hispanic Int Hispanic or Latino origin (an ethnicity cross-cut of any race — not a race bucket).
DocSection
FieldType
id ID!
title String!
Document A long-form reference document (M11) — rendered HTML + a section index for the on-page nav.
FieldType
id ID!
title String!
html String! Cached HTML (marked render of the stored markdown, with heading ids).
sourceUrl String
updatedAt String
sections [DocSection!]! Top-level (h2) sections, for the left index.
Donation
FieldType
id ID!
donorName String!
amountCents Int!
occurredAt String!
sourceRef Reference Upstream FEC filing / receipt reference.
DrugSpending CMS drug spending (M21) for one program + year — the top drugs by total program spend, with the years available and provenance. Medicaid figures are state-administered and partial (coverage-honest).
FieldType
program String! part_d | medicaid.
programLabel String! Human label — Medicare Part D | Medicaid.
year Int!
availableYears [Int!]! Years we hold drug-spending data for (newest first) — powers the year dropdown.
totalSpendingCents Float Total program spend across ALL ingested drugs this year (cents) — a coverage figure, not the national total.
drugCount Int! Distinct drugs ingested for the year.
drugs [DrugSpendingRow!]! Top drugs by total program spend this year.
sources [Reference!]!
DrugSpendingRow One drug's program spending for a year (M21). Cents are Float (totals exceed 32-bit). yoyPct is null when no prior-year figure exists.
FieldType
id ID!
drugName String!
genericName String
manufacturer String
totalSpendingCents Float
avgSpendPerUnitCents Float Weighted average spend per dosage unit (cents).
claimCount Float
prevYearSpendingCents Float Prior-year total program spend (cents), for the YoY delta. Null if the drug had no prior-year spend.
yoyPct Float Year-over-year percent change in total spend (e.g. 12.4 = +12.4%). Null when there is no prior year.
sourceRef Reference
Election
FieldType
id ID!
slug String
name String!
date String!
type String!
jurisdiction Jurisdiction
contestCount Int!
internalUrl String!
sourceRef Reference
ElectionAlertStatus Whether a user gets election reminders for a place, and exactly what they would receive.
FieldType
registered Boolean!
jurisdictions [String!]! The jurisdictions the user follows that are relevant to this place (e.g. us, us-pa).
stateCode String
placeLabel String
upcoming [UpcomingElection!]! Elections that WOULD reach them — shown before registering too, so the offer is concrete.
offsets [ReminderOffset!]!
channels AlertChannels!
note String Set when something would stop delivery actually working — e.g. email switched off in settings.
ElectionExplorer The elections explorer's available filters (M08) — the year set, the states with races in the chosen year, and (when a state is chosen) that state's House districts + whether it has a Senate race.
FieldType
year Int! The resolved election year (defaults to the latest we hold).
years [Int!]! All years we hold data for (newest first) — the year dropdown.
states [ElectionStateOption!]! States with federal races in the chosen year — the state dropdown.
state String The chosen 2-letter state (null if none chosen).
stateName String The chosen state's full name (null if none chosen).
districts [Int!]! House district numbers with a race in the chosen year for the chosen state (ascending). Empty if no state chosen.
hasSenate Boolean! True if the chosen state has a U.S. Senate race in the chosen year.
ElectionIcs
FieldType
filename String!
body String!
ElectionOfficial An election official (M08/E19) — WHO runs elections at a tier. state scope = the chief election official (usually the Secretary of State; Lt. Governor in AK/UT; a board/commission executive in a few states) + the state election director. county/municipal scope carry a jurisdiction. Coverage-honest: name may be null (office known, current holder unsourced) — the UI renders "—" with the office link, never a fabricated person. Every row carries a source (sourceRef).
FieldType
id ID! Underscore slug id (e.g. ga_secretary_of_state).
scope String! state | county | municipal.
role String! chief_election_official | state_election_director | local_election_official.
roleLabel String! Humanized role label (e.g. "Chief election official").
name String Current officeholder — NULL when the office is known but the holder is unsourced (coverage-honest).
title String Office title, e.g. Secretary of State, Lieutenant Governor, State Election Director, County Clerk.
officeName String The office/agency, e.g. "Georgia Secretary of State".
state String! 2-letter state postal (uppercase).
stateName String! Full state name (from the code).
jurisdiction String County/municipality name for local scope; null for state scope.
email String
phone String
website String Official office URL.
sourceRef Reference Provenance — the upstream page this row was sourced from.
ElectionPage
FieldType
id ID!
slug String
name String!
date String!
type String!
jurisdiction Jurisdiction
contests [Contest!]!
sourceRef Reference
ElectionStateOption A state option for the elections explorer state dropdown (M08).
FieldType
code String!
name String!
ElectionWatch Election Watch (E19) — neutral cycle-at-a-glance. Factual ballot counts + notable races by neutral signals only (never ratings or win-probability).
FieldType
cycle Int! The resolved cycle (election year).
cycles [Int!]! Even election years we hold candidate data for (newest first).
houseSeatsUp Int! U.S. House seats on the ballot this cycle (all 435 in a general even year; 0 otherwise).
senateSeatsUp Int U.S. Senate seats regularly up this cycle (the Senate class), when known for the cycle; null if unknown.
governorshipsUp Int Governorships regularly up this cycle, when known; null if unknown.
raceCount Int! Distinct federal races we hold candidate data for this cycle.
candidateCount Int! Federal candidates on file this cycle.
ballotNote String! A plain, factual sentence describing what is on the ballot this cycle.
coverageNote String! A coverage-honest sentence about how much candidate/finance data is loaded.
notableRaces [ElectionWatchRace!]! Races surfaced by neutral factual signals only, richest-funded first.
sourceRef Reference
ElectionWatchCandidate
FieldType
id ID!
name String!
party String
incumbent Boolean!
fecStatus String FEC status: incumbent | challenger | open_seat.
raisedCents Float Total raised (cents); null when unknown.
cashOnHandCents Float Cash on hand (cents); null when unknown.
internalUrl String!
ElectionWatchRace A single race surfaced in Election Watch, with its candidates and the neutral factual signals that surfaced it.
FieldType
raceKey String!
office String! U.S. House or U.S. Senate.
state String! 2-letter state code.
stateName String!
district Int House district number (null for Senate).
title String!
signals [String!]! Neutral factual signals, e.g. Open seat, Contested primary, High fundraising. Never a rating or prediction.
totalRaisedCents Float Sum of candidate receipts for the race (cents); null when no finance is on file.
candidateCount Int!
candidates [ElectionWatchCandidate!]!
internalUrl String! Explorer link for the race.
districtUrl String District hub link (House races only).
EntityEngagement Like / favorite / subscribe state for one entity of any type (M16/E03/E04).
FieldType
entityType String!
entityId ID!
likeCount Int! Total likes across all users.
viewerLiked Boolean! Whether the signed-in viewer has liked it (false when signed out).
favorited Boolean! Whether the viewer has STARRED it. Favoriting also subscribes.
subscribed Boolean! Whether the viewer follows it for updates. True for a favorite, or for a subscribe-only follow.
EntityTypeCount One entity type present in a follow list, with how many rows it holds — the filter chips for the favourites / upvotes / subscriptions managers.
FieldType
entityType String!
label String! Plural display name from the subject catalog (@cg/core/feed); the raw type when it is not catalogued.
count Int!
Favorite
FieldType
entityType String!
entityId ID!
label String! Human label — a person's name, a bill's number + title, a fully resolved place name. Falls back to the raw id when nothing on file matches (see resolved); NEVER a fabricated name.
url String Internal link to the favorited entity. Null when the type has no page — the UI then renders the label as plain text rather than a dead link.
resolved Boolean! False when the id matched no row and label is therefore the raw id. Lets the UI say so instead of implying we know what this is.
createdAt String
FavoritePage One page of the signed-in user's starred entities (M16/E04).
FieldType
items [Favorite!]!
total Int! Rows matching the CURRENT types/search filter — the honest denominator for a load-more control.
limit Int!
offset Int!
hasMore Boolean!
types [EntityTypeCount!]! Every entity type in the user's FULL list with its count, unaffected by the current type filter — otherwise unticking a hidden type would be impossible.
note String Non-null ONLY when the answer had to be bounded, stating the bound in words. A silently truncated list reads exactly like a complete one.
FeedCatalog M17 — the self-describing filter catalog.
FieldType
subjectTypes [FeedSubjectType!]!
eventTypes [FeedEventType!]!
groups [FeedGroup!]!
FeedEvent M17 — one update about one subject. Title/body are rendered at WRITE time, so a feed read never joins out to source tables (which is what makes the per-subject cache a complete answer).
FieldType
id ID! Deterministic id: <subjectType>:<subjectId>:<eventType>:<key>.
subjectType String! What the update is about — person | bill | state_bill | user | issue | committee | election | …
subjectId ID! The subject's canonical id (a person's slug, a bill's id, a user's id).
eventType String! The kind of change (bill_status, sponsored_bill, user_post, …). See feedCatalog.eventTypes.
category String Coarse prefs bucket (bills / people / funding / community …).
title String! One-line headline, e.g. "Ted Cruz introduced a bill".
body String Optional detail line.
url String Internal CivicGate URL for the thing that changed (the bill, the opinion, the post).
subjectLabel String Human label for the subject itself ("Ted Cruz", "HR 22").
subjectUrl String Canonical internal page for the subject.
meta JSON Rendering hints (bill number, vote position, post kind). Never authority — the title/body are.
occurredAt String! When the change HAPPENED (the source record's own timestamp), not when CivicGate noticed it.
actorUserId String Set for user-authored events (posts); null for ingested/system events.
eventLabel String Display metadata for the event type (label + glyph), resolved from the shared catalog.
eventIcon String
FeedEventType
FieldType
type String!
category String!
label String!
description String!
subjects [String!]! Subject types this event can fire for.
icon String!
notifies Boolean! False = feed-only; this event never generates a bell/email notification.
FeedGroup
FieldType
group String!
label String!
FeedPage A page of feed events with an opaque cursor.
FieldType
events [FeedEvent!]!
nextCursor String Pass back verbatim as filter.cursor to get the next (older) page. Null when there is no next page.
hasMore Boolean!
source String! Where this page was served from — cache (every subject already warm) | db-fill (warmed some subjects from Postgres on the way) | db (bypassed the cache: a deep page, or an oldest-first sort). Exposed so cache behavior is observable, not folklore.
subscriptionCount Int! How many subscriptions the fan-in covered (after filters). 0 explains an empty feed honestly.
FeedSubjectType
FieldType
type String!
group String!
label String!
plural String!
FeedSubscription M17 — one thing the user follows for updates.
FieldType
subjectType String!
subjectId ID!
label String Resolved display name; falls back to the id when the subject has no label on file (coverage-honest).
url String Canonical internal page for the subject. Null when the subject type has no page.
resolved Boolean! False when the id matched no row and label is therefore the raw id.
group String Filter family: people | bills | users | civic.
favorite Boolean! True when this subject is ALSO starred. Favorite and subscription are independent flags on one row.
createdAt String When the follow was created.
lastEventAt String Newest event for this subject, if any — lets the management UI show 'last update' without a second query.
FetchBillResult
FieldType
ok Boolean!
id ID!
message String!
FinanceLine One row of the hierarchical Form-3 campaign-finance breakdown (cents). parentKey null = a top-level root.
FieldType
key String!
parentKey String
label String!
amountCents Float!
FinanceSignal A campaign-finance integrity signal (M05) over disclosed FEC toplines — a committee or candidate, a neutral 'worth a look' figure, and the legal/context tag. Not a verdict.
FieldType
id ID!
entityType String! committee | candidate.
entityRef String! The committee id or candidate slug this concerns.
entityName String Display name of the committee/candidate.
entityUrl String Internal CivicGate page for the entity (/pac/:id or /people/:slug).
signalType String! Machine type: pac_low_efficiency | leadership_pac_share | self_funding_share.
title String! Short neutral label.
summary String! One plain factual sentence + the innocent-explanation framing.
legalTag String! reportable | worth_a_look | legal_low_transparency | context — the legality axis, so legal patterns are never shown as accusations.
confidence String! Data-coverage quality: high | medium. NOT a severity or guilt score.
coverageNote String! Honesty string — the timing/self-report caveat.
cycle Int Reporting cycle.
amountCents Float Headline dollar figure (cents, Float) — disbursements for a PAC, receipts for a candidate.
pct Float The ratio this signal turns on (efficiency % or self-funding %).
sourceRefs [Reference!]! Provenance — the FEC filing(s).
FundingCategory A funding breakdown option (agency / budget function / state / recipient).
FieldType
id ID!
name String!
kind String!
description String
colorToken String
FundingCountry US foreign-aid profile for one country (ForeignAssistance.gov).
FieldType
code ID!
name String!
fiscalYear Int!
availableYears [Int!]!
totalDisbursedCents Float Disbursements (money actually paid out) in the latest year.
totalObligatedCents Float Obligations (money committed) in the latest year.
rank Int Rank among all countries by disbursement this year (1 = most).
countryCount Int How many countries received disbursements this year.
shareOfTotalPct Float This country's share of total US foreign-aid disbursements this year (percent).
series [FundingSeries!]! Disbursements + obligations as annual series for the chart.
sources [Reference!]!
FundingRow One breakout row (an agency or budget function) of government funding for a fiscal year.
FieldType
id ID!
entityId String Stable entity id for this category (agency_id | program_id | place_code | recipient_id) — the key that matches fundingSeries ids, for linking a row to its over-time line.
label String!
category String! agency | budget_function.
fiscalYear Int!
amountCents Float!
internalUrl String CivicGate-internal detail page (null in P0 — detail pages land in P1).
sourceRef Reference
note String Neutral 'what this funds' note (M10 AI layer), present on budget-function rows once generated.
FundingSeries A named time series (one entity's funding across fiscal years) for the chart.
FieldType
id ID!
label String!
points [FundingSeriesPoint!]!
FundingSeriesPoint
FieldType
fiscalYear Int!
amountCents Float!
FundingState A state's federal funding profile (place of performance).
FieldType
code ID!
name String!
fiscalYear Int!
totalCents Float
availableYears [Int!]!
topRecipients [FundingRow!]! Top recipients (organizations) of federal money in this state, latest year.
topCounties [FundingRow!]! Top counties/areas within the state by federal spending, latest year.
topDistricts [FundingRow!]! Federal spending by congressional district in the state (the finest clean geography), latest year.
series [FundingSeriesPoint!]! Total-by-year series for the chart.
stateFinanceYear Int The census year for the state-government finance figures (differs from the federal fiscal year).
stateRevenue [FundingRow!]! State-government revenue by source (Census), latest census year.
stateExpenditure [FundingRow!]! State-government spending by function (Census), latest census year.
revenueSeries [FundingSeries!]! Revenue-by-source over time (Census years) — one series per source, for the over-time chart.
expenditureSeries [FundingSeries!]! Spending-by-function over time (Census years) — one series per function (allocation over time).
people [StatePerson!]! The state's officeholders + candidates with money received per year (governor/senators/reps/candidates).
peopleMoneySeries [FundingSeries!]! Total money received per year, one series per person-type (for the money-over-time chart).
sources [Reference!]!
FundingSummary Government-funding topline (M04) for a fiscal year. Cents are Float (totals exceed 32-bit). Nulls are coverage-honest.
FieldType
fiscalYear Int!
totalOutlaysCents Float Sum of federal agency outlays for the year (USAspending).
receiptsCents Float Latest federal receipts / deficit / debt (Treasury; null when unavailable).
deficitCents Float
debtCents Float
availableYears [Int!]! Fiscal years we have data for (newest first).
sources [Reference!]!
GatewayMemory Live memory picture of the gateway process (M16).
FieldType
rssMb Float! Resident set size, MB — what the OS reports.
heapUsedMb Float! V8 heap in use, MB.
heapTotalMb Float! V8 heap allocated, MB.
heapLimitMb Float! The hard ceiling V8 will abort at, MB. Raise with NODE_OPTIONS=--max-old-space-size.
heapPercent Float! heapUsed as a percentage of heapLimit — the number that matters. Sustained >80% means a leak.
externalMb Float! Off-heap buffers, MB.
uptimeSec Float! Seconds since this process started. A small value plus a large NRestarts means it is crash-looping.
caches [CacheStat!]! Per-cache occupancy, largest first.
Governor A U.S. state governor as a first-class person type (M02, from Wikidata). One row per person; multiple terms fold into a single span.
FieldType
id ID!
slug String
name String!
state String!
party String
image String
imageThumb String
current Boolean! True if any term is still open (sitting governor).
termStart String
termEnd String
termLabel String Humanized tenure, e.g. "2019–present" or "2011–2019".
dateDob String
dateDod String
internalUrl String!
sourceRef Reference Wikidata record (provenance).
GovernorProfile A governor profile — the person + every term + background facts (reuses the person-facts spine; empty until ingested).
FieldType
governor Governor!
terms [GovernorTerm!]!
facts [PersonFact!]!
GovernorTerm One gubernatorial term.
FieldType
state String!
termStart String
termEnd String
party String
current Boolean! True if this term is still open.
HearingDocument
FieldType
id ID!
kind String!
kindLabel String!
label String
url String!
format String
sourceRef Reference
HearingFacetCommittee
FieldType
code String!
name String!
count Int!
HearingFacetIssue
FieldType
slug String!
count Int!
HearingFacets
FieldType
committees [HearingFacetCommittee!]!
types [HearingFacetType!]!
congresses [Int!]!
issues [HearingFacetIssue!]!
HearingFacetType
FieldType
type String!
label String!
count Int!
HearingListItem A committee proceeding in a list.
FieldType
id ID!
congress Int!
chamber String! house | senate | joint.
title String
committeeCode String
committeeName String
committeeUrl String
subcommitteeCode String
meetingType String hearing | markup | business_meeting | field_hearing | other — normalised across the two chambers.
meetingTypeLabel String!
isClosed Boolean! Senate closed hearings and closed business meetings produce no public record by design.
status String scheduled | held | canceled | postponed | rescheduled. DERIVED: congress.gov leaves its own status at Scheduled indefinitely.
occurredAt String
location String
videoUrl String
videoPlatform String youtube | senate_isvp | congress_gov | house_gov | none.
hasVideo Boolean!
transcriptStatus String! none | self_transcribed | preliminary | official — worst to best.
transcriptLabel String
recordedVoteCount Int!
witnessCount Int!
documentCount Int!
summary String Neutral AI abstract. Null until the enrichment queue reaches this proceeding — see aiStatus.
aiStatus String pending | in_progress | done | not_applicable | failed. 'pending' is a recorded state, not an error.
internalUrl String!
sourceRef Reference
HearingMemberVote One member's position on one motion.
FieldType
bioguideId String
memberName String! Exactly as printed on the vote sheet, kept whether or not it resolved to a member.
position String! yea | nay | present | not_voting.
party String
state String
internalUrl String
HearingMotion Something that was moved and decided — an amendment, a motion to report, a subpoena authorisation, a motion to close the session.
FieldType
id ID!
sequence Int!
motionType String amendment | report_measure | subpoena | close_session | table | authorize_deposition | contempt | nomination | adjourn | procedural | other.
title String
rawDescription String The committee's own wording, VERBATIM. Always shown beside the parse: committee vote grammars are not standardised and a parse can be wrong.
billId String
billLabel String
billUrl String
amendmentLabel String
sponsorName String
targetKind String
targetLabel String
result String agreed | failed | tabled | withdrawn | no_vote. Null when the source states no outcome — never inferred.
yeas Int
nays Int
present Int
notVoting Int
isRecordedVote Boolean!
parseStrategy String Which per-committee parser matched. 'unmatched' is first-class and surfaces in the admin queue.
parseConfidence Float
votesStatus String pending | done | unavailable | pending_vision | failed — per-member extraction state for this motion's PDF.
votesNote String
videoUrl String
votes [HearingMemberVote!]!
voteTally HearingVoteTally!
voteByParty [HearingPartyVote!]!
sourceRef Reference
HearingPage
FieldType
id ID!
congress Int!
chamber String!
title String
committeeCode String
committeeName String
committeeUrl String
subcommitteeCode String
subcommitteeName String
meetingType String
meetingTypeLabel String!
meetingTypeRaw String
isClosed Boolean!
status String
statusRaw String
occurredAt String
location String
videoUrl String
videoPlatform String
videoId String
hasVideo Boolean!
transcriptStatus String!
transcriptLabel String
transcriptSource String
transcriptChars Int
transcriptFetchedAt String
asrStatus String pending | queued | running | done | unavailable | failed — whether we have TRIED to make a transcript, as distinct from what we hold.
asrNote String
recordedVoteCount Int!
witnessCount Int!
documentCount Int!
summary String
summaryVersion String
aiStatus String
aiStages JSON
aiLastError String
coverageNote String! The one paragraph explaining what is and is not on this page, and why. Empty string when nothing needs explaining.
senateVoteCoverage VoteCoverage
participants [HearingParticipant!]!
witnesses [HearingParticipant!]!
motions [HearingMotion!]!
topics [HearingTopic!]!
documents [HearingDocument!]!
transcripts [HearingTranscriptInfo!]!
relatedBills [HearingRelatedBill!]!
relatedNominations [String!]!
internalUrl String!
sourceRef Reference
committeeRef Reference
HearingParseIssue
FieldType
motionId ID!
hearingId ID!
hearingUrl String!
rawDescription String
title String
parseStrategy String
parseConfidence Float
votesStatus String
votesNote String
committeeCode String
committeeName String
chamber String
occurredAt String
sourceDocUrl String
yeas Int
nays Int
HearingParticipant Someone in the room — a member, the chair, or a witness. Members and witnesses share one shape because the reader's question is who was here, not which of two kinds of person they were.
FieldType
id ID!
role String! chair | ranking_member | member | witness | staff.
roleLabel String!
displayName String! As printed in the record. Always set, even when unresolved.
title String Witness's printed title, e.g. Acting Director, Consumer Financial Protection Bureau.
orgName String
organizationId String
orgUrl String
witnessDocUrl String Their submitted written testimony.
personSlug String
personKind String
bioguideId String
internalUrl String The CivicGate profile, when this person resolved to one. Null is the honest majority case for witnesses.
matchMethod String roster | appointee_match | official_match | name_org_match | curated | unmatched. Exposed so a weak match can be marked rather than presented as fact.
matchConfidence Float
HearingPartyVote
FieldType
party String!
yea Int!
nay Int!
present Int!
not_voting Int!
HearingRelatedBill
FieldType
id ID!
number String!
title String
internalUrl String!
HearingsPage
FieldType
items [HearingListItem!]!
total Int!
limit Int!
offset Int!
HearingTopic A subject or talking point extracted from the transcript.
FieldType
id ID!
kind String! subject | talking_point | question | commitment | disagreement.
label String!
detail String
speakerName String
speakerSlug String
speakerUrl String
issueSlug String
issueUrl String
policyArea String
subjectTerms [String!]!
confidence Float
method String official_transcript | preliminary_transcript | asr_extract | doc_extract | curated. An ASR-derived item must be badged differently from one read out of the official record.
videoStartMs Int
videoUrl String Deep link into the video at this moment. Null for PDF-derived topics, which carry no timings — interpolating one would be a fabricated citation.
sourceUrl String
HearingTranscript
FieldType
id ID!
source String
label String
url String
isOfficial Boolean!
charLen Int
text String Whole text, used only when we have no speaker segmentation.
segments [HearingTranscriptSegment!]!
HearingTranscriptInfo A transcript we hold, described. The text itself comes from hearingTranscript.
FieldType
id ID!
source String congress_preliminary | govinfo_chrg | asr_whisper.
label String
url String
charLen Int
isOfficial Boolean!
segmentCount Int!
speakers [String!]!
HearingTranscriptSegment
FieldType
index Int!
startMs Int Milliseconds into the video. Only ASR-derived transcripts carry timings.
speaker String
text String!
videoUrl String
HearingVoteTally
FieldType
yea Int!
nay Int!
present Int!
not_voting Int!
IndependentExpenditureLeaderboardRow A ranked row on the independent-expenditure leaderboard (M04/M05) — one member and the OUTSIDE money spent for/against them in a cycle (FEC Schedule E). Neutral money-flow signal: independent expenditures are spent WITHOUT coordinating with the candidate — a documented public ledger, not an accusation. Cents; cite FEC.
FieldType
rank Int! 1-based rank within the returned (ordered) list.
id ID! The member's canonical slug/id (segment of internalUrl).
name String!
party String Party as scored (D|R|…).
state String
chamber String Chamber (house|senate) when known.
supportCents Float Independent expenditures SUPPORTING this member (cents).
opposeCents Float Independent expenditures OPPOSING this member (cents).
totalCents Float support + oppose (cents) — the total outside money in play around this member.
spenderCount Int Distinct outside committees that reported IE for/against this member in the cycle.
image String The member's rehosted thumbnail photo (M02), or null when we have none.
internalUrl String!
sourceRef Reference Provenance — the FEC independent-expenditures record for this candidate/cycle.
IndependentExpenditureRow Outside money (independent expenditures by PACs / super-PACs) spent FOR / AGAINST a member in one cycle (M04/M05, FEC Schedule E by candidate). Neutral money-flow signal: independent expenditures are spent WITHOUT coordinating with the candidate — a documented public ledger, not an accusation. Cents; cite FEC. Coverage-honest: a cycle with no reported IE simply isn't listed.
FieldType
cycle Int! The 2-year election cycle (e.g. 2024).
supportCents Float Independent expenditures SUPPORTING this member (cents).
opposeCents Float Independent expenditures OPPOSING this member (cents).
spenderCount Int Distinct outside committees that reported IE for/against this member in the cycle.
sourceRef Reference Provenance — the FEC independent-expenditures page for this candidate/cycle.
IndustryBreakdown Industries roll-up (M04) — committee money by approximate keyword sector for a cycle, PLUS canonical CRP industries when OpenSecrets is wired.
FieldType
cycle Int
source String! Which classification the canonical rows come from: "keyword" (FEC-name approximation, always present) or "crp" (OpenSecrets canonical, when ingested).
sectors [IndustryRow!]! One row per confidently-classified sector, largest toCandidates first (the FEC-name keyword approximation).
unclassifiedCommittees Int! Committees whose sector could not be confidently classified (coverage-honest denominator).
totalCommittees Int! Total committees considered for the cycle.
crpAvailable Boolean! True when canonical CRP industry rows are present (OpenSecrets ingested for this cycle).
crpIndustries [CrpIndustryRow!]! Canonical CRP industries for the cycle (aggregated across members from OpenSecrets candIndustry), largest first. Empty until OpenSecrets is wired.
crpNote String Honest note about the canonical-industry coverage state (e.g. not-yet-wired).
sourceRef Reference
IndustryRow One sector's aggregate committee money for a cycle (M04).
FieldType
sector String!
label String!
committeeCount Int!
receiptsCents Float!
toCandidatesCents Float!
internalUrl String
Issue A prominent civic issue (M23). Stances are documented, never inferred.
FieldType
id ID!
slug String!
name String!
category String
summary String
internalUrl String!
stanceCount Int! Number of positions recorded (stated + vote-derived) — coverage-honest, may be 0.
stances [IssueStance!]! Stated positions (real people, documented) + positions derived from votes on direction-tagged bills. Excludes CivicGate users' own private positions.
userStanceCounts IssueUserStanceCounts! Aggregate COUNT of CivicGate users' own declared positions on this issue — counts only, never names (privacy).
taggedBillCount Int! Bills tagged to this issue (topical coverage).
relatedVoteCount Int! Distinct members who have voted on this issue's tagged bills.
recentActivity [IssueActivityItem!]! S7 Topic Feed (M11) — a merged, reverse-chronological stream of recent activity for this issue: tagged bills (newest by action/introduced date) + news articles referencing it. Bounded; coverage-honest (empty when nothing is tagged yet).
IssueActivityItem One item in an issue's Topic Feed (S7/M11). Flat shape over two kinds so the client renders one merged stream. kind = bill | news.
FieldType
kind String! bill | news.
id ID!
title String!
summary String Short summary/excerpt when available (bill summary or article excerpt).
date String ISO timestamp used to order the merged stream (bill: latest action or introduced; news: published date). May be null.
internalUrl String CivicGate-internal page for the item (bill → /bill/:id; news → the outlet profile /media/:source).
externalRef Reference Upstream source record (bill → Congress.gov; news → the original article URL).
billNumber String Bill only: the bill number (e.g. HR 22).
billStatus String Bill only: the legislative milestone (Introduced, Passed House, Became Law, …).
sourceName String News only: the outlet name.
sourceBias String News only: the outlet's disclosed lean (left | lean-left | center | lean-right | right).
IssueAgreement E16 — one issue where the user and a matched person both have a position.
FieldType
issueSlug String!
issueName String!
myStance String!
theirStance String!
agree Float! 1 = same stance, 0.5 = same side (different intensity), 0 = opposite sides.
IssueDeleteResult
FieldType
ok Boolean!
note String
IssueDiscussionResult The report is always saved; the discussion may not open. The note field says which, in words.
FieldType
issue IssueReport
threadId String
note String
IssueEvent
FieldType
id ID!
kind String!
status String
actorLabel String
note String
sourceUrl String
createdAt String
IssueMatch
FieldType
id ID!
title String!
placeLabel String!
status String!
forumThreadId String
createdAt String
score Float!
matchedBy String! fts | title
IssueMediaItem M07/M13 — one attachment on a reported issue. Objects live in R2 under issues/<issueId>/<mediaId>; this row is what makes them queryable.
FieldType
id ID!
issueId ID!
kind String! image | video | audio | document — derived from the MIME type, the same classification post media uses.
mime String
url String Public CDN URL. Null while the upload is still pending — a pending object is not readable yet, so publishing its URL would be a link to a 404.
bytes Float
width Int Client-measured pixel dimensions for an image. Presentation metadata only; absent is normal.
height Int
status String! pending (bytes in flight) | ready. A report renders honestly while files are still arriving; failed rows are never returned.
createdAt String
IssueReport A civic issue reported against a jurisdiction. Coordinates are deliberately NOT exposed: a report filed from home would otherwise publish a home address.
FieldType
id ID!
title String!
body String!
authorId String
authorLabel String
anonymous Boolean!
level String!
state String
countyFips String
placeGeoid String
districtKind String
district String
zip String
regionLabel String
placeLabel String!
status String!
forumThreadId String The forum discussion, when one was opened. Null means undiscussed, which is a normal state.
createdAt String
updatedAt String
IssueReportList
FieldType
total Int!
issues [IssueReport!]!
IssueStance A person's documented position on an issue (M23).
FieldType
personType String!
personId String!
personName String!
internalUrl String! CivicGate-internal profile page for the person.
stance String! full_support | partial_support | oppose | partial_oppose | unknown.
kind String! stated (their words) | derived (from a cited vote).
note String
sourceRef Reference Where the stance is documented — mandatory in practice.
IssueUploadGrant A presigned grant: the browser PUTs bytes straight to object storage with this, then calls finalizeIssueUpload.
FieldType
mediaId ID!
uploadUrl String! Time-limited presigned PUT URL. Send the raw file as the body with the declared Content-Type.
publicUrl String! Where the object will be readable once the PUT completes.
kind String!
IssueUploadLimits Server-enforced attachment limits for issue reports. Editable in app_config (issues.max_files_per_issue, issues.max_file_bytes, issues.media_anon_window_minutes) without a deploy.
FieldType
maxFilesPerIssue Int!
maxFileBytes Float!
anonWindowMinutes Int! How long after filing an ANONYMOUS report attachments are still accepted. An anonymous report has no owner to authenticate, so this window plus the file cap are the whole defence.
IssueUserStanceCounts Aggregate tally of CivicGate users' declared positions on an issue (M23/E16) — counts only, no identities.
FieldType
fullSupport Int!
partialSupport Int!
partialOppose Int!
oppose Int!
total Int!
JobActionResult Result of a job control action (start/stop/reschedule).
FieldType
ok Boolean!
message String!
JobRun M16 — one recorded execution of a background job, with what it cost. Written by the job itself (see apps/ingestion/src/lib/job-run.ts), because systemd cannot report per-job memory when several jobs share a unit, and knows nothing about a job started by hand.
FieldType
id ID!
jobKey String!
startedAt String!
finishedAt String
status String! running | ok | failed | skipped
durationMs Int
peakRssMb Int Peak resident memory in MB — the number that decides whether a job survives on a small box.
cpuMs Int CPU milliseconds burned. Separates 'slow waiting on an API' from 'slow burning the box'.
loadAvg Float 1-minute load average when the run finished, for context.
itemsTotal Int
itemsProcessed Int
itemsFailed Int
metrics JSON Job-specific counters (api calls spent, seconds of audio transcribed, …).
note String
error String
trigger String timer | manual | pool | api
Judge M20 Judicial — a judge or justice (CourtListener). race/gender are CL best-guess and rendered with that caveat.
FieldType
id ID!
slug String CourtListener slug — the /judge/:slug segment.
name String!
topCourt String Most-significant court slug, e.g. "scotus".
courtLevel String supreme | appellate | district | state | other.
state String 2-letter US state for district/state-court judges (null for federal circuits/SCOTUS).
roleLabel String! Humanized current role, e.g. "Associate Justice, Supreme Court of the United States".
current Boolean! CourtListener's guess at whether the judge currently sits (unreliable for state courts).
effectiveCurrent Boolean! Effective sitting status: the official-roster truth when we have it, else CourtListener's guess. This is what the UI should show.
rosterCurrent Boolean Official-roster sitting status (null = never roster-checked; from a state judiciary's official site).
rosterCheckedAt String When the official roster was last checked (ISO), if ever.
rosterRef Reference The official state-judiciary roster page this was verified against (provenance), if any.
image String
imageThumb String
dateDob String
opinionCount Int! Number of authored opinions on file (decision records).
appointedByName String Appointing President/Governor of the judge's primary position (null when unknown).
tenureStartYear Int First year on any court (tenure start); null when unknown.
tenureEndYear Int Last year on the bench; null = currently serving (ongoing) OR unknown — use with effectiveCurrent.
internalUrl String!
sourceRef Reference CourtListener record (provenance).
JudgeAppointer A president who appointed judges in our data (for the /judges Appointed-by dropdown).
FieldType
id ID! President slug — pass as the judges(appointedBy:) filter value.
name String!
numberLabel String e.g. "44th" (ordinal label).
count Int! Distinct judges this president appointed (within the level scope, if given).
JudgeOpinion A judge's authored opinion (M20 decision record). role = majority | concurrence | dissent | plurality | per curiam | other.
FieldType
id ID!
caseName String
dateFiled String
role String!
perCuriam Boolean!
precedentialStatus String
internalUrl String! Internal CivicGate case page.
courtName String Court that issued it (e.g. "Supreme Court of the United States").
docketNumber String Docket number (e.g. "22-148"), when resolved.
citation String Reporter citation (e.g. "600 U.S. 122"), when resolved.
citationCount Int How many times this case has been cited (CourtListener), when known.
authoritiesCount Int Number of authorities (prior opinions) this opinion cites.
aiSummary String Neutral plain-language AI summary of the holding + reasoning. Null until generated.
textStatus String available | unavailable | null (full text not yet fetched).
hasText Boolean! True once the full opinion text has been fetched + stored.
sourceRef Reference CourtListener opinion record (provenance).
url String CourtListener / upstream court record.
JudgePosition One judicial tenure (M20) — a judge on a court, with appointment + confirmation + tenure window.
FieldType
id ID!
courtId String
courtName String
positionLabel String! Humanized role, e.g. "Associate Justice".
howSelected String Humanized selection method, e.g. "Appointed by the President".
appointerName String Appointing President / Governor, when known.
dateNominated String
dateConfirmation String
dateStart String
dateTermination String Null = currently serving.
terminationReason String
votesYes Int
votesNo Int
JudgeProfile A judge/justice profile (M20) — the judge, their tenure (positions, newest first), and recent authored opinions.
FieldType
judge Judge!
positions [JudgePosition!]!
opinions [JudgeOpinion!]!
Jurisdiction
FieldType
id ID!
level String!
name String!
slug String
stateCode String
LensVector
FieldType
entityId ID!
versionHash String!
vector [Float!]!
LikeResult Result of setLike — the entity's fresh like count plus the viewer's own state.
FieldType
likeCount Int!
viewerLiked Boolean!
LinkPreview M17/E03 — the result of unfurling a pasted URL. ok:false means the page could not be read; the composer keeps the plain link and shows no card.
FieldType
url String!
title String
description String
imageUrl String
siteName String
ok Boolean!
Lobbying Federal lobbying profile for a year (LDA). income = fees a firm billed a client; expenses = in-house lobbying spend; total sums both (the standard 'total lobbying spending' figure).
FieldType
fiscalYear Int!
availableYears [Int!]! Filing years we have data for (newest first).
totalCents Float Total reported lobbying spend for the year (sum of income + expenses across filings).
filingCount Int! Number of filings ingested for the year (registrations + reports).
reportCount Int! Number of money-bearing activity reports for the year (filings with income/expenses).
spendSeries [FundingSeriesPoint!]! Total lobbying spend per year (one line, for the over-time chart).
topRegistrants [LobbyingRow!]! Top registrants (lobbying firms / orgs that file) by reported spend, this year.
topClients [LobbyingRow!]! Top clients (interests represented) by reported spend, this year.
topIssues [LobbyingRow!]! Top general issue areas by filing count, this year (spend isn't cleanly divisible per issue).
topGovernmentEntities [LobbyingRow!]! Most-lobbied government entities (House, Senate, agencies) by activity count, this year.
revolvingDoor [LobbyingRow!]! Revolving-door lobbyists — those with a prior covered government position — by filing count.
sources [Reference!]!
LobbyingRow One aggregate lobbying row (a firm, client, issue, target, or lobbyist). amountCents is null for count-based rows (issues/targets/revolving-door); count is the filing/activity tally.
FieldType
id ID!
label String!
amountCents Float
count Int!
sublabel String Secondary detail — e.g. a client's description or a lobbyist's prior government post.
sourceRef Reference
MatchedAction E16 — a concrete next action from the E02/E11 contact pipeline.
FieldType
label String!
description String
href String!
kind String! contact | urge | explore — a UI hint for the action's affordance.
MatchedBill E16 — a bill matched to an issue the user follows (bill_issues ⋈ bills).
FieldType
id ID!
number String!
title String!
status String Legislative milestone (Introduced | Passed House | … | Became Law), when derived.
latestActionAt String
latestActionText String
issueSlug String! The followed issue this bill is tagged to.
issueName String!
direction String advances | restricts (a curated, sourced directional claim) | null (topical association only).
internalUrl String!
sourceRef Reference Upstream record (Congress.gov).
MatchedElection E16 — an upcoming election in the user's state (M08).
FieldType
id ID!
name String!
date String!
type String!
internalUrl String!
sourceRef Reference
MatchedIssue E16 — an issue the user follows, the matching key for their civic-matches digest.
FieldType
slug String!
name String!
category String
internalUrl String!
MatchedRep E16 — one of the user's reps + their DOCUMENTED positions on the issues the user follows.
FieldType
targetType String!
targetId ID!
name String!
party String
chamberLabel String!
state String
image String
internalUrl String
stances [MatchedRepStance!]! Documented stances (person_issue_stances) on the user's followed issues. Empty = no documented position.
note String An honest note when this rep has no documented position on the followed issues (never a fabricated stance).
MatchedRepStance E16 — one rep's documented stance on an issue the user follows.
FieldType
issueSlug String!
issueName String!
stance String! full_support | partial_support | oppose | partial_oppose | unknown.
note String
sourceRef Reference The stance's cited source, when one is on file.
MediaCommentCount M17/E03 — how many comments one attachment has.
FieldType
mediaId ID!
count Int!
MediaOutlet A media outlet CivicGate ingests (M12) — one row in the /media directory. CivicGate AGGREGATES an outlet's coverage; it does NOT rate outlets. bias is the outlet's OWN published lean (AllSides/Ad Fontes style), disclosed, not endorsed.
FieldType
slug ID! URL slug + stable id (news_sources.id), e.g. "the-hill".
name String!
homepage String The outlet's own website (external).
bias String left | lean-left | center | lean-right | right — the outlet's disclosed lean.
articleCount Int! How many de-duplicated (primary) stories CivicGate has from this outlet.
MediaOutletDetail A media outlet's profile payload (M12): the outlet plus its recent de-duplicated stories (reuses NewsStory).
FieldType
slug ID!
name String!
homepage String
bias String
articleCount Int!
articles [NewsStory!]! The outlet's recent primary stories, newest first.
MemberCommittee One of a member's committee assignments (M03/M05).
FieldType
systemCode String!
name String!
slug String
internalUrl String!
role String Chair | Ranking Member | Member | Vice Chair | null.
chamber String
oversightSectors [String!]! Market sectors this committee oversees (from the sourced committee_jurisdiction map).
sourceRef Reference Provenance — the committee's Congress.gov page.
MemberContact E11 — a member's contact channels (from unitedstates/congress-legislators + Congress.gov).
FieldType
officialUrl String Their official .house.gov / .senate.gov site.
phone String DC office phone.
contactFormUrl String Official web contact form.
officeAddress String DC office (building / room).
congressUrl String Their Congress.gov member page (always available).
MeProfile The signed-in user's profile (M16/E04). location + preferences are arbitrary JSON bags so facets can grow without migrations.
FieldType
userId ID!
username String Chosen public handle (^[a-zA-Z0-9_]{3,20}$, case-insensitive unique). Null until set.
email String Email from the auth-server access-token claims (not stored in user_profiles).
displayName String
bio String
phone String Contact number for SMS reminders (M15). Product data, never an auth credential.
phoneVerified Boolean! Set once the number has been confirmed. SMS is NOT sent to an unverified number.
location JSON!
preferences JSON!
publicActivity Boolean! E03 Layer A opt-in (default false): when true, the user chose to show their OWN civic-activity badges + verified-action counts on their public /user/:handle page. Never a rank vs. others — just their own facts, by their choice.
favorites [Favorite!]!
updatedAt String
MyReps E02/E11 — the signed-in user's own representatives. resolvedFrom ∈ location (from saved profile) | zip (from the passed ZIP) | none (couldn't resolve). coverageNote is an honest line when resolution is partial/empty (never fabricated).
FieldType
resolvedFrom String!
zip String
state String
stateName String
district Int
federal [RepTarget!]! Federal reps — the state's two U.S. Senators + the district's U.S. House member.
stateLegislators [RepTarget!]! State legislators (state Senate + state House) for the address, when a ZIP resolved them (M07).
coverageNote String
MyStance E16 — the signed-in user's own declared stance on an issue.
FieldType
issueSlug String!
issueName String!
issueCategory String
stance String! full_support | partial_support | oppose | partial_oppose.
MyVirtualVote The signed-in reader's own straw-poll answer in one contest. Visible only to them.
FieldType
contestId ID!
candidateId ID!
createdAt String! When they first answered in this race. Preserved when they change their answer.
updatedAt String! When they last changed it. Equal to createdAt until they do.
NewsAISummary
FieldType
summary String!
mainPoints [String!]!
NewsAlternate
FieldType
sourceName String!
bias String
url String!
title String!
NewsPage A page of de-duplicated news stories (M12) with the total matching count for pagination.
FieldType
total Int!
stories [NewsStory!]!
NewsRef
FieldType
type String! politician | candidate | bill | issue | committee.
label String!
internalUrl String CivicGate-internal page for the entity (null when only a label was extracted).
NewsSource A news outlet, with its published lean (disclosed, not endorsed).
FieldType
id ID!
name String!
homepage String
bias String left | lean-left | center | lean-right | right (AllSides/Ad Fontes style).
NewsSourceInfo An outlet CivicGate ingests, with its disclosed lean and primary-story count (for the source filter).
FieldType
name String!
bias String
count Int!
NewsStory A de-duplicated news story (M12): the primary article, its extracted entity refs, other outlets covering it, and optional AI analysis.
FieldType
id ID!
slug String! Stable, shareable slug (title + short id). Resolves via newsArticle alongside the raw id.
title String!
url String! Upstream article URL (external) — where the full piece actually lives.
internalUrl String! This article's home ON CivicGate (/news/:slug) — where it can be liked and discussed.
source NewsSource!
author String
publishedAt String
imageUrl String
excerpt String Sanitized excerpt from the feed.
aiSummary NewsAISummary AI summary + main points — present only when the summarize flag + broker were on at ingest.
refs [NewsRef!]! Entities referenced in the story (politicians, candidates, bills, issues), linked to their CivicGate pages where resolved.
alternates [NewsAlternate!]! Other outlets covering the same story.
Notification M15 — a per-user notification (alert bus).
FieldType
id ID!
type String! sponsored_bill | stock_trade | issue_bill | bill_vote | judicial_ruling.
title String!
body String
entityType String The followed entity kind: person | bill | issue | judge.
entityId String
url String Where the notification links (internal).
createdAt String!
read Boolean!
NotificationChannels Server-side channel availability (M15).
FieldType
push Boolean!
sms Boolean!
smsNote String Why SMS is unavailable; null when it is available.
NotificationPrefs M15 delivery — a user's notification channel/frequency preferences + email-digest state. categories is a per-category bag keyed by bills | people | judges | issues | trades | funding | rulings, each an object of channel flags (in_app, email, sms) plus a frequency (off | instant | daily | weekly).
FieldType
categories JSON! Per-category channel + frequency bag (JSON). Empty object when the user has not customized any category.
emailDigestFrequency String! Global email-digest cadence: off | daily | weekly.
emailEnabled Boolean! Master email switch — false suppresses all email regardless of per-category flags.
smsEnabled Boolean! Master SMS switch (placeholder — no provider is wired yet).
pushEnabled Boolean! Master web-push switch. Turned ON by savePushSubscription (a granted browser permission), and off here or by removing the last device.
lastDigestDailyAt String When the last daily digest was sent (ISO), or null.
lastDigestWeeklyAt String When the last weekly digest was sent (ISO), or null.
updatedAt String
NotificationTypeInfo One trackable change type (M15). The unit a user subscribes to / mutes.
FieldType
type String! Stable type key, stored on every notification row (e.g. "bill_action", "person_fact").
category String! Coarse prefs bucket (people | bills | money | issues | trades | rulings | committees | elections).
label String!
description String!
subjects [String!]! Follow entity types this fires for — what the user must be following to receive it.
enabled Boolean! False when the signed-in viewer has muted this type (always true when signed out).
Official A federal appointee / official as a first-class person type (M02, from Wikidata). One row per person per office; multiple terms of that office fold into a single span.
FieldType
id ID!
slug String
name String!
positionTitle String! The office held, e.g. "Secretary of State".
roleType String! cabinet | agency | white_house | intelligence | other.
roleTypeLabel String! Humanized role-type label, e.g. "White House".
party String
image String
imageThumb String
current Boolean! True if this is the current (latest-start, still-open) holder of the office.
termStart String
termEnd String
termLabel String Humanized tenure, e.g. "2025–present" or "2017–2021".
dateDob String
dateDod String
internalUrl String!
sourceRef Reference Wikipedia/Wikidata record (provenance).
OfficialProfile A federal official profile — the person + every term of the office + background facts (reuses the person-facts spine; empty until ingested).
FieldType
official Official!
terms [OfficialTerm!]!
facts [PersonFact!]!
OfficialTerm One term of a federal office.
FieldType
termStart String
termEnd String
current Boolean! True if this term is still open.
OpenPaymentsRow One CMS Open Payments (Sunshine Act, M21) rollup row — an industry payment total for a manufacturer/GPO, a recipient state, or a top recipient. Cents are Float (totals exceed 32-bit). Summary rollups only; the record-level file is never ingested.
FieldType
id ID!
programYear Int!
dimension String! manufacturer | state | recipient.
key String! Grouping key — manufacturer-name slug, state code, or phys-/hosp-prefixed recipient id.
name String!
recipientType String physician | teaching_hospital (recipient dimension only).
state String US state code (state + recipient dimensions).
totalCents Float
recordCount Float Number of payment records aggregated into this row.
sourceRef Reference
OpinionAuthority An authority (prior opinion) a court opinion cites (M20).
FieldType
id ID!
caseName String
url String
OpinionPage A full court-opinion case page (M20) — the opinion, its authoring judge, full text, cited authorities, and an AI summary. Modeled on BillPage.
FieldType
id ID!
caseName String
role String! majority | concurrence | dissent | plurality | per curiam | other.
perCuriam Boolean!
dateFiled String
courtName String
docketNumber String
citation String
citationCount Int
precedentialStatus String
textStatus String available | unavailable | null (full text not yet fetched).
bodyHtml String Reflowed reading HTML of the full opinion text (null until fetched).
aiSummary String Neutral plain-language AI summary of the holding + reasoning. Null until generated.
aiSummaryAt String When the AI summary was generated (ISO).
authorities [OpinionAuthority!]! Prior opinions this one cites (links to CourtListener).
authoritiesCount Int!
judge Judge The authoring judge/justice.
internalUrl String!
sourceRef Reference CourtListener opinion record (provenance).
OrgActivityBill A bill reference parsed from a lobbying activity description. billId is set only when that bill exists in CivicGate (links /bill/:id); otherwise render label as plain reference text (coverage-honest).
FieldType
label String!
billId String
OrgCountry An org's country-of-origin. Phase 1 is the modal country REPORTED on the org's LDA filings (the disclosure address, not incorporation). code is ISO 3166-1 alpha-2. Always carries its source. Null when unresolved.
FieldType
code String! ISO 3166-1 alpha-2 country code (map to a name/flag client-side via Intl.DisplayNames).
source String Where the value came from: LDA-filing | GLEIF | Wikidata | SEC | SAM | USAspending.
confidence Float 0–1 — how dominant this country is among the org's filings (1.0 for id-keyed sources).
ref Reference Provenance link for this value (the hard requirement).
OrgIssueRow A merged issue area on an org profile — activity counts where the org lobbied as the CLIENT (lobbied) vs worked as the registrant/FIRM (worked). Equal for self-filers, different otherwise. slug links /issue/:slug when the LDA area maps to a curated issue, else null (plain text).
FieldType
label String!
slug String
lobbied Int!
worked Int!
OrgListItem A row in the top-organizations index (M02), ordered by reported lobbying spend.
FieldType
slug String!
name String!
lobbyingTotalCents Float!
fundingTotalCents Float!
kinds [String!]!
filingCount Int!
firstYear Int
lastYear Int
country OrgCountry
stateCode String
locationClass String
internalUrl String!
OrgLobbyingActivity A specific lobbying activity (LDA) reported for this org — the concrete detail of what was lobbied on, with bill references resolved to internal pages where possible.
FieldType
filingYear Int!
issueDisplay String
issueSlug String
asClient Boolean!
asFirm Boolean!
description String!
bills [OrgActivityBill!]!
OrgProfile An organization's federal footprint (M02) — reported lobbying (LDA) unified with any federal money received (USAspending) by name.
FieldType
slug String! URL slug derived from the org name (matches the display name after slugify).
name String! Display name — the canonical name from the organizations row.
kinds [String!]! Roles this org plays: client | firm | recipient. Drives which sections render, honestly labeled.
lobbyingTotalCents Float! CLIENT role — total reported lobbying SPEND across all years (cents), i.e. money this org paid. 0 when not a client.
lobbyingByYear [FundingSeriesPoint!]! CLIENT role — reported lobbying spend per filing year (oldest→newest) — for the over-time chart.
topFirms [OrgRow!]! CLIENT role — top lobbying firms the org hired (registrants), by reported spend.
topIssues [OrgRow!]! CLIENT role — top lobbying issue areas the org reported, by number of filing activities.
firmBilledTotalCents Float FIRM role — total reported lobbying BILLED/HANDLED for clients this firm represents (cents). Revenue, NOT the firm's own spend. Null when not a firm.
firmByYear [FundingSeriesPoint!]! FIRM role — reported lobbying billed/handled per filing year (oldest→newest).
topClients [OrgRow!]! FIRM role — top clients this firm represents, by reported amount billed/handled.
firmIssues [OrgRow!]! FIRM role — top lobbying issue areas across this firm's filings, by number of activities.
issues [OrgIssueRow!]! MERGED issue areas across roles (supersedes topIssues/firmIssues on the page): each area with its lobbied (as client) vs worked (as firm) activity counts, sorted by the larger. Equal for self-filers.
activities [OrgLobbyingActivity!]! 'What they lobbied on' — recent lobbying activities (LDA) with the specific reported detail and parsed bill links. Newest first, capped.
selfFiled Boolean! True when this org files lobbying on its own behalf (client == registrant). Drives the 'self-filed' note instead of listing the org as its own client/firm.
fundingRecipientId String If matched to a federal-money recipient, its recipient_id (links to /funding/recipient/:id). Null if no match.
fundingTotalCents Float Total federal money received by the matched recipient (cents). Null if no funding match.
sourceRefs [Reference!]! Provenance links — LDA (lobbying) and, when matched, USAspending (funding).
country OrgCountry Country of origin — the reported/HQ country, with provenance. Null when unresolved (coverage-honest).
internalUrl String!
OrgRow A labelled aggregate row on an org profile (a firm hired or an issue area). amountCents/count are optional depending on the row kind.
FieldType
label String!
amountCents Float
count Int
OrgTestimony
FieldType
hearingId ID!
title String
occurredAt String
committeeName String
witnessName String!
witnessTitle String
personUrl String
statementUrl String
internalUrl String!
OsContributorRow A top contributing organization to a member (M04, FEC Schedule A itemized receipts aggregated by employer/org). indivsCents = itemized individual money; pacsCents is null (FEC by-employer covers individuals, not affiliated PAC money). Cite FEC.
FieldType
orgName String!
cycle Int!
totalCents Float
pacsCents Float
indivsCents Float
sourceRef Reference
OsIndustryRow A canonical CRP industry for a member (M04, OpenSecrets candIndustry). Cite OpenSecrets.
FieldType
code String!
name String!
sector String Our six-bucket mapping (defense|finance|health|energy|tech|telecom) — null when none applies.
cycle Int!
totalCents Float
pacsCents Float
indivsCents Float
sourceRef Reference
OutsideSpendingGroup One outside-spending group for a cycle (M04) — its support vs oppose totals, rolled up from IE transactions.
FieldType
spenderName String!
supportCents Float! Money spent SUPPORTING candidates.
opposeCents Float! Money spent OPPOSING candidates.
totalCents Float! support + oppose.
transactionCount Int! Number of reported IE transactions rolled into this group.
sourceRef Reference
OutsideSpendingReport Outside / dark-money report (M04, FEC Schedule E independent expenditures). GATED — coverage-honest.
FieldType
cycle Int
available Boolean! False until the FEC outside-spending ingest has run; the UI then renders a placeholder, never a fake number.
groups [OutsideSpendingGroup!]! Spender groups rolled up from recent IE transactions, largest total first. Empty when unavailable.
totalCents Float! Sum of all group totals in the report.
note String Honest coverage note (e.g. "most recent reported transactions" or the not-yet-wired state).
sourceRef Reference
PacCommittee One FEC committee for one election cycle (M04) — its reported topline. Cents are Float (totals exceed 32-bit). Nulls are coverage-honest. sourceRef → the FEC committee record.
FieldType
committeeId String! FEC committee id (C........) — also the /pac/:id route param.
name String!
kind String pac | super_pac | hybrid | leadership | party.
committeeTypeFull String
designationFull String
party String Party (national/state party committees) — null for ordinary PACs.
state String Home state (2-letter) reported to the FEC.
sector String Approximate keyword sector (defense|finance|health|energy|tech|telecom) — null when not confident.
cycle Int!
receiptsCents Float Money raised in the cycle.
disbursementsCents Float Money spent in the cycle.
cashOnHandCents Float Cash on hand at end of the reporting period.
toCandidatesCents Float Money contributed to federal candidates (the direct money-into-politics figure).
independentExpenditureCents Float Independent expenditures (super-PAC spending for/against candidates).
internalUrl String!
sourceRef Reference
PacCommitteeProfile An FEC committee's profile (M04) — every ingested cycle + the current members it gave to.
FieldType
committeeId String!
name String!
kind String
committeeTypeFull String
designationFull String
party String
state String
sector String
cycles [PacCommittee!]! All ingested cycles, newest first.
recipients [PacRecipientRow!]! Current members of Congress this committee contributed to (from pac_contributions), largest first.
toCandidatesTotalCents Float Sum of toCandidatesCents across ingested cycles.
related PacRelationships The committee's disclosed "family" (M04, S5) — affiliated committee + leadership-PAC sponsor(s). Null when FEC reports none (coverage-honest).
sourceRef Reference
internalUrl String!
PacDonor
FieldType
name String!
sector String
amountCents Float!
count Int!
committeeId String
internalUrl String
PacRecipientRow One member a committee contributed to (M04) — from pac_contributions, joined to the member.
FieldType
bioguideId String!
name String!
party String
state String
internalUrl String!
amountCents Float!
sourceRef Reference
PacRelationships A committee's disclosed relationships (M04, S5) — from FEC's committee record. We SHOW the affiliation/sponsorship; we do NOT infer coordination.
FieldType
affiliatedCommittee RelatedCommittee The committee this one is affiliated with per its FEC filing (party/leadership/segregated-fund family). Null when FEC reports "NONE".
sponsors [RelatedSponsor!]! For a leadership PAC, the sponsoring candidate/officeholder(s), matched to a member we track when possible.
sourceRef Reference
PacSectorTotal
FieldType
sector String!
amountCents Float!
pacCount Int!
PacSupport A member's industry PAC support (M04). Sectors are approximate (curated keyword map); covers only members with an FEC candidate id on file.
FieldType
totalCents Float! Total disclosed PAC money across the cycles we hold (cents; Float — may exceed 32-bit).
cycles [Int!]! Election cycles included.
bySector [PacSectorTotal!]! Total PAC money by market sector, largest first (only sector-classified PACs).
topPacs [PacDonor!]! Top PAC contributors by amount.
sourceRef Reference Provenance — FEC.
ParticipationRow One member on the roll-call participation leaderboard (S4, M09 Attendance Tracker). Neutral-administrator posture: a descriptive rate (votes cast / recorded roll calls), never a judgment.
FieldType
rank Int! 1-based rank within the returned (ordered) list.
id ID! The member's canonical slug/id (segment of internalUrl).
name String!
party String Party (D|R|…).
state String
chamber String Chamber (house|senate).
votesCast Int! Roll calls the member cast a recorded vote on (recorded − missed).
votesEligible Int! Recorded roll calls for the member this Congress (the denominator).
participationPct Float Share of recorded roll calls the member voted on (0–1). Only published where chamber coverage is adequate.
image String The member's rehosted thumbnail photo (M02), or null when we have none.
internalUrl String!
sourceRef Reference Provenance — the member's roll-call record on Congress.gov.
PartyChange A party transition derived from consecutive role spans.
FieldType
year Int
from String
to String
roleTitle String
PeoplePage A server-filtered/sorted page of the people directory (M02) + the facet lists for the filter dropdowns.
FieldType
people [Person!]!
total Int! Total people matching the filters (for the pager).
parties [String!]! Distinct parties present across the whole directory (facet dropdown).
states [String!]! Distinct states present across the whole directory (facet dropdown).
congressMin Int Min/max Congress numbers present (for the Congress-year filter range).
congressMax Int
tally PeopleTally! Type/party breakdown over the Congress-filtered set (the summary line).
dem Int! Democrat count over the ACTIVE filtered result (same set as total) — the compact D/R count shown at the end of the filter row.
rep Int! Republican count over the ACTIVE filtered result (same set as total).
PeopleTally Type + party counts for the /people summary line (over the Congress filter only).
FieldType
total Int!
presidents Int!
governors Int!
officials Int!
senators Int!
representatives Int!
candidates Int!
judges Int!
dem Int!
rep Int!
Person A person in the unified directory (politician or candidate today; more sub-types later).
FieldType
id ID! slug or id — stable key + the segment used in internalUrl.
name String!
image String Profile thumbnail image (absolute URL); null → the row shows an empty-avatar placeholder.
imageThumb String
type String! politician | candidate.
party String
role String House/Senate for politicians; the office/contest for candidates (may be null).
attributes [String!]! Role tags for filtering: representative | senator | governor | candidate.
congresses [Int!]! Congress numbers this person is associated with (current members → the current Congress; candidates → the Congress of their race year) — powers the /people Congress/Year filter (M02).
state String Two-letter state (politicians; null where not yet derived).
district Int U.S. House district number (Representatives only; null for Senate/other).
participationPct Float Roll-call participation rate 0–1 (M09; null where coverage is inadequate or not a voting member).
sponsoredCount Int! Bills where this person is the primary sponsor (cached count).
cosponsoredCount Int! Bills this person cosponsored (cached count).
billsTotal Int! sponsored + cosponsored.
yearsInGovernment Int! Distinct years served in Congress (gap-excluded); 0 for non-members.
moneyCents Float Money appropriate to the type: contributions received (politician) or receipts raised (candidate). Cents.
internalUrl String! CivicGate-internal profile page.
PersonCommitteeVote
FieldType
hearingId ID!
motionId ID!
title String
motionType String
position String!
result String
billId String
billUrl String
occurredAt String
committeeName String
internalUrl String!
PersonFact A single background cliffnote for a person (M02/M10) — one neutral, sourced fact. category is one of achievement | role | controversy | background. sourceUrl/sourceLabel carry provenance (Wikipedia).
FieldType
fact String!
category String!
sourceUrl String
sourceLabel String
PersonHearingMembership
FieldType
hearingId ID!
title String
occurredAt String
chamber String
meetingType String
committeeName String
committeeUrl String
role String
internalUrl String!
PersonHearings A person's proceedings. Membership and testimony are separate relationships on purpose — conflating them would put testified-before-Congress on a member's record for a hearing they chaired.
FieldType
asMember [PersonHearingMembership!]!
asWitness [PersonTestimony!]!
committeeVotes [PersonCommitteeVote!]!
PersonIdentity One human, every role they have held.
FieldType
id ID!
displayName String!
sortName String
bioguideId String
wikidataId String
image String
imageThumb String
imageLarge String
firstYear Int
lastYear Int
isCurrent Boolean!
primaryRole String The role the bare /people/:id URL opens on — office held outranks a pending candidacy.
aliases [String!]! Every other id this person is known by; old URLs resolve through these.
roles [PersonRole!]!
roleTypes [String!]! Distinct role types, most senior first — decides which section groups the page renders.
partyChanges [PartyChange!]!
redirected Boolean! True when the requested id was not the canonical one, so the page should 301.
PersonIssuePosition One person's stance on a single issue (E18 comparison cell).
FieldType
issueSlug String!
issueName String!
issueCategory String
stance String! full_support | partial_support | oppose | partial_oppose | unknown.
kind String! stated (their words) | derived (from their votes) | none (no signal on file).
sourceRef Reference For stated: the citation. For derived: a link to their votes. Null when kind = none.
PersonIssueProfile Every issue in the catalog with one person's stance on it (E18 comparison column).
FieldType
personId String!
personName String!
internalUrl String! CivicGate-internal profile page for the person.
image String Profile image (absolute URL); null → the UI falls back to a silhouette.
positions [PersonIssuePosition!]! One entry per issue in the catalog — unknown/none where the person has no signal.
party String Compare dimensions (E18) — null where not applicable (e.g. non-members).
state String
role String
participationPct Float Roll-call participation rate 0–1 (M09); null when coverage inadequate / not a voting member.
donationsTotalCents Float Total disclosed individual contributions received (cents; Float).
pacTotalCents Float Total disclosed industry-PAC money received (cents; Float).
sponsoredCount Int Bills sponsored (M03); null where not a legislator, 0 where a legislator with none on file.
cosponsoredCount Int Bills cosponsored (M03); null where not a legislator.
yearsInGovernment Int Years served in government (M02 tenure); null where unknown.
firstServedYear Int First year this person is on record as serving (tenure start); null where unknown.
financeByCycle [CycleFinance!]! Per-election-cycle campaign finance (E18 finance-over-time), newest first; empty where no FEC record.
office String E18 Candidacy dimension — the office this person is a CANDIDATE for (e.g. "U.S. House"); null when not a candidacy record.
candidacyStatus String E18 Candidacy — incumbency status label (Incumbent | Challenger | Open seat); null when not a candidate / unknown.
raisedCents Float E18 Candidacy — total campaign receipts raised for this candidacy (cents; Float); null when not a candidate / no FEC total on file.
cashOnHandCents Float E18 Candidacy — cash-on-hand for this candidacy (cents; Float); null when not a candidate / no FEC total on file.
candidacyRef Reference E18 Candidacy — FEC provenance for the candidacy money figures; null when not a candidate.
PersonMatch E16 — a person who aligns with the signed-in user's declared positions, with the agreement breakdown.
FieldType
personId String!
personName String!
internalUrl String!
image String
party String
state String
score Float! 0–100: share of the user's declared issues (that this person also has a position on) where they agree.
sharedCount Int! How many of the user's declared issues this person also has a position on.
agreements [IssueAgreement!]! Per-issue agreement detail (only the issues the user declared AND this person has a signal on).
PersonProfile A unified person profile — one human across every role (representative/senator/governor/candidate).
FieldType
id ID!
name String!
image String Profile / social-share image (absolute URL); null → the page falls back to the CivicGate logo.
imageThumb String
imageLarge String
party String
state String
roles [String!]! Role tags, e.g. U.S. Representative, Governor, Candidate 2026.
years [Int!]! Distinct years with data (candidacies + current term), newest first.
politician Politician Their congressional record (votes, bills, lens, donations) when they served — else null.
candidacies [CandidatePage!]! Every candidacy (finance, contest, election), one per race/year.
governorState String The state they currently govern, when a sitting governor.
inTheNews [NewsStory!]! News stories that MENTION this person (M12/M02), newest first. Matched across every id this person is known by — their politician slug, their candidacy ids and their alias slugs — because the news ingest records whichever id the matched name came from. Empty when nothing mentions them; a person out of the news is the normal case, not a gap.
presidentialActions [PresidentialAction!]! Presidential actions (M02/M09) — executive orders, proclamations and memoranda this person signed, newest first. EMPTY for anyone who was not president; a president with none simply has none scraped yet, which the section states in words rather than hiding. Lazy: the list is only queried when asked for.
presidentialActionSummary PresidentialActionSummary Counts per category for the actions we hold, so the section can say what it is showing without loading every row. Scoped by the year argument when given, so the facet counts always describe exactly what the list is showing.
governorRef Reference
sponsoredCount Int! Bills sponsored / cosponsored (cached counts from the congressional record); total = sum.
cosponsoredCount Int!
billsTotal Int!
yearsInGovernment Int! Distinct calendar years served across all terms (gap-excluded).
firstServedYear Int Earliest year they held federal office (null if unknown).
positions [Position!]! Full term/position history from Congress.gov, newest first.
donationsTotalCents Float! Individual contributions received across all their roles (member + candidacies).
donationsCount Int!
donations [Donation!]!
canonicalUrl String!
updatedAt String When this person's record last CHANGED (ISO 8601), or null if unknown. This is a change stamp, not a liveness stamp: a database trigger (migration 0129) bumps it only when a field a reader would notice actually changed, so a bulk re-ingest that rewrites identical values leaves it alone. Clients use it to skip re-rendering on an unchanged poll — see the SWR layer in packages/sdk/src/resource.ts. Deliberately NOT derived from last_seen_at, which changes on every ingest pass and would mark everything as changed every day.
accountability AccountabilityScore Coverage-honest roll-call participation from the congressional record (M09); null for non-members.
osFundingAvailable Boolean! True when top-contributor data exists for this member (drives the profile section's honest empty state).
osFundingRef Reference The member's FEC candidate finance page (provenance) when we have their FEC id; null otherwise.
topContributors [OsContributorRow!]! Top contributing organizations to this member for the latest ingested cycle (FEC Schedule A itemized receipts aggregated by employer/org). Empty until the FEC top-contributors ingest has run.
industryContributions [OsIndustryRow!]! This member's money grouped by canonical CRP industry (OpenSecrets candIndustry) — DORMANT: OpenSecrets' REST API is discontinued and FEC has no canonical industry taxonomy, so this stays empty (coverage-honest).
independentExpenditures [IndependentExpenditureRow!]! Outside money spent FOR / AGAINST this member per cycle (M04/M05, FEC Schedule E independent expenditures by candidate), newest cycle first. Members only; empty until the fec-ie-by-candidate ingest has run or when no IE was reported.
socials PersonSocials Public social / official links (M02/E04), each a ready-to-render URL; null when none are known.
stateCampaignFinance StateCampaignFinanceRow State-tier campaign finance (M04, FollowTheMoney) matched to this person by name + state (best-effort) — for state candidates/legislators/governors. GATED: null until FollowTheMoney is wired + this person matches an ingested row.
voteAlignment VoteAlignment Vote-alignment & party-unity scoring (C2, E18/M03) — how this member votes relative to their party and to other members, computed from CivicGate's own roll-call vote data. Members only; null for non-members / until the vote-alignment ingest has run. Pass a congress to scope; default = the latest computed Congress for this member.
PersonRole One role SPAN — the unit the profile timeline is built from.
FieldType
id ID!
roleType String! senator | representative | governor | president | judge | official | appointee | candidate | state_legislator
title String
org String
stateCode String
district Int
congress Int
startYear Int
endYear Int
party String Party AS OF THIS SPAN — not the person's current party. This is what makes party-over-time possible.
isCurrent Boolean!
rank Int!
sourceTable String! Which table this span came from, and which row — the profile fetches role detail with these.
sourceId String!
sourceUrl String
url String! Deep link to this person at this role: /people/:id/:role/:year
PersonSocials A person's public social / official links (M02/E04). Every field is a full URL ready to render, or null when not known. Coverage-honest: absent links are null, never fabricated.
FieldType
twitter String
facebook String
instagram String
youtube String
website String
wikipedia String
PersonSummary A member as seen in a connections / subscribers / blocked list.
FieldType
userId ID!
username String
displayName String
internalUrl String!
PersonTestimony
FieldType
hearingId ID!
title String
occurredAt String
chamber String
committeeName String
committeeUrl String
witnessTitle String
orgName String
statementUrl String
internalUrl String!
Petition A petition (E02.7/E02.8) — an editable message + a signature list aimed at one target official. Neutral platform: CivicGate hosts the tool; the content is the creator's.
FieldType
id ID!
slug String!
title String!
summary String
bodyMd String! The message/ask (markdown).
targetType String! politician | state_legislator.
targetId String!
targetLabel String Display name of the target official.
targetUrl String Internal CivicGate page for the target, when resolvable.
status String! draft | proposed | published | denied | closed.
denialReason String Reason an admin denied the petition (only set when status = denied).
proposerName String Proposer's display name (admin-only; null for non-admins).
proposerEmail String Proposer's email (admin-only; null for non-admins).
signatureCount Int!
viewerSigned Boolean! Whether the signed-in viewer has already signed.
publishedAt String
sentAt String
sendStatus String sent | handoff | failed — outcome of the last send.
billRef Reference Optional bill this petition is pinned to.
createdAt String!
signatures [PetitionSignature!]! Recent public signatures (newest first).
PetitionSendResult Outcome of sending a petition to its target (E02.8). recipients = officials messaged (1 — the chosen target).
FieldType
status String!
channel String!
detail String
recipients Int!
PetitionSignature One public signature on a petition (E02.8).
FieldType
displayName String
comment String
createdAt String!
PlaceCounty The county containing a place — resolved from the Census Geographies "Counties" layer (M06).
FieldType
name String County name without the "County" suffix (e.g. "Los Angeles"). Null in the rare case the layer returns no name.
fips String! 5-digit county FIPS / GEOID (state FIPS + county FIPS, e.g. "06037"). The canonical county key.
PlaceFeedPage A place's wall — a FeedPage plus what place it actually resolved to.
FieldType
events [FeedEvent!]!
nextCursor String
hasMore Boolean!
source String!
subscriptionCount Int! How many representative subjects the fan-in covered. 0 explains an empty wall honestly.
level String! The level actually used, after clamping to what resolved. Compare with what you asked for.
placeKeys [String!]! The place keys this page matched — us | us-pa | us-pa-c42101 | us-pa-d03.
PlaceMoney Federal-money rollup for a place (state, congressional district, or county) — the latest fiscal year's total plus the full over-time series, linking to the relevant funding page (M04/M06).
FieldType
scope String! Scope of this rollup — state | district | county.
latestFiscalYear Int
totalFundingCents Float
fundingSeries [FundingSeriesPoint!]!
internalUrl String!
sourceRef Reference
PlaceProfile Place / Jurisdiction Profile (M06) — a geographic front door for a ZIP: who governs here, where federal money flows here, and the state laws that touch here. Composed entirely from existing data; every figure carries a source and thin sections are honestly empty.
FieldType
zip String The 5-digit ZIP that was resolved (echoed back), or null when it couldn't be parsed/resolved.
resolvedFrom String! How the place resolved — zip (from the passed ZIP) | none (couldn't resolve).
state String Two-letter state code (uppercase), when resolved.
stateName String Full state name (e.g. "Texas"), when resolved.
district Int U.S. House district number for the ZIP centroid (0 = at-large / single-district), when resolved.
place String Primary place/city name for the ZIP (e.g. "Austin"), when known.
county PlaceCounty The county containing this place (Census Geographies "Counties" layer), or null when not resolved (M06).
countyRecord County The full county record for this place, when the county table is loaded — carries the internal /county/:geoid link. PlaceCounty above is unchanged.
stateUpperDistrict String State Senate (upper) district identifier for the address (M07), if resolved.
stateLowerDistrict String State House/Assembly (lower) district identifier (M07), if resolved.
coverageNote String An honest line when resolution is partial/empty (never fabricated). Null when fully resolved.
federal [RepTarget!]! Who governs here — the state's two U.S. Senators + the district's U.S. House member (RepTarget reuses the E02/E11 contact shape).
stateLegislators [RepTarget!]! Who governs here — the address's matched state legislators (state Senate + House), when a ZIP resolved them (M07).
governor Governor Who governs here — the sitting governor (M02), or null when not on file.
districtUrl String Congressional-district hub URL (/district/:id) for this place, when resolved.
districtName String Human district name, e.g. "Texas's 21st District", when resolved.
stateUrl String State hub URL (/state/CODE), when resolved.
stateMoney PlaceMoney Where federal money flows here — the statewide USAspending rollup, or null when none is on file.
districtMoney PlaceMoney Where federal money flows here — the congressional-district USAspending rollup (category='cd'), or null when district-level rows aren't in our data (then only the statewide figure is shown — never a fabricated district number).
countyMoney PlaceMoney Where federal money flows here — the county USAspending rollup (place_level='county'), or null when county-level rows aren't in our data (M06).
topRecipientsInState [FundingRow!]! A bounded sample of top federal award recipients located in this state (USAspending awards). Partial (agency-scoped ingest) — presented as a sample. Empty when none on file.
moneyNote String Coverage-honest note about the money section (e.g. when district-level totals aren't available). Null when nothing to caveat.
recentStateBills [StateBill!]! Laws touching here — a few of the state's most-recently-active state bills (M03 state tier), newest action first.
stateBillsUrl String State-bills listing URL for this state (/state-bills?state=CODE), when resolved.
federalLawNote String! Neutral one-liner that federal law applies nationwide, with a link to /bills.
PlaceSubject One subject inside a place's wall — who they are, what office, and where their page is.
FieldType
subjectType String!
subjectId ID!
label String!
role String! U.S. Senate | U.S. House | Governor | State Senate | State House.
url String! Internal CivicGate page for this subject.
PlaceSuggestion M02/M06 — one address suggestion. placeId is opaque and only meaningful to placeDetails.
FieldType
placeId ID!
text String! Full one-line label.
mainText String The distinctive part, for bolding in a suggestion list.
secondaryText String The context part (city, region, country).
PlaceUpdate One item in a "My Place" feed — a dated, linkable thing that happened in the user's state or locality.
FieldType
id ID!
kind String! state_bill | federal_bill | election | local_money | district_money.
tier String! Which tier this belongs to — state | local.
title String!
summary String
url String Internal CivicGate page for the item.
date String ISO date used for ordering (for money rows this is the federal fiscal-year start, an ordering key — not a claim of an event date).
sourceRef Reference
PlaceUpdates "My Place" update feed (M06/M07/E15) — statewide + local activity for one resolved place, cached per place.
FieldType
state String 2-letter state the feed resolved to, or null when nothing could be resolved.
stateName String
county String County name (from the ZIP), when resolved.
city String City / place name (from the ZIP), when resolved.
district Int Congressional district number, when resolved.
resolvedFrom String! How the place resolved — zip | state | none.
coverageNote String Plain-language note when a tier is thin or empty (shown instead of a bare empty feed). Null when both tiers have content.
stateUpdates [PlaceUpdate!]! Statewide activity — that state's own legislature, its delegation in Washington, its elections.
localUpdates [PlaceUpdate!]! Local activity — county + congressional-district federal money (city/county records aren't ingested yet).
PolicyAreaListItem A Congress.gov policy area with its live bill count (M03).
FieldType
slug String!
name String!
billCount Int!
recentBillNumber String Most-recent bill in this area (for the listing's convenience link).
recentBillUrl String
recentBillAt String
Politician
FieldType
bioguideId ID!
slug String Human-readable URL alias, e.g. 'bernard_sanders'.
name String!
party String!
chamber String!
state String!
votes [Vote!]!
votingIssues [VotingIssue!]! Distinct issues this member has direction-tagged votes on — for the /votes issue filter dropdown.
contact MemberContact! E11 — how to reach this member (official site, DC phone, contact form, office). Null fields where unknown.
voteTally VoteTally! Tally of roll-call positions (yea/nay/present/not-voting).
bills [SponsoredBill!]! Sponsored / cosponsored bills, via the entity graph.
billsRef Reference Section-level source of the bills (member page on Congress.gov).
donationsTotalCents Int!
donationsCount Int!
donations [Donation!]! Individual contribution receipts (for the money overlay), newest first.
donationsRef Reference Section-level source of the money (FEC candidate page).
lens LensVector E18 comparison vector, fetched from the Lens service over gRPC.
accountability AccountabilityScore Coverage-honest roll-call participation (M09 F09.1/F09.2). Null for non-voting members / no data.
conflictSignals [ConflictSignal!]! Documented relationships (M05 → M09) — materialized conflict signals for this member (e.g. sits on a committee overseeing a sector they trade in). Neutral registry: a documented relationship is NOT evidence of wrongdoing. Empty when none are on record.
pacSupport PacSupport Industry PAC support (M04) — this member's political-action-committee contributions grouped by market sector, with the top PACs. Null when the member has no FEC candidate id / no PAC data. Industry is approximated from a curated map; individual (non-PAC) donations are shown separately.
committees [MemberCommittee!]! Committee assignments (M03) — the committees + subcommittees this member sits on, their role, and the market sectors each oversees (M05 cross-link). Empty until memberships are ingested.
Position One term in a person's service history (a Congress in a chamber).
FieldType
chamber String
memberType String
stateCode String
district Int
congress Int
startYear Int
endYear Int
PostMedia M17/E03 — one media attachment on a user post. Objects live in R2 under user-uploads/<userId>/posts/<postId>/<mediaId>; this row is what makes them queryable (and is the basis of a per-user uploads library).
FieldType
id ID!
kind String! image | video | audio | document — the axis a media library filters on.
mime String
sizeBytes Float
url String Public CDN URL. Null while an upload is still pending.
originalName String
width Int
height Int
durationMs Int
note String The author's caption for THIS item (max 500 chars).
sortOrder Int!
status String! pending (bytes in flight) | ready | failed. A post renders honestly while media are still arriving.
createdAt String
postId ID The post this attachment belongs to. Null for an upload that has no post yet — a media library groups and links by this.
PostPreview M17/E03 — a rendered preview card. For a media preview the image is resolved from the attachment at read time, so it always reflects the authoritative URL.
FieldType
kind String! link | media
url String Click target. Set for a link preview; null for a media preview (the image opens in the lightbox instead).
imageUrl String
title String
excerpt String
siteName String
mediaId ID
mediaKind String image | video — only set for a media preview.
fit String! contain (default) | cover — the author's choice of how the image fills the card.
President A US president (person type). Grover Cleveland is one President with two terms (#22, #24).
FieldType
id ID!
slug String
name String!
party String
image String
imageThumb String
dateDob String
dateDod String
birthplace String
current Boolean! Whether this is the sitting president.
numberFirst Int First presidency ordinal (Cleveland → 22).
numberLast Int Last presidency ordinal (Cleveland → 24; usually equals numberFirst).
numberLabel String! Humanized ordinal(s), e.g. "22nd & 24th" or "46th".
yearsLabel String Years served, e.g. "1885–1889, 1893–1897".
actionCount Int! Count of actions on file (executive orders, vetoes, etc.).
termCount Int! Number of presidency terms (Cleveland → 2).
executiveOrders Int Executive orders on file (from presidents.data; null where unavailable).
vetoes Int Total vetoes (regular + pocket) from presidents.data; null where unavailable.
judicialAppointments Int Federal judges appointed (presidents.data); null where unavailable.
scotusAppointments Int Supreme Court justices appointed (presidents.data); null where unavailable.
internalUrl String!
sourceRef Reference Wikipedia/Wikidata record (provenance).
approvalAvg Float Gallup job-approval term-average % (adapted by the American Presidency Project). Opinion polling, not a fact; null pre-"1937" / no data.
approvalHigh Float Highest Gallup approving % on record for the president.
approvalLow Float Lowest Gallup approving % on record for the president.
approvalLatest Float Most recent Gallup approving % on record.
approvalReadings Int Number of Gallup readings on file.
approvalSourceRef Reference Gallup / American Presidency Project provenance for the approval figures.
PresidentAction A presidential action (executive order, veto, treaty, appointment, proclamation, notable act, …).
FieldType
id ID!
actionType String! executive_order | proclamation | veto | signed_law | treaty | nomination | pardon | military_action | address | notable.
typeLabel String! Humanized type label, e.g. "Executive Order".
title String!
description String
actionDate String
number String
issues [String!]! Impact/policy-area issue tags (neutral, topical).
internalRef String Internal CivicGate page when the action maps to one (a signed law → its bill).
overridden Boolean True when a veto was overridden by Congress (null otherwise). Only meaningful for veto actions.
sourceRef Reference External provenance (Federal Register / Senate.gov / etc.).
sentiment ActionSentiment! Attributed community sentiment (users' views).
PresidentialAction One presidential action — an executive order, proclamation or memorandum, scraped from whitehouse.gov.
FieldType
id ID!
title String!
category String The site own label — Executive Orders, Proclamations, Presidential Memoranda. NULL when the page did not carry one; never guessed.
publishedAt String
aiSummary String Neutral bullet-point summary. NULL means not yet summarized, which the UI says rather than leaving a blank.
charLen Int Length of the stored full text, so a caller can tell a real document from a stub.
bodyHtml String The full text as published, paragraph-structured. Only fetched when asked for — an action runs to tens of thousands of characters, so the listing never carries it.
bodyText String Plain text, for callers that want to do their own rendering.
presidentSlug String The president who signed it, resolved from the date at ingest. NULL when we could not attribute it; the action is still real and still stored.
presidentName String
presidentUrl String
internalUrl String!
sourceRef Reference The whitehouse.gov page this was read from, and when — a scraped source must stay traceable.
fetchedAt String
PresidentialActionCategoryCount
FieldType
category String!
count Int!
PresidentialActionSummary What we hold for one president, so the section can state its own coverage.
FieldType
total Int!
years [Int!]! Every year in which this president signed something, newest first — the year rail for the section.
byCategory [PresidentialActionCategoryCount!]! Per-category counts, most first.
latest String Publication date of the newest action we hold, so a reader can see how current this is.
PresidentProfile A president profile — the person, their terms, background facts, stats, and recent actions.
FieldType
president President!
terms [PresidentTerm!]!
facts [PersonFact!]! Neutral, sourced background cliffnotes (M02/M10) — reuses the person-facts spine.
stats PresidentStats!
recentActions [PresidentAction!]! The most recent actions (the full searchable list is via presidentActions).
approvalSeries [ApprovalPoint!]! Gallup approve-vs-disapprove readings over the term (chronological), for the profile chart. Opinion polling; empty when none on file.
approvalSourceRef Reference Gallup / American Presidency Project provenance for the approval series.
PresidentStats Countable presidential stats (coverage-honest — null where unavailable/pre-data).
FieldType
daysInOffice Int Days in office (summed across terms).
termCount Int!
executiveOrders Int
vetoesRegular Int
vetoesPocket Int
vetoesOverridden Int
judicialAppointments Int
scotusAppointments Int
approvalAvg Float Gallup job-approval average / high / low (only ~1937+; null before).
approvalHigh Float
approvalLow Float
PresidentTerm One presidency (a term).
FieldType
presidencyNumber Int!
termStart String
termEnd String
party String
electionYear Int
vicePresident String
howEnded String How the term ended: completed | died | assassinated | resigned | not-reelected | term-limited.
PrivacyFacet M16/E04 — one configurable facet of a member's information.
FieldType
key String!
label String!
help String!
group String!
tier String! The tier currently in force (the member's choice, or the catalog default when unset).
defaultTier String! The catalog default, so the UI can show what 'unset' means.
PrivacySettings
FieldType
facets [PrivacyFacet!]!
tiers [PrivacyTier!]!
PrivacyTier A visibility tier plus the copy that explains it — the UI must never describe a tier we do not have.
FieldType
key String!
label String!
blurb String!
level Int!
ProfileDetails
FieldType
location ProfileLocation
interests [ProfileInterest!]!
positions [ProfilePosition!]!
connectionCount Int Null when the member does not publish their connection count to this viewer.
tabs [ProfileTab!]!
ProfileInterest
FieldType
label String!
url String
ProfileListItem
FieldType
id String!
label String!
sublabel String
url String
at String
ProfileLocation City/state/country only. The stored address line and postal code are NEVER exposed, at any tier.
FieldType
city String
state String
country String
ProfilePosition
FieldType
issueSlug String!
issueName String!
stance String!
ProfileTab A tab the viewer is allowed to see, with its row count.
FieldType
key String!
label String!
count Int!
PublicAsset A federal real-property asset the government OWNS or LEASES (M06 Public Asset Locator), from the GSA Inventory of Owned and Leased Properties (IOLP; public-domain / CC0). Coverage-honest: every optional attribute is nullable (a missing sqft / year / lease detail renders "—", never a fabricated value); congressionalDistrict is DECODED to the "CA-12" form.
FieldType
id ID! Stable synthetic id (e.g. "gsa_iolp:owned:AK0001").
name String Real Property Asset Name (null for unnamed land).
assetType String BUILDING / LAND / PARKING / … (IOLP asset type).
tenure String Tenure — owned | leased.
ownerAgency String Managing agency (e.g. "General Services Administration (GSA)").
installationName String Parent installation / campus, when present.
address PublicAssetAddress Street / city / state / zip address.
location PublicAssetLocation Point location (lat/lon), or null when not on record.
state String Convenience 2-letter state (also in address.state).
city String Convenience city (also in address.city).
congressionalDistrict String U.S. House district in "CA-12" form (decoded from the raw IOLP code; at-large → "AK-0"). Null when the code is absent/unparseable.
sizeSqft Float Rentable square feet (null when unknown).
vacantSqft Float Vacant / available square feet (null when unknown).
yearBuilt Int Year built — owned assets only (null otherwise).
leaseNumber String Lease number — leased assets only.
leaseExpiration String Lease expiration (ISO date) — leased assets only.
sourceRef Reference Provenance — the GSA IOLP record (label "GSA IOLP", source "gsa.gov").
PublicAssetAddress Street address of a public asset (M06). Every field nullable — coverage-honest.
FieldType
street String
city String
state String
zip String
PublicAssetLocation Point location of a public asset (M06).
FieldType
lat Float!
lon Float!
PublicAssetStateFacet State facet for the Public Asset Locator (M06) — a state with its count of federal assets on record.
FieldType
state String! 2-letter postal code.
stateName String Full state name.
count Int! Number of assets on record for the state.
PublicAssetSummary Compact public-asset counts for a scope (M06) — for section headers. Zeroes (never fabricated) until the ingest has run.
FieldType
total Int! Total assets in scope.
owned Int! Owned assets in scope.
leased Int! Leased assets in scope.
totalSqft Float Total rentable square footage across the scope (null when nothing on record).
sourceRef Reference Provenance — the GSA IOLP dataset.
PublicUserProfile A world-readable user profile for the /user/:handle page (M16/E04). Resolved by username or userId.
FieldType
userId ID!
username String
displayName String
bio String
joinedAt String When the profile was created (ISO).
publicActivity Boolean! E03 Layer A — whether this user opted to display their civic activity publicly (default false).
civicActivity CivicActivity E03 Layer A — the user's OWN, non-competitive civic-activity summary, present ONLY when they opted in (publicActivity=true); null otherwise. Never a rank vs. anyone — just their own facts, shown by their choice.
PushConfig Whether push is available, and the VAPID public key to subscribe against.
FieldType
available Boolean!
publicKey String Withheld when the server has no private key — a subscription minted against it could never receive anything.
note String
PushDevice One browser registered for push. A user is not a device; permission is granted per browser.
FieldType
id ID!
label String
userAgent String
createdAt String
lastSuccessAt String
failureCount Int! Consecutive soft failures. A dead endpoint (404/410) is deleted outright rather than counted.
PushUnsubscribeResult
FieldType
removed Int!
pushEnabled Boolean! Whether the master push switch is still on (false once the last device is gone).
RecipientProfile A federal-money recipient's profile (M04) — an organization receiving federal funds, aggregated over time + by state.
FieldType
id ID!
name String!
totalCents Float! Total federal money received (all years we hold).
latestFiscalYear Int Most recent fiscal year we have for this recipient.
series [FundingSeriesPoint!]! Federal money received per fiscal year (oldest→newest) — for the over-time chart.
byState [RecipientStatePoint!]! States where this recipient's money lands (largest first).
sourceRef Reference
internalUrl String!
RecipientStatePoint One state's share of a recipient's federal money (M04).
FieldType
code String!
name String
amountCents Float!
Reference Provenance link for a data point or section — where CivicGate got the data.
FieldType
label String!
url String!
source String!
RefetchBillDetailResult
FieldType
ok Boolean!
id ID!
status String Legislative status after the refresh.
changed Boolean! True if anything changed (false = already up to date).
note String!
RefreshBillsResult
FieldType
ok Boolean!
status String! updated | recent (cooldown) | nodata (Congress.gov returned nothing).
lastSyncedAt String When CivicGate last pulled recent bills (ISO).
note String! Human-readable summary of the refresh.
RefreshBillTextResult
FieldType
ok Boolean!
id ID!
status String! available | unavailable — the resulting text status.
message String!
RefreshFinanceResult
FieldType
ok Boolean!
status String! updated | recent (cooldown) | nodata (FEC has none yet) | notfound.
message String!
financeUpdatedAt String When CivicGate last pulled (ISO).
receiptsCents Float
RelatedBill A bill related to this one (companion/identical/procedural). internalUrl is set only when it's in CivicGate.
FieldType
id ID!
number String!
title String
congress Int
relationship String
internalUrl String
sourceRef Reference
RelatedCommittee An affiliated committee (M04) — name from FEC (no id exposed); internalUrl set only when we track a same-named committee.
FieldType
name String!
internalUrl String
sourceRef Reference
RelatedSponsor A leadership-PAC sponsor (M04) — the candidate/officeholder; internalUrl + party/state set when matched to a tracked member.
FieldType
name String!
party String
state String
internalUrl String
sourceRef Reference
ReminderOffset One scheduled reminder before an election. Days before; 0 is election day.
FieldType
days Int!
enabled Boolean!
label String!
ReminderPrefs A user's reminder schedule for one target type.
FieldType
targetType String!
enabled Boolean!
offsets [Int!]! Days BEFORE the event; 0 = the day itself.
timeOfDay String! Local HH:MM on a 30-minute grid.
timezone String! IANA zone actually stored/used.
timezoneKnown Boolean! FALSE when we fell back to a default — the UI asks rather than silently picking one.
timezoneLabel String! e.g. EST (GMT-5), computed from the live offset so DST is reflected.
standardOffsets [Int!]!
maxOffsetDays Int!
RepTarget E02/E11 — one of the signed-in user's OWN representatives, resolved from their saved location or a ZIP prompt. targetType/targetId are what sendContactMessage expects. sendable = a real email send is possible (a state legislator with an email on file); Congress has no public email → hand-off (copyable draft + official form).
FieldType
targetType String!
targetId ID!
bioguideId String Congressional bioguide id for a federal member (matches roll-call votes); null for state legislators.
name String!
party String
chamber String senate | house (federal) or upper | lower (state).
chamberLabel String! Human chamber label — "U.S. Senate" | "U.S. House" | "State Senate" | "State House".
state String
district String
image String
internalUrl String
email String A deliverable email, when known (some state legislators). Null for Congress.
contact MemberContact! Contact channels (official site / phone / form / office / Congress.gov).
sendable Boolean! True when CivicGate can send a real email on the user's behalf (state legislator with an email).
ResolvedPlace M02/M06 — an address resolved into fields a form can fill, plus coordinates for a map.
FieldType
line1 String
city String
state String Short region code — a 2-letter state for the US.
stateName String
postal String
country String
countryCode String ISO 3166-1 alpha-2.
lat Float
lng Float
formatted String
RevolvingDoorEntry One former government official now registered as a federal lobbyist (M05 revolving-door lens). Neutral registry: a non-null covered position means the person's Lobbying Disclosure Act filings flagged a prior covered U.S. government role. firms = the lobbying registrants (firms) they filed under; clients = the interests those filings represent; filings = distinct LDA filings; latestYear = most recent filing year on record.
FieldType
lobbyistName String!
coveredPosition String!
firms [String!]!
clients [String!]!
filings Int!
latestYear Int
sourceRef Reference
RollCallMemberVote One member's position on a roll call (F03.12).
FieldType
bioguideId String!
name String!
memberUrl String!
party String
state String
position String! yea | nay | present | not_voting.
RollCallPartyTally
FieldType
party String!
yea Int!
nay Int!
present Int!
notVoting Int!
RollCallTotals
FieldType
yea Int!
nay Int!
present Int!
notVoting Int!
SearchHit One universal-search result (M11). type = person | candidate | bill | committee | issue | policyArea | document. internalUrl → the canonical CivicGate page; sourceRef → the upstream record when known.
FieldType
type String!
id ID!
label String!
sublabel String Short context — e.g. a person's party+state+role, a bill number, a committee's chamber.
internalUrl String!
sourceRef Reference
imageThumb String Portrait for a PERSON hit, so the row reads as a face rather than a line of text. Null for every non-person type and for people we hold no photo for.
SearchResults Grouped universal-search results (M11), one bucket per entity type, plus the total match count across all buckets.
FieldType
total Int!
semantic Boolean! True when pgvector SEMANTIC matches (by meaning) were merged into the bills/issues/documents groups (T2). Full "search" only — never the typeahead.
people [SearchHit!]!
bills [SearchHit!]!
committees [SearchHit!]!
issues [SearchHit!]!
candidates [SearchHit!]!
documents [SearchHit!]!
policyAreas [SearchHit!]!
organizations [SearchHit!]! Organizations — lobbying firms/clients + federal-money recipients (M11).
pacs [SearchHit!]! PACs / political committees (M11).
agencies [SearchHit!]! Federal agencies (M11).
counties [SearchHit!]! Counties / parishes / boroughs / planning regions (M11/M06). A RETIRED county code still matches, and says so in its sublabel.
electionOfficials [SearchHit!]! State election officials — chief election official + state election director (M11/M08).
mediaOutlets [SearchHit!]! News/media outlets CivicGate aggregates coverage from, each with its disclosed lean (M11/M12).
opinions [SearchHit!]! Court opinions / cases (M20) — named judicial decisions.
stateLegislators [SearchHit!]! State legislators (M03 state tier) — 7,300+ across 49 states. Previously absent from search entirely.
ServiceLog A tail of a service's journald logs.
FieldType
service String!
unit String!
lines Int!
text String!
state String
SignalCommittee A committee a member sits on that oversees the traded sector (part of a ConflictSignal).
FieldType
name String
systemCode String!
role String
slug String Friendly committee slug (from the committee index), for linking to the internal committee page.
internalUrl String! Internal CivicGate committee page URL (/committees/:slug|systemCode).
SimilarBill S1 — a bill semantically similar to another (M03 Bill Similarity Engine). Distinct from RelatedBill (procedural companion/identical links): this is a text/summary-embedding match, so it also surfaces reintroductions across congresses. similarity ∈ (0,1], higher = closer.
FieldType
id ID!
number String!
title String
status String
congress Int
introducedAt String
latestActionAt String Date of the bill's latest action — the date that corresponds to the status field. Null when unknown.
similarity Float! Cosine similarity to the source bill (1 - cosine distance over the stored local embeddings). 1.0 = identical embedding.
internalUrl String!
SponsoredBill
FieldType
id ID!
number String!
title String!
summary String
relation String! 'sponsored' or 'cosponsored'.
summaryExcerpt String One-line excerpt parsed from the bill text ('To …' / 'Reaffirming …').
introducedAt String ISO date the bill was introduced (may be null for legacy rows).
internalUrl String! CivicGate-internal bill page.
sourceRef Reference Upstream source record (Congress.gov).
textRef Reference Full bill text (Congress.gov).
aiSummary String Neutral plain-language summary of the bill's full text (claude-broker). Null until generated.
StateBill A state bill (M03, state tier) from OpenStates — the state-legislature counterpart to Bill/BillSummary, kept completely separate. sponsors/actions are resolved lazily (detail page only).
FieldType
id ID!
state String! USPS state code, uppercase (e.g. 'CA').
session String! Legislative session identifier (e.g. '20252026').
identifier String! Display bill number, e.g. 'AB 2114'.
chamber String Originating chamber: upper | lower | legislature.
title String!
classification [String!]! OpenStates bill classification (['bill'] | ['resolution'] | …).
subjects [String!]! OpenStates subject tags (for issue-tagging later).
status String Neutral legislative milestone (Introduced | Passed One Chamber | Passed Legislature | To Executive | Vetoed | Became Law).
latestActionDesc String
latestActionDate String
firstActionDate String
abstract String OpenStates bill summary/abstract, when provided.
internalUrl String! CivicGate-internal page for this bill (/state-bill/:id).
sourceRef Reference OpenStates provenance (the canonical source record).
fullText String Extracted full bill text (from the best OpenStates version document), when fetched — else null.
hasFullText Boolean! True when full text has been fetched + stored (coverage-honest gate for the page).
fullTextRef Reference Provenance for the full text: the state-legislature version document it was extracted from.
aiSummary String Neutral plain-language AI summary of the bill (claude-broker), when generated — else null.
summaryUpdatedAt String When the AI summary was last generated (ISO).
textVersions [StateBillTextVersion!]! OpenStates bill-text version documents ([{note,date,url,mediaType}]) — coverage-honest (empty when none).
sponsors [StateBillSponsor!]!
actions [StateBillAction!]!
StateBillAction One entry in a state bill's action timeline (M03).
FieldType
date String
description String!
chamber String
classification [String!]!
StateBillCoverage Per-state coverage of the state-bills index (M03) — count + last-synced (coverage-honest).
FieldType
state String!
billCount Int!
lastSyncedAt String
sessions [String!]! The sessions we hold bills for in this state (newest first).
StateBillCursor One state's round-robin ingest cursor (admin) — scheduler progress for the Jobs tab.
FieldType
state String!
sessions [String!]! Ordered sessions (newest→oldest, ≥ oldest_year) the scheduler walks.
sessionIdx Int! Index into sessions of the current session.
nextPage Int! Next page within the current session.
done Boolean! True once this state has been ingested back to oldest_year.
billsIngested Int! Running upsert count for this state.
lastRunAt String
lastNote String
StateBillsPage A page of the state-bills index (M03) + the total + facet vocabularies (states/sessions/statuses).
FieldType
bills [StateBill!]!
total Int!
states [String!]!
sessions [String!]!
statuses [String!]!
StateBillSponsor A state bill's sponsor (M03). internalUrl → the sponsor's CivicGate people page when matched to a state legislator (else null; the raw name is always shown — coverage-honest).
FieldType
personId String
name String!
classification String
isPrimary Boolean!
party String Normalized party (D | R | I | N | O) when the sponsor matches a state legislator we track — else null.
matched Boolean! True when the ocd-person id matches a state legislator we track.
internalUrl String CivicGate people page for a matched sponsor (/legislator/:id) — null for unmatched (raw name only).
imageThumb String Small square portrait for the listing avatar. Falls back to the full-size image, and is null when we hold no photo — the UI shows initials rather than a broken img.
StateBillTextVersion One OpenStates bill-text version document (M03 state tier) — a link to a published text of the bill.
FieldType
note String OpenStates version note/label (e.g. 'Introduced', 'Amended Assembly', 'Enrolled').
date String Publication date of this version (ISO), when known.
url String! Direct URL to the document (usually PDF, sometimes HTML) on the state legislature site.
mediaType String MIME type of the document, when known (text/html, application/pdf, …).
sourceRef Reference Provenance reference to the document.
StateCampaignFinanceReport State-tier campaign-finance report (M04, FollowTheMoney / NIMP). GATED — coverage-honest.
FieldType
state String!
cycle Int
available Boolean! False until FollowTheMoney is wired + data ingested; the UI then renders a placeholder, never a fake number.
entries [StateCampaignFinanceRow!]! Top state candidates by money raised for the state + cycle, largest first. Empty when unavailable.
totalRaisedCents Float! Sum of the entries' raised totals.
note String Honest coverage note (e.g. the not-yet-wired state).
sourceRef Reference
StateCampaignFinanceRow One state candidate's fundraising total for a cycle (M04, FollowTheMoney). Cite FollowTheMoney.
FieldType
entityName String!
office String
state String!
cycle Int!
totalRaisedCents Float
sourceRef Reference
StateCompareRow One state's row in the cross-jurisdictional comparison (F11) — federal funding + delegation, coverage-honest.
FieldType
code String!
name String!
latestFiscalYear Int
totalFundingCents Float
fundingSeries [FundingSeriesPoint!]!
representatives Int! U.S. House members from this state.
senators Int! U.S. Senators from this state (normally 2).
demCount Int! Delegation party split (D / R / other counts).
repCount Int!
otherCount Int!
internalUrl String!
StateFundingPoint Federal funding total for one state in a fiscal year (M06 choropleth).
FieldType
code String!
name String
amountCents Float!
internalUrl String!
fiscalYear Int!
StateHub Per-state civic hub (M06/M07) — a coverage-honest aggregation of everything CivicGate already holds about ONE U.S. state. Pure composition of existing data; every section is empty (never fabricated) when its data isn't on file.
FieldType
code String! Two-letter state code (uppercase).
name String!
senators [Person!]! The state's current U.S. Senators (normally 2).
houseReps [Person!]! The state's current U.S. House delegation, ordered by district.
governor Governor The sitting governor (M02), or null when not on file.
legislature StateLegSummary! State-legislature summary — member counts by chamber and party (M07). Empty chambers when no roster is ingested.
recentStateBills [StateBill!]! A few of the state's most-recently-active state bills (M03 state tier), newest action first.
upcomingElections [Election!]! Upcoming elections touching the state (M08), soonest first.
pastElections [Election!]! Recent (past) elections touching the state (M08), most recent first.
money StateHubMoney Federal-money rollup for the state (M04/USAspending), or null when none is on file.
delegationRef Reference Provenance for the U.S. delegation section (null when empty).
legislatureRef Reference Provenance for the state-legislature section (null when empty).
StateHubMoney Federal-money rollup for a state (M04) — the latest fiscal year's total plus the full over-time series, linking to the state's funding page.
FieldType
latestFiscalYear Int
totalFundingCents Float
fundingSeries [FundingSeriesPoint!]!
internalUrl String!
sourceRef Reference
StateLegBill A compact state-bill row for a legislator's sponsorship lists (M03). internalUrl → /state-bill/:id.
FieldType
id ID!
identifier String!
title String!
status String
latestActionDate String
internalUrl String!
sourceRef Reference
StateLegChamber One chamber of a state legislature — its member count and party split (M07).
FieldType
chamber String! upper (state Senate) | lower (state House/Assembly).
label String! Human label, e.g. "State Senate".
total Int!
demCount Int!
repCount Int!
otherCount Int!
StateLegislator A member of a state legislature (M07) — state Senate (chamber="upper") or state House/Assembly ("lower"), from OpenStates.
FieldType
id ID!
state String!
chamber String! upper (state Senate) | lower (state House/Assembly).
chamberLabel String! Human chamber label — "State Senate" | "State House".
district String District identifier (usually a number).
name String!
party String Normalized party — D | R | I | N (nonpartisan) | O.
image String
imageThumb String
url String Official / OpenStates page (provenance).
email String Public email on file (OpenStates), when present — enables a real CivicGate-sent message (E11 → E02).
current Boolean Currently sitting (M07, migration 0109). Reads are current-only today; departed members are retained for history.
termStartYear Int Explicit term start year — reserved for a future authoritative backfill (null until then).
termEndYear Int Explicit term end year — reserved for a future authoritative backfill (null while serving).
sinceYear Int First year CivicGate observed this member serving (from first_seen_at) — an honest tenure floor until term dates are backfilled.
StateLegislatorProfile A state legislator's public profile (M03/M07) — identity + contact + their state-bill sponsorships. Backs /legislator/:id.
FieldType
id ID!
name String!
state String!
stateName String! Full state name (e.g. "Pennsylvania").
chamber String! upper (state Senate) | lower (state House/Assembly).
chamberLabel String! Human chamber label — "State Senate" | "State House".
district String
party String Normalized party — D | R | I | N (nonpartisan) | O.
image String
imageThumb String
url String Official / OpenStates page (provenance).
email String Public email on file, when present — enables a real CivicGate-sent message (E11 → E02).
socials PersonSocials Social / official links (pre-normalized to full URLs).
sourceRef Reference OpenStates / official provenance for this legislator.
contact RepTarget! The contact target for the E11/E02 send flow (email → sendable). Reuses the RepTarget shape.
sponsoredBills [StateLegBill!]! State bills this legislator PRIMARY-sponsored (newest by latest action; bounded, coverage-honest).
cosponsoredBills [StateLegBill!]! State bills this legislator cosponsored / coauthored (newest by latest action; bounded, coverage-honest).
StateLegSummary Member counts for a state legislature, split by chamber (M07).
FieldType
total Int! Total legislators on file across all chambers.
chambers [StateLegChamber!]!
StatePerson A person tied to a state (M02/M04) with money received per year — for the state funding people list.
FieldType
name String!
type String! governor | senator | representative | candidate.
party String
internalUrl String!
totalCents Float!
moneyByYear [FundingSeriesPoint!]!
StockTrade
FieldType
id ID!
memberName String!
bioguideId String
memberUrl String
state String
party String
chamber String
owner String
ticker String
assetName String!
assetType String
sector String
transactionType String! purchase | sale | exchange.
transactionDate String
disclosureDate String
amountRangeLabel String
amountRangeLowCents Float
amountRangeHighCents Float
comment String
flags [TradeFlag!]! Conflict / timing flags computed from committee assignments + disclosure timing.
sourceRef Reference Link to the OFFICIAL House Clerk / Senate eFD disclosure filing.
StockTraderRow
FieldType
bioguideId String
memberName String!
memberUrl String
party String
state String
tradeCount Int!
flaggedCount Int!
volumeCents Float
StockTradesPage
FieldType
total Int!
trades [StockTrade!]!
StockTradeSummary
FieldType
count Int!
tickerCount Int!
flaggedCount Int!
lastDisclosedAt String
Subscriber
FieldType
user PersonSummary!
since String
followingBack Boolean! Do I follow them back?
connectionState String!
SubscriberPage
FieldType
items [Subscriber!]!
nextCursor String
total Int!
SubscriptionPage One page of the signed-in user's subscriptions (M17). Same shape as FavoritePage.
FieldType
items [FeedSubscription!]!
total Int!
limit Int!
offset Int!
hasMore Boolean!
types [EntityTypeCount!]!
note String
TradeFlag A computed signal on a trade (M05). Evidence-grounded, not a legal conclusion. severity: high | medium | info.
FieldType
kind String!
label String!
detail String!
severity String!
evidenceUrl String
UpcomingElection
FieldType
id ID!
name String!
type String!
date String! Calendar date, YYYY-MM-DD, in US election time — never a UTC-shifted date.
url String!
jurisdiction String
daysAway Int!
UploadGrant A presigned grant: the browser PUTs bytes straight to object storage with this, then calls finalizeUpload.
FieldType
mediaId ID!
uploadUrl String! Time-limited presigned PUT URL. Send the raw file as the body with the declared Content-Type.
publicUrl String! Where the object will be readable once the PUT completes.
kind String!
sortOrder Int!
UploadLimits Server-enforced upload limits. Editable in the admin Config tab (app_config) without a deploy.
FieldType
maxFilesPerPost Int!
maxFileBytes Float!
maxNoteChars Int!
UploadResult
FieldType
ok Boolean!
message String
Upvote A site entity the signed-in user has upvoted (M03/engagement). Stored in the generic entity_likes table, so ANY entity type can appear here; the label is resolved per type.
FieldType
entityType String! Entity kind — bill, person, official, and anything else the ☆/▲ bar can be attached to.
entityId ID!
label String! Human label — a person's name, a bill's number + title. Falls back to the raw id when nothing on file matches (see resolved); NEVER a fabricated name.
url String Internal link to the upvoted entity. Null when the type has no page.
resolved Boolean! False when the id matched no row and label is therefore the raw id.
upvotedAt String When the upvote was recorded (ISO).
UpvotePage One page of the signed-in user's upvotes (M16/E04). Same shape as FavoritePage.
FieldType
items [Upvote!]!
total Int!
limit Int!
offset Int!
hasMore Boolean!
types [EntityTypeCount!]!
note String
UserAction E02/E11 — one entry in the signed-in user's civic-action history (account "My actions").
FieldType
id ID!
actionType String! contact | urge_vote.
targetType String!
targetId ID!
targetName String
billId ID
billNumber String The bill's number (e.g. "HR 1234"), when the action was about a bill.
issueId ID
issueName String The issue's name, when the action was about an issue.
stance String support | oppose | neutral.
channel String
status String! sent | handoff | failed.
createdAt String!
UserPost M17/E03 — a user-authored post on their own wall.
FieldType
id ID!
userId String!
kind String! post | status | content | profile_update — the sub-category chip shown on the feed row.
title String
body String!
url String Optional link the post is about.
createdAt String
authorName String Author's display handle, resolved from the user directory.
authorUsername String
media [PostMedia!]! Attachments in display order.
status String! publishing (media still uploading) | published | failed.
mediaCount Int!
parentPostId ID Set when this post is a REPLY to another post.
parentMediaId ID Set when this post is a comment (or a reply in a comment thread) about one attachment.
replyCount Int!
permalink String Canonical page for this post — distinct from the url field, which is a link the post is ABOUT.
preview PostPreview M17 — the preview card under the post's text. Null when the post has none or the author removed it.
VirtualVoteOption VIRTUAL VOTING (E19/M08) - one candidate's share of a contest straw poll. Counts only. There is no field here, and no query anywhere in this schema, that can say WHO answered for a candidate. A member's answer is political-belief data about a private individual, so the read does not exist rather than merely defaulting closed.
FieldType
candidateId ID!
name String!
party String
slug String
internalUrl String Their CivicGate profile, or null when they have none - never a dead link.
count Int! Answers cast for this candidate in this contest.
share Float! Percent of answers cast in this contest, 0-100, to one decimal. 0 when nobody has answered. Shares are not nudged to sum to exactly 100.
VirtualVoteResult The outcome of casting, changing or withdrawing a straw-poll answer: the reader's own state plus the fresh count, in one round trip so a client cannot paint the two disagreeing.
FieldType
myVote MyVirtualVote Null after withdrawing.
tally VirtualVoteTally!
VirtualVoteTally The running count of a contest straw poll (E19/M08). Public: readable signed out, and still readable after the election so the count stays checkable against what actually happened. Every candidate standing in the race is listed, including those nobody has answered for - a chart built only from the answers given makes a contested race look uncontested. RENDER THE note FIELD. A percentage beside a candidate name on a civic platform reads as a poll of the electorate or a forecast of the result, and this is neither.
FieldType
contestId ID!
office String The office as published, e.g. U.S. House PA-03. Null when the contest carries none.
total Int! Total answers cast in this contest.
options [VirtualVoteOption!]!
votingOpen Boolean! True while the election is still ahead. Enforced server-side, not merely rendered: casting or withdrawing after the election date is refused.
electionDate String ISO date of the election, UTC midnight of its true calendar date. Null when unknown.
note String! A plain sentence saying this is a straw poll of CivicGate members, not a vote and not a prediction. Always populated.
Vote
FieldType
billId ID
position String! yea | nay | present | not_voting.
votedAt String!
bill Bill
chamber String house | senate.
rollCall Int
question String e.g. 'On Passage', 'On Motion to Recommit'.
result String Passed | Failed | Agreed to | …
billNumber String Denormalized bill label, e.g. 'H.R. 1234' (present even when the bill isn't ingested).
billTitle String Title of the bill, when we have it ingested.
billInternalUrl String Internal bill page — constructed from the bill number even if not yet ingested (page shows a stub).
totalYea Int Whole-chamber outcome totals for this roll call.
totalNay Int
totalPresent Int
totalNotVoting Int
sourceRef Reference Upstream roll-call record.
issues [VoteIssueTag!]! Direction-tagged issues this vote's bill belongs to (for the /votes issue+stance filter). Empty when untagged.
VoteAlignment Vote-alignment & party-unity scoring for one member (C2, E18/M03). Neutral-administrator posture: descriptive rates ("votes with party 92% of the time"), never a loyalty verdict. Computed ENTIRELY from CivicGate's ingested roll-call votes. Coverage-honest: partyUnityPct/crossPartyPct are null for non-D/R members (no major-party majority to measure against) or when no party-unity votes were cast; peer lists are empty until enough shared votes exist.
FieldType
congress Int! The Congress this scoring covers (e.g. 119).
chamber String The member's chamber (house|senate) — the scope for the party-unity median baseline + peers.
party String The member's party at compute time (D|R); other parties aren't party-unity-scored.
partyUnityPct Float CQ-style party unity: of the party-line-eligible roll calls the member cast a yea/nay on, the share voted WITH their own party's majority (0–1). Null for non-D/R members or no eligible votes.
crossPartyPct Float The share of those same party-line-eligible votes cast WITH the OTHER major party's majority (0–1). Null when partyUnityPct is.
votesConsidered Int! Party-line-eligible roll calls the member cast a yea/nay on (the party-unity denominator).
partyMedianPct Float Median party-unity across same-chamber, same-party members (comparison baseline); null when unavailable.
topAligned [AlignmentPeer!]! The members this member most often votes the same as (highest agreement first), above a shared-vote threshold.
mostOpposed [AlignmentPeer!]! The members this member most often votes differently from (lowest agreement first), above a shared-vote threshold.
sourceRef Reference Provenance — the member's roll-call record on Congress.gov (the underlying votes).
VoteAlignmentRow One ranked member on the vote-alignment / party-unity leaderboard (D1, E18/M03). party/chamber are as scored at compute time. partyUnityPct/crossPartyPct are 0–1 shares; neutral descriptive rates, never a verdict. Coverage-honest: image is null when we have no photo.
FieldType
rank Int! 1-based rank within the returned (ordered) list.
id ID! The member's canonical slug/id (segment of internalUrl).
name String!
party String Party as scored (D|R).
state String
chamber String Chamber as scored (house|senate).
partyUnityPct Float Share of party-line-eligible roll calls voted WITH the member's own party majority (0–1).
crossPartyPct Float Share of those same votes cast WITH the OTHER major party's majority (0–1).
votesConsidered Int! Party-line-eligible roll calls the member cast a yea/nay on (the denominator).
image String The member's rehosted thumbnail photo (M02), or null when we have none.
internalUrl String!
sourceRef Reference Provenance — the member's roll-call record on Congress.gov.
VoteCoverage What a chamber or committee publishes about its committee votes — so an empty list can be explained rather than merely shown.
FieldType
coverage String! rollcall | tally_only | narrative | none.
note String!
referenceUrl String
VoteIssueTag One direction-tagged issue a voted-on bill belongs to (M23) — direction = advances | restricts.
FieldType
slug String!
name String!
direction String!
VoteTally Tally of a member's roll-call positions (M03).
FieldType
yea Int!
nay Int!
present Int!
notVoting Int!
total Int!
VotingIssue An issue a member has direction-tagged votes on (for the /votes issue-filter dropdown).
FieldType
slug String!
name String!
voteCount Int!
WorldIndicatorMeta E17 — metadata for one World Bank indicator in the ingested starter set (for the selector + coverage).
FieldType
code String! World Bank indicator id (e.g. GOV_WGI_RL.EST, SP.POP.TOTL).
name String! CivicGate-friendly label (e.g. "Rule of Law", "Population, total").
unit String Unit hint for display (e.g. "index (−2.5…+2.5)" for WGI, "people" for population). Null when unknown.
countryCount Int! Number of countries with a reported value for this indicator (coverage denominator).
latestYear Int Latest observation year present for this indicator.
WorldIndicatorReport E17 — ranked comparative report for ONE World Bank indicator across countries. GATED — coverage-honest.
FieldType
available Boolean! False until ingest:world-indicators has run; the UI then renders an honest placeholder, never a fake number.
indicator WorldIndicatorMeta The selected indicator's metadata (null when no data).
indicators [WorldIndicatorMeta!]! All ingested indicators (for the selector), in a stable display order.
rows [CountryIndicatorRow!]! Countries ranked by value (largest first), the US flagged. Empty when unavailable.
year Int Latest observation year represented in the rows (coverage-honest).
note String Honest coverage / scope note (starter set, source, ranking semantics, or the not-yet-wired state).
sourceRef Reference
ZipDistrict A ZIP resolved to its U.S. House district (M02/M06). A ZIP can span multiple districts; this is the district containing the ZIP centroid.
FieldType
zip String! The 5-digit ZIP that was resolved.
state String! Two-letter state code (uppercase, e.g. "TX").
stateName String Full state name (e.g. "Texas").
district Int! House district number (0 for at-large / single-district states).
place String Primary place name for the ZIP (e.g. "Austin").
stateUpperDistrict String State Senate (upper) district identifier for the address (M07), if resolved.
stateLowerDistrict String State House/Assembly (lower) district identifier (M07), if resolved.
countyName String County name for the ZIP, without the type word (e.g. "Philadelphia"). Derived from the same Census geocoder call as the district, so it costs nothing extra.
countyFips String 5-digit county GEOID for the ZIP (e.g. "42101").
county County The full county record, when the county table is loaded.
stateLegislators [StateLegislator!]! The address's state legislators (state Senator + state Rep) matched from those districts (M07).

Inputs 17

AssistantTurnInput M10 — one prior turn of the assistant conversation (client-held), sent back for follow-up context. role ∈ user | assistant.
FieldType
role String!
content String!
BackfillInput
FieldType
entityType String! Entity kind — currently 'politician'.
entityId ID! Bioguide id or slug.
features [String!]! Data features to backfill, e.g. ["bills", "donations"].
lookbackDays Int Only fetch items newer than this many days (omit for no lower bound).
limit Int Per-feature cap on rows fetched (default 50).
ContactSendInput E11 → E02 contact input. targetType ∈ politician | state_legislator | office. For a state_legislator, targetId is the OpenStates ocd-person id; a real send happens only when they have an email on file and the user is signed in. billId/issueId pin the message to its context; isConstituent is a soft, non-blocking flag.
FieldType
targetType String!
targetId ID!
subject String
body String!
channel String
templateId String
billId ID
issueId ID
isConstituent Boolean
stance String The USER's chosen stance for the account action history: support | oppose | neutral.
actionType String contact | urge_vote — how the account "My actions" list labels this. Defaults to contact.
targetName String Denormalized target label for the account list (e.g. "Sen. Padilla").
EntityKeyInput A (type, id) pair identifying any likeable/followable entity.
FieldType
entityType String!
entityId ID!
FeedFilterInput
FieldType
subjectGroups [String!] Subject FAMILIES: people | bills | users | civic. What the widget's filter buttons emit.
subjectTypes [String!] Concrete subject types (person, bill, state_bill, user, …). Combined with subjectGroups as a union.
eventTypes [String!] Concrete event types (bill_status, user_post, …).
subjectType String Restrict to ONE subject you follow.
subjectId ID
limit Int Page size, 1–50 (default 10).
cursor String Opaque cursor from the previous page's nextCursor.
sort String newest (default) | oldest
IssueUploadFileInput
FieldType
name String! Original filename — used only for the extension and display; the stored key is the media id.
mime String! Declared content type. Validated against an allowlist (SVG and HTML are excluded); the presigned URL binds it.
size Float! Declared size in bytes. Verified server-side after the upload — a presigned PUT cannot bind a size.
width Int
height Int
NotificationPrefsInput Upsert input for a user's notification preferences (M15). Omitted fields are left unchanged; categories replaces the whole bag.
FieldType
categories JSON
emailDigestFrequency String
emailEnabled Boolean
smsEnabled Boolean
pushEnabled Boolean Only false is honoured — push is enabled by granting the browser permission, not by a checkbox.
PersonFactInput Admin (M01/M11) input to create/update one curated background fact. id present = edit that row, absent = create. subjectId is the person's id/slug (resolved server-side). category ∈ achievement | role | controversy | background (defaults to background). Neutral, factual info only — never opinion.
FieldType
id ID
subjectId ID!
fact String!
category String!
sourceUrl String
sourceLabel String
PetitionInput Create/propose/update-petition input (E02.7). targetType ∈ politician | state_legislator; targetId is the bioguide / ocd-person id. proposerEmail/Name are only used by proposePetition (captured for the decision email; the server prefers the token's email/name when present).
FieldType
title String!
summary String
bodyMd String!
targetType String!
targetId String!
targetLabel String
billId ID
issueId ID
proposerEmail String
proposerName String
PostInput
FieldType
kind String post | status | content | profile_update (default post).
title String
body String! 1–5000 characters. Plain text; rendered as text, never as HTML.
url String Optional link this post is about.
preview PostPreviewInput M17 preview card. Supply for a LINK preview (known at compose time); a MEDIA preview is set with setPostPreview once the attachment ids exist.
hasMedia Boolean True when attachments will follow. Lets a media-only post be created with an empty body — the media IS the post.
PostPreviewInput M17/E03 — the preview card to show under a post. kind: link (an unfurled URL) or media (one of the post's own attachments). Omit or pass kind:null to show no preview.
FieldType
kind String link | media
url String The link the card points at (link kind).
image String Image to display. For a link this is the og:image; for media it is resolved from the attachment, so it may be omitted.
title String
excerpt String Short text under the title — the page description, or the attachment's note.
site String Site name for a link card, e.g. Reuters.
mediaId ID The attachment this card shows (media kind).
fit String How the image sits in the card: contain (default, whole image letterboxed) | cover (fills and crops).
ProfileInput
FieldType
username String Public handle (^[a-zA-Z0-9_]{3,20}$, case-insensitive unique). Rejected if malformed or taken.
displayName String
bio String
location JSON
preferences JSON
publicActivity Boolean E03 Layer A opt-in — show the user's own civic-activity on their public /user/:handle page. Default false.
phone String E.164 or a US 10-digit number. Setting a NEW number clears verification.
PushSubscriptionInput
FieldType
endpoint String! The push service URL the browser issued. Must be https.
p256dh String! The subscription's own public key — the payload is encrypted TO it.
auth String! The subscription's shared secret.
userAgent String
label String
ReminderPrefsInput
FieldType
targetType String
enabled Boolean
offsets [Int!]
timeOfDay String
timezone String
ShareTemplateInput E08 — share a user-authored contact template with the community (scope=general | bill | issue). Neutral platform; the content is the user's. Requires sign-in; moderatable.
FieldType
scope String!
billId ID
issueId ID
stance String support | oppose | neutral (the framing).
title String!
subjectTpl String
bodyMd String!
StanceInput M23 stance curation input. stance ∈ full_support | partial_support | oppose | partial_oppose | unknown. A sourceUrl is strongly encouraged (positions must be documented).
FieldType
issueSlug String!
personType String!
personId String!
personName String!
stance String!
note String
sourceUrl String
asOf String
UploadFileInput
FieldType
name String! Original filename — used only for the extension and display; the stored key is the media id.
mime String! Declared content type. Validated against an allowlist; the presigned URL binds it.
size Float! Declared size in bytes. Verified server-side after the upload — a presigned PUT cannot bind a size.
note String

Scalars 6

Boolean The `Boolean` scalar type represents `true` or `false`.

The `Boolean` scalar type represents `true` or `false`.

Float The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).

The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).

ID The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.

The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.

Int The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

JSON

Custom scalar.

String The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.