POST/shorts.v1alpha1.PoliticiansService/GetRegisterActivity

Aggregate lodgement activity over a window: weekly event counts, the members with the most dated events, companies first declared in the window, and companies whose declarer count moved.

COUNTS AND DATES ONLY. "Most active" is a count ordering, and is the strongest characterisation permitted beside a named member — nothing here may become "unusual", "spike", "watch" or a flag of any kind.

Parameters

Connect-Protocol-VersionheaderRequired
number [1]

Define the version of the Connect protocol

Connect-Timeout-Msheader
number

Define the timeout, in ms

Request Body

application/json
object
chamberstring

'house' | 'senate' (proto string)

itemNointeger <int32>

register form item 1-14; 0 = all (proto int32)

kindstring [REGISTER_CHANGE_KIND_UNSPECIFIED, REGISTER_CHANGE_KIND_ADDED, REGISTER_CHANGE_KIND_REMOVED]

UNSPECIFIED = both (proto shorts.v1alpha1.RegisterChangeKind)

partyAbstring

AEC abbreviation (proto string)

politicianSlugstring

The SAME filter set ListRegisterChanges takes, and for one reason: the weekly strip is drawn above a FILTERED feed, so parliament-wide numbers rendered there read as the filtered member's own. All optional and all ADDITIVE — an unfiltered request is byte-identical to the old behaviour. They narrow the WEEKLY BUCKETS, filtered_event_count and filtered_member_count only. The three rails (active_members, newly_declared_companies, declarer_count_changes) are NOT narrowed by the filters: they answer corpus-wide questions inside the window, and a "most active members" rail filtered to one member would be a tautology. canonical slug; consumers never derive one (proto string)

windowDaysinteger <int32>

30 | 90 | 180 | 365. Anything else is clamped to the next value up (0 and negatives default to 90), so a cache key can never describe a window other than the one that produced it. (proto int32)

Responses

200Success
application/json
object
activeMembersarray

The three rails below are CORPUS-WIDE and window-scoped: the request's filters do not narrow them. (proto shorts.v1alpha1.ActiveMember)

Array Items:
asAtstring <date-time>

(proto google.protobuf.Timestamp)

declarerCountChangesarray

(proto shorts.v1alpha1.DeclarerCountChange)

Array Items:
filteredEventCountinteger <int32>

Dated events matching the request's filters inside the window. Equal to the sum of every bucket's added_count + removed_count, so a count line beside the strip states the strip's own total and not the parliament's. (proto int32)

filteredMemberCountinteger <int32>

DISTINCT members with at least one such event — PEOPLE, never rows. A surface can state it exactly instead of counting the members it happens to have rendered, which is always a floor. (proto int32)

newlyDeclaredCompaniesarray

(proto shorts.v1alpha1.NewlyDeclaredCompany)

Array Items:
sourceLicencestring

(proto string)

undatedCurrentCountinteger <int32>

Currently-declared rows with no known start date, and therefore absent from every measure above. Stated rather than dropped silently: a surface must be able to caption what its timeline does not contain. (proto int32)

weeksarray

Contiguous Monday buckets, NARROWED BY THE REQUEST'S FILTERS. The first bucket is the Monday on or before (today - window_days), so no bucket is a partial week drawn as a full one. (proto shorts.v1alpha1.WeeklyEventCount)

Array Items:
windowDaysinteger <int32>

the clamped window actually used (proto int32)

defaultError
application/json
object

Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation

codestring [canceled, unknown, invalid_argument, deadline_exceeded, not_found, already_exists, permission_denied, resource_exhausted, failed_precondition, aborted, out_of_range, unimplemented, internal, unavailable, data_loss, unauthenticated]

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

detailsarray

A list of messages that carry the error details. There is no limit on the number of messages.

Array Items:
messagestring

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

curl -X POST "https://api.shorted.com.au/shorts.v1alpha1.PoliticiansService/GetRegisterActivity" \
  -H "Content-Type: application/json" \
  -d '{
  "chamber": "string",
  "itemNo": 0,
  "kind": "string",
  "partyAb": "string",
  "politicianSlug": "string",
  "windowDays": 0
}'