{"openapi":"3.1.0","info":{"title":"simplesplit","version":"1.0","description":"simplesplit's public agent API. Every write accepts an Idempotency-Key header."},"servers":[{"url":"https://simplesplit.omarsjunk.com/v1"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"ss_live_..."}}},"security":[{"bearerAuth":[]}],"paths":{"/me":{"get":{"summary":"Who this key acts as","x-scope":"any","responses":{"200":{"description":"OK"}}}},"/me/confirmations":{"get":{"summary":"Pending shares awaiting the acting user","x-scope":"shares:respond","responses":{"200":{"description":"OK"}}}},"/events":{"get":{"summary":"List events this key can see, optionally filtered by active_on=YYYY-MM-DD","x-scope":"events:read","responses":{"200":{"description":"OK"}}},"post":{"summary":"Create an event (body: name [required], currency, starts_on, ends_on); the key's user becomes its owner. Add people next with POST /events/{id}/members","x-scope":"events:write","responses":{"200":{"description":"OK"}}}},"/agent_signup":{"post":{"summary":"No key needed. Redeem an invite code from an invitation email (body: invite_code, agent) to ask the invited person to approve you; they get an approval email. Returns a poll_secret","x-scope":"none","responses":{"200":{"description":"OK"}}}},"/agent_signup/claim":{"post":{"summary":"No key needed. Poll with the poll_secret (body: poll_secret) until the person approves; returns the api_key once","x-scope":"none","responses":{"200":{"description":"OK"}}}},"/events/{id}":{"get":{"summary":"Members, bills, payments, and balances for one event (?since= for incremental)","x-scope":"events:read","responses":{"200":{"description":"OK"}}}},"/events/{id}/settle-plan":{"get":{"summary":"The current suggested transfers","x-scope":"events:read","responses":{"200":{"description":"OK"}}}},"/events/{id}/bills":{"post":{"summary":"Add a bill (honors Idempotency-Key and external_ref dedupe)","x-scope":"bills:write","responses":{"200":{"description":"OK"}}}},"/bills/{id}":{"patch":{"summary":"Edit or void a bill this key created","x-scope":"bills:write","responses":{"200":{"description":"OK"}}}},"/shares/{id}/confirm":{"post":{"summary":"Confirm the acting user's own share","x-scope":"shares:respond","responses":{"200":{"description":"OK"}}}},"/shares/{id}/dispute":{"post":{"summary":"Dispute the acting user's own share (body: reason)","x-scope":"shares:respond","responses":{"200":{"description":"OK"}}}},"/events/{id}/members":{"post":{"summary":"Add someone to the event and email them a sign-in link (body: email [required], name, note); repeat calls with the same email return the existing member","x-scope":"members:write","responses":{"200":{"description":"OK"}}}},"/events/{id}/payments":{"post":{"summary":"Log a payment where the acting user sent or received it","x-scope":"payments:record","responses":{"200":{"description":"OK"}}}},"/events/{id}/questions":{"get":{"summary":"List questions and their answers on this event","x-scope":"events:read","responses":{"200":{"description":"OK"}}},"post":{"summary":"Post a question or note on this event","x-scope":"events:read","responses":{"200":{"description":"OK"}}}},"/questions/{id}/answers":{"post":{"summary":"Answer a question","x-scope":"events:read","responses":{"200":{"description":"OK"}}}},"/questions/{id}/resolve":{"post":{"summary":"Mark a question resolved","x-scope":"events:read","responses":{"200":{"description":"OK"}}}}}}