Type catalog
410 types · generated from the live schemaQueries 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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
kind | String! | |
status | String! | |
count | Int! |
AgencyListRow One agency row for the /agencies index (F7).
| Field | Type | |
|---|---|---|
id | ID! | |
name | String! | |
externalCode | String | |
totalCents | Float | |
latestFiscalYear | Int | |
awardCount | Int! | |
internalUrl | String! |
AgencyProfile A federal agency's award profile (F7 / M04).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
name | String! | |
uei | String | |
state | String | |
totalCents | Float! | |
awardCount | Int! |
AgencyStateRow Award dollars in one state, for an agency (F7).
| Field | Type | |
|---|---|---|
code | String! | |
totalCents | Float! | |
awardCount | Int! |
AlertChannels
| Field | Type | |
|---|---|---|
inApp | Boolean! | |
email | Boolean! | |
sms | Boolean! | |
push | Boolean! |
AlignmentPeer One peer in a member's vote-alignment lists (C2, E18/M03).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.*).
| Field | Type | |
|---|---|---|
key | String! | |
value | JSON! | |
updatedAt | String |
ApprovalPoint One Gallup job-approval reading (opinion polling) — a date + approve/disapprove percentages.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
type | String! | |
label | String! | |
url | String! |
AwardRow One federal award line item (F7).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
bills | Int! | |
donations | Int! | |
entities | Int! | |
edges | Int! | |
billText | Int! | |
committees | Int! |
BackfillJob Status of a backfill job (poll this after enqueuing).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
jobId | ID! | |
status | String! |
BackfillResult
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
federal | String! | complete | partial | none |
state | String! | |
local | String! | |
note | String! | A plain sentence for the reader. Always populated. |
BallotElection
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
text | String! | |
internalUrl | String |
BillCommitteeAction
| Field | Type | |
|---|---|---|
motions | [BillCommitteeMotion!]! | |
hearings | [HearingListItem!]! |
BillCommitteeMotion
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
subject | String! | |
billCount | Int! |
BillSummary A registered bill with its latest roll-call outcome (M03), for the /bills index.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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?
| Field | Type | |
|---|---|---|
t | String! | |
c | Boolean! |
BillTextVersion One published text version of a bill (M03) — a stage in its life (Introduced/Reported/Engrossed/Enrolled…).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
upvoteCount | Int! | |
viewerUpvoted | Boolean! |
BlockedUser
| Field | Type | |
|---|---|---|
user | PersonSummary! | |
blockedAt | String! | |
note | String |
BrokerStatus The AI broker master switch (M10/M16).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
posts | Int! | |
actions | Int | |
favorites | Int | |
subscribed | Int |
CivicProfileVisibility Which facets this viewer may see — lets an integrator tell 'hidden' from 'empty'.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
level | String! | |
roles | [CivicRole!]! |
CivicRoleSearch
| Field | Type | |
|---|---|---|
total | Int! | |
users | [CivicRoleUser!]! |
CivicRoleUser
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
id | ID! | |
name | String! | |
slug | String | |
internalUrl | String! |
CommitteeActiveMember
| Field | Type | |
|---|---|---|
slug | String! | |
name | String! | |
party | String | |
count | Int! | |
internalUrl | String! |
CommitteeBill
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
upcoming | [HearingListItem!]! | |
recent | [HearingListItem!]! | |
totalMeetings | Int! | |
totalRecordedVotes | Int! | |
withVideo | Int! | |
voteCoverage | VoteCoverage | |
voteBehaviour | CommitteeVoteBehaviour |
CommitteeListItem One row of the /committees index.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
items | [Connection!]! | |
nextCursor | String | |
total | Int! |
ConnectionRequest
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
id | ID! | |
kind | String! | |
title | String! | |
office | String | |
description | String | |
candidates | [ContestCandidate!]! | |
sourceRef | Reference |
ContestCandidate
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
id | ID! | |
title | String! |
Document A long-form reference document (M11) — rendered HTML + a section index for the on-page nav.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
group | String! | |
label | String! |
FeedPage A page of feed events with an opaque cursor.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
type | String! | |
group | String! | |
label | String! | |
plural | String! |
FeedSubscription M17 — one thing the user follows for updates.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
ok | Boolean! | |
id | ID! | |
message | String! |
FinanceLine One row of the hierarchical Form-3 campaign-finance breakdown (cents). parentKey null = a top-level root.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
id | ID! | |
name | String! | |
kind | String! | |
description | String | |
colorToken | String |
FundingCountry US foreign-aid profile for one country (ForeignAssistance.gov).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
id | ID! | |
label | String! | |
points | [FundingSeriesPoint!]! |
FundingSeriesPoint
| Field | Type | |
|---|---|---|
fiscalYear | Int! | |
amountCents | Float! |
FundingState A state's federal funding profile (place of performance).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
governor | Governor! | |
terms | [GovernorTerm!]! | |
facts | [PersonFact!]! |
GovernorTerm One gubernatorial term.
| Field | Type | |
|---|---|---|
state | String! | |
termStart | String | |
termEnd | String | |
party | String | |
current | Boolean! | True if this term is still open. |
HearingDocument
| Field | Type | |
|---|---|---|
id | ID! | |
kind | String! | |
kindLabel | String! | |
label | String | |
url | String! | |
format | String | |
sourceRef | Reference |
HearingFacetCommittee
| Field | Type | |
|---|---|---|
code | String! | |
name | String! | |
count | Int! |
HearingFacetIssue
| Field | Type | |
|---|---|---|
slug | String! | |
count | Int! |
HearingFacets
| Field | Type | |
|---|---|---|
committees | [HearingFacetCommittee!]! | |
types | [HearingFacetType!]! | |
congresses | [Int!]! | |
issues | [HearingFacetIssue!]! |
HearingFacetType
| Field | Type | |
|---|---|---|
type | String! | |
label | String! | |
count | Int! |
HearingListItem A committee proceeding in a list.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
party | String! | |
yea | Int! | |
nay | Int! | |
present | Int! | |
not_voting | Int! |
HearingRelatedBill
| Field | Type | |
|---|---|---|
id | ID! | |
number | String! | |
title | String | |
internalUrl | String! |
HearingsPage
| Field | Type | |
|---|---|---|
items | [HearingListItem!]! | |
total | Int! | |
limit | Int! | |
offset | Int! |
HearingTopic A subject or talking point extracted from the transcript.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
id | ID! | |
source | String | congress_preliminary | govinfo_chrg | asr_whisper. |
label | String | |
url | String | |
charLen | Int | |
isOfficial | Boolean! | |
segmentCount | Int! | |
speakers | [String!]! |
HearingTranscriptSegment
| Field | Type | |
|---|---|---|
index | Int! | |
startMs | Int | Milliseconds into the video. Only ASR-derived transcripts carry timings. |
speaker | String | |
text | String! | |
videoUrl | String |
HearingVoteTally
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
sector | String! | |
label | String! | |
committeeCount | Int! | |
receiptsCents | Float! | |
toCandidatesCents | Float! | |
internalUrl | String |
Issue A prominent civic issue (M23). Stances are documented, never inferred.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
issueSlug | String! | |
issueName | String! | |
myStance | String! | |
theirStance | String! | |
agree | Float! | 1 = same stance, 0.5 = same side (different intensity), 0 = opposite sides. |
IssueDeleteResult
| Field | Type | |
|---|---|---|
ok | Boolean! | |
note | String |
IssueDiscussionResult The report is always saved; the discussion may not open. The note field says which, in words.
| Field | Type | |
|---|---|---|
issue | IssueReport | |
threadId | String | |
note | String |
IssueEvent
| Field | Type | |
|---|---|---|
id | ID! | |
kind | String! | |
status | String | |
actorLabel | String | |
note | String | |
sourceUrl | String | |
createdAt | String |
IssueMatch
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
total | Int! | |
issues | [IssueReport!]! |
IssueStance A person's documented position on an issue (M23).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
fullSupport | Int! | |
partialSupport | Int! | |
partialOppose | Int! | |
oppose | Int! | |
total | Int! |
JobActionResult Result of a job control action (start/stop/reschedule).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
judge | Judge! | |
positions | [JudgePosition!]! | |
opinions | [JudgeOpinion!]! |
Jurisdiction
| Field | Type | |
|---|---|---|
id | ID! | |
level | String! | |
name | String! | |
slug | String | |
stateCode | String |
LensVector
| Field | Type | |
|---|---|---|
entityId | ID! | |
versionHash | String! | |
vector | [Float!]! |
LikeResult Result of setLike — the entity's fresh like count plus the viewer's own state.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
summary | String! | |
mainPoints | [String!]! |
NewsAlternate
| Field | Type | |
|---|---|---|
sourceName | String! | |
bias | String | |
url | String! | |
title | String! |
NewsPage A page of de-duplicated news stories (M12) with the total matching count for pagination.
| Field | Type | |
|---|---|---|
total | Int! | |
stories | [NewsStory!]! |
NewsRef
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
official | Official! | |
terms | [OfficialTerm!]! | |
facts | [PersonFact!]! |
OfficialTerm One term of a federal office.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
label | String! | |
slug | String | |
lobbied | Int! | |
worked | Int! |
OrgListItem A row in the top-organizations index (M02), ordered by reported lobbying spend.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
label | String! | |
amountCents | Float | |
count | Int |
OrgTestimony
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
fact | String! | |
category | String! | |
sourceUrl | String | |
sourceLabel | String |
PersonHearingMembership
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
asMember | [PersonHearingMembership!]! | |
asWitness | [PersonTestimony!]! | |
committeeVotes | [PersonCommitteeVote!]! |
PersonIdentity One human, every role they have held.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
twitter | String | |
facebook | String | |
instagram | String | |
youtube | String | |
website | String | |
wikipedia | String |
PersonSummary A member as seen in a connections / subscribers / blocked list.
| Field | Type | |
|---|---|---|
userId | ID! | |
username | String | |
displayName | String | |
internalUrl | String! |
PersonTestimony
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
status | String! | |
channel | String! | |
detail | String | |
recipients | Int! |
PetitionSignature One public signature on a petition (E02.8).
| Field | Type | |
|---|---|---|
displayName | String | |
comment | String | |
createdAt | String! |
PlaceCounty The county containing a place — resolved from the Census Geographies "Counties" layer (M06).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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, …).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
category | String! | |
count | Int! |
PresidentialActionSummary What we hold for one president, so the section can state its own coverage.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
key | String! | |
label | String! | |
blurb | String! | |
level | Int! |
ProfileDetails
| Field | Type | |
|---|---|---|
location | ProfileLocation | |
interests | [ProfileInterest!]! | |
positions | [ProfilePosition!]! | |
connectionCount | Int | Null when the member does not publish their connection count to this viewer. |
tabs | [ProfileTab!]! |
ProfileInterest
| Field | Type | |
|---|---|---|
label | String! | |
url | String |
ProfileListItem
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
city | String | |
state | String | |
country | String |
ProfilePosition
| Field | Type | |
|---|---|---|
issueSlug | String! | |
issueName | String! | |
stance | String! |
ProfileTab A tab the viewer is allowed to see, with its row count.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
street | String | |
city | String | |
state | String | |
zip | String |
PublicAssetLocation Point location of a public asset (M06).
| Field | Type | |
|---|---|---|
lat | Float! | |
lon | Float! |
PublicAssetStateFacet State facet for the Public Asset Locator (M06) — a state with its count of federal assets on record.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
code | String! | |
name | String | |
amountCents | Float! |
Reference Provenance link for a data point or section — where CivicGate got the data.
| Field | Type | |
|---|---|---|
label | String! | |
url | String! | |
source | String! |
RefetchBillDetailResult
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
ok | Boolean! | |
id | ID! | |
status | String! | available | unavailable — the resulting text status. |
message | String! |
RefreshFinanceResult
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
name | String! | |
party | String | |
state | String | |
internalUrl | String | |
sourceRef | Reference |
ReminderOffset One scheduled reminder before an election. Days before; 0 is election day.
| Field | Type | |
|---|---|---|
days | Int! | |
enabled | Boolean! | |
label | String! |
ReminderPrefs A user's reminder schedule for one target type.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
bioguideId | String! | |
name | String! | |
memberUrl | String! | |
party | String | |
state | String | |
position | String! | yea | nay | present | not_voting. |
RollCallPartyTally
| Field | Type | |
|---|---|---|
party | String! | |
yea | Int! | |
nay | Int! | |
present | Int! | |
notVoting | Int! |
RollCallTotals
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
date | String | |
description | String! | |
chamber | String | |
classification | [String!]! |
StateBillCoverage Per-state coverage of the state-bills index (M03) — count + last-synced (coverage-honest).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
name | String! | |
type | String! | governor | senator | representative | candidate. |
party | String | |
internalUrl | String! | |
totalCents | Float! | |
moneyByYear | [FundingSeriesPoint!]! |
StockTrade
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
bioguideId | String | |
memberName | String! | |
memberUrl | String | |
party | String | |
state | String | |
tradeCount | Int! | |
flaggedCount | Int! | |
volumeCents | Float |
StockTradesPage
| Field | Type | |
|---|---|---|
total | Int! | |
trades | [StockTrade!]! |
StockTradeSummary
| Field | Type | |
|---|---|---|
count | Int! | |
tickerCount | Int! | |
flaggedCount | Int! | |
lastDisclosedAt | String |
Subscriber
| Field | Type | |
|---|---|---|
user | PersonSummary! | |
since | String | |
followingBack | Boolean! | Do I follow them back? |
connectionState | String! |
SubscriberPage
| Field | Type | |
|---|---|---|
items | [Subscriber!]! | |
nextCursor | String | |
total | Int! |
SubscriptionPage One page of the signed-in user's subscriptions (M17). Same shape as FavoritePage.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
kind | String! | |
label | String! | |
detail | String! | |
severity | String! | |
evidenceUrl | String |
UpcomingElection
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
maxFilesPerPost | Int! | |
maxFileBytes | Float! | |
maxNoteChars | Int! |
UploadResult
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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").
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
slug | String! | |
name | String! | |
direction | String! |
VoteTally Tally of a member's roll-call positions (M03).
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
slug | String! | |
name | String! | |
voteCount | Int! |
WorldIndicatorMeta E17 — metadata for one World Bank indicator in the ingested starter set (for the selector + coverage).
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
role | String! | |
content | String! |
BackfillInput
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
entityType | String! | |
entityId | ID! |
FeedFilterInput
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
title | String! | |
summary | String | |
bodyMd | String! | |
targetType | String! | |
targetId | String! | |
targetLabel | String | |
billId | ID | |
issueId | ID | |
proposerEmail | String | |
proposerName | String |
PostInput
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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
| Field | Type | |
|---|---|---|
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.
| Field | Type | |
|---|---|---|
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).
| Field | Type | |
|---|---|---|
issueSlug | String! | |
personType | String! | |
personId | String! | |
personName | String! | |
stance | String! | |
note | String | |
sourceUrl | String | |
asOf | String |
UploadFileInput
| Field | Type | |
|---|---|---|
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.