{"openapi":"3.1.0","info":{"title":"Rivier API","version":"2026-11-01","description":"Everything Rivier does, through one authorised service layer. Send a key as `Authorization: Bearer`. A key holds scopes of the form `module:level`; each operation lists the scope it needs in `x-rivier-scope`. Send `Rivier-Version` to pin a dated contract."},"servers":[{"url":"https://api.rivier.ai"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"accounting"},{"name":"agents"},{"name":"analytics"},{"name":"bookings"},{"name":"campaigns"},{"name":"compliance"},{"name":"connectors"},{"name":"contacts"},{"name":"content"},{"name":"domains"},{"name":"files"},{"name":"forms"},{"name":"hosting"},{"name":"inbox"},{"name":"keys"},{"name":"language"},{"name":"maps"},{"name":"memory"},{"name":"models"},{"name":"search"},{"name":"shop"},{"name":"social"},{"name":"usage"},{"name":"voice"},{"name":"workspace"}],"paths":{"/account/delete":{"get":{"operationId":"workspace.accountDeletion.get","summary":"Whether a deletion of the account is waiting, and the phrase to type.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceAccountDeletionGet","x-rivier-sdk":"workspace.accountDeletion.get","x-rivier-cli":"workspace account deletion get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.accountDeletion.request","summary":"Ask for the account to be deleted after a 14-day cooling-off.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceAccountDeletionRequest","x-rivier-sdk":"workspace.accountDeletion.request","x-rivier-cli":"workspace account deletion request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirm":{"type":"string","minLength":1,"maxLength":300}},"required":["confirm"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.accountDeletion.cancel","summary":"Cancel a pending account deletion.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceAccountDeletionCancel","x-rivier-sdk":"workspace.accountDeletion.cancel","x-rivier-cli":"workspace account deletion cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/export":{"post":{"operationId":"workspace.accountData.export","summary":"Everything held about the person, as JSON.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.accountData.export","x-rivier-cli":"workspace account data export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/notifications":{"get":{"operationId":"workspace.notification.get","summary":"Notification choices per topic and channel, digest and quiet hours; a project id gives that project's override.","tags":["workspace"],"parameters":[{"name":"project_id","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_notifications_get","x-rivier-graphql":"Query.workspaceNotificationGet","x-rivier-sdk":"workspace.notification.get","x-rivier-cli":"workspace notification get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"workspace.notification.set","summary":"Change notification choices. Security email cannot be switched off.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_notifications_set","x-rivier-graphql":"Mutation.workspaceNotificationSet","x-rivier-sdk":"workspace.notification.set","x-rivier-cli":"workspace notification set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"prefs":{"type":"array","items":{"type":"object","properties":{"topic":{"type":"string","enum":["approvals","activity","security","team","billing","product"]},"channel":{"type":"string","enum":["email","in_app","push","digest"]},"enabled":{"type":"boolean"}},"required":["topic","channel","enabled"],"additionalProperties":false},"maxItems":64},"digest":{"type":"string","enum":["off","daily","weekly"]},"quiet_start":{"anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}]},"quiet_end":{"anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/profile":{"get":{"operationId":"workspace.profile.get","summary":"The signed-in person's profile: name, language, time zone, formats, accessibility and theme.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_profile_get","x-rivier-graphql":"Query.workspaceProfileGet","x-rivier-sdk":"workspace.profile.get","x-rivier-cli":"workspace profile get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.profile.update","summary":"Change any part of the profile.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_profile_update","x-rivier-graphql":"Mutation.workspaceProfileUpdate","x-rivier-sdk":"workspace.profile.update","x-rivier-cli":"workspace profile update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"display_name":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"avatar_url":{"anyOf":[{"type":"string","maxLength":500,"format":"uri"},{"type":"null"}]},"language":{"anyOf":[{"type":"string","enum":["en","de","es","fr","ja","ar","sv","dv"]},{"type":"null"}]},"time_zone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"date_format":{"type":"string","enum":["auto","dmy","mdy","ymd"]},"number_format":{"type":"string","enum":["auto","point","comma","space"]},"theme":{"type":"string","enum":["system","light","dark"]},"reduced_motion":{"type":"boolean"},"high_contrast":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/security":{"get":{"operationId":"workspace.security.get","summary":"Where the person is signed in, a pending deletion, and where passkeys are managed.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceSecurityGet","x-rivier-sdk":"workspace.security.get","x-rivier-cli":"workspace security get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/tokens":{"get":{"operationId":"workspace.accountToken.list","summary":"The account's tokens: name, scopes, organisation, last use and expiry. Never a secret.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-sdk":"workspace.accountToken.list","x-rivier-cli":"workspace account token list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.accountToken.create","summary":"Make an account token for the command line or an agent. The secret is shown once. Needs a signed-in person; a token cannot make a token.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.accountToken.create","x-rivier-cli":"workspace account token create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"scopes":{"type":"array","items":{"type":"string","enum":["account:read","account:write","account:members"]}},"expiresInDays":{"type":"integer","minimum":1,"maximum":365},"organizationId":{"type":"string","format":"uuid"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/tokens/{id}":{"delete":{"operationId":"workspace.accountToken.revoke","summary":"Revoke a token at once.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceAccountTokenRevoke","x-rivier-sdk":"workspace.accountToken.revoke","x-rivier-cli":"workspace account token revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/account/tokens/{id}/rotate":{"post":{"operationId":"workspace.accountToken.rotate","summary":"Replace a token with a twin; the old one keeps working for the overlap. The new secret is shown once.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.accountToken.rotate","x-rivier-cli":"workspace account token rotate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"overlapHours":{"type":"number","minimum":0,"maximum":720}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/accountant":{"get":{"operationId":"accounting.accountant.list","summary":"Accountant invitations and the files taken.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.accountant.list","x-rivier-cli":"accounting accountant list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.accountant.invite","summary":"Invite an accountant for a time.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.accountant.invite","x-rivier-cli":"accounting accountant invite","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"expiresOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"note":{"type":"string","maxLength":300,"default":""}},"required":["email","expiresOn"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/accountant/{id}/revoke":{"post":{"operationId":"accounting.accountant.revoke","summary":"End an accountant's access.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.accountant.revoke","x-rivier-cli":"accounting accountant revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/accounts":{"get":{"operationId":"accounting.account.list","summary":"The chart of accounts.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.account.list","x-rivier-cli":"accounting account list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["accounts"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.account.create","summary":"Add an account to the chart.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.account.create","x-rivier-cli":"accounting account create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^[0-9A-Za-z.-]{1,12}$"},"name":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["asset","liability","equity","revenue","expense"]}},"required":["code","name","type"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/accounts/{id}":{"patch":{"operationId":"accounting.account.update","summary":"Rename or switch off an account.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.account.update","x-rivier-cli":"accounting account update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"active":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/accept-confident":{"post":{"operationId":"accounting.bank.acceptConfident","summary":"Accept every bank suggestion Rivier is very sure of.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.acceptConfident","x-rivier-cli":"accounting bank accept confident","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/accounts":{"get":{"operationId":"accounting.bank.accounts","summary":"Bank accounts with the ledger balance and what is left to reconcile.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.bank.accounts","x-rivier-cli":"accounting bank accounts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["accounts"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.bank.create","summary":"Add a bank account.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.bank.create","x-rivier-cli":"accounting bank create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"ledgerAccount":{"type":"string","minLength":1,"maxLength":40},"provider":{"type":"string","enum":["mock","csv","truelayer"],"description":"csv takes pasted statements; truelayer links an account at the connected bank (externalRef from the bank feed's accounts); mock is the sample feed and exists only in test mode"},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"externalRef":{"type":"string","maxLength":200}},"required":["name","ledgerAccount"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/accounts/link":{"post":{"operationId":"accounting.bank.link","summary":"Link an account at the connected bank to a bank account in the books.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.bank.link","x-rivier-cli":"accounting bank link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"externalRef":{"type":"string","minLength":1,"maxLength":200,"description":"an account the connected bank offers"},"bankAccountId":{"type":"string","format":"uuid","description":"an existing bank account to link; without it a new one is made"},"name":{"type":"string","minLength":1,"maxLength":120},"ledgerAccount":{"type":"string","minLength":1,"maxLength":40,"description":"the ledger account a new bank account is kept on"}},"required":["externalRef"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/accounts/{id}/import":{"post":{"operationId":"accounting.bank.import","summary":"Import pasted statement lines.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.bank.import","x-rivier-cli":"accounting bank import","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"object","properties":{"externalId":{"type":"string","minLength":1,"maxLength":120},"bookedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"amountMinor":{"type":"integer","minimum":-99999999999,"maximum":99999999999},"description":{"type":"string","maxLength":300,"default":""},"counterparty":{"type":"string","maxLength":200,"default":""}},"required":["externalId","bookedOn","amountMinor"],"additionalProperties":false},"minItems":1,"maxItems":1000}},"required":["lines"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/accounts/{id}/sync":{"post":{"operationId":"accounting.bank.sync","summary":"Fetch new lines from the bank feed.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.bank.sync","x-rivier-cli":"accounting bank sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/accounts/{id}/unlink":{"post":{"operationId":"accounting.bank.unlink","summary":"Stop reading a bank account from the bank. The account and its lines stay; statements are imported from then on.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.bank.unlink","x-rivier-cli":"accounting bank unlink","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"disconnect":{"type":"boolean","default":false,"description":"also remove the stored sign-in of the bank connection, when no other account uses it"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/feed":{"get":{"operationId":"accounting.bank.feed","summary":"Where the bank feed stands: what is connected, which accounts are linked, the last read and the last error.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.bank.feed","x-rivier-cli":"accounting bank feed","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/feed/accounts":{"get":{"operationId":"accounting.bank.feedAccounts","summary":"The accounts the connected bank offers, and which bank account each is linked to.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.bank.feedAccounts","x-rivier-cli":"accounting bank feed accounts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["accounts"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/lines":{"get":{"operationId":"accounting.bank.lines","summary":"Bank lines with suggested matches.","tags":["accounting"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["new","matched","reconciled","ignored"]}},{"name":"bankAccountId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":100}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.bank.lines","x-rivier-cli":"accounting bank lines","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["lines"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/lines/{id}/ignore":{"post":{"operationId":"accounting.bank.ignore","summary":"Ignore a bank line.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.ignore","x-rivier-cli":"accounting bank ignore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/lines/{id}/match":{"post":{"operationId":"accounting.bank.match","summary":"Accept a bank line as the payment of an invoice or bill.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.match","x-rivier-cli":"accounting bank match","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["invoice","bill"]},"id":{"type":"string","format":"uuid"}},"required":["kind","id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/lines/{id}/pair":{"post":{"operationId":"accounting.bank.pair","summary":"Settle two bank lines as the two ends of one transfer.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.pair","x-rivier-cli":"accounting bank pair","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"otherLineId":{"type":"string","format":"uuid"}},"required":["otherLineId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/lines/{id}/payout":{"post":{"operationId":"accounting.bank.payout","summary":"Accept a bank line as a payout from the payment provider.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.payout","x-rivier-cli":"accounting bank payout","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/lines/{id}/post":{"post":{"operationId":"accounting.bank.post","summary":"Accept a bank line as an entry against an account.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.post","x-rivier-cli":"accounting bank post","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","minLength":1,"maxLength":40,"description":"the other account of the entry"},"memo":{"type":"string","maxLength":300,"default":""},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000}},"required":["account"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bank/transfer":{"post":{"operationId":"accounting.bank.transfer","summary":"Move money between two of your bank accounts.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bank.transfer","x-rivier-cli":"accounting bank transfer","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromBankAccountId":{"type":"string","format":"uuid"},"toBankAccountId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ref":{"type":"string","maxLength":120,"default":""},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["fromBankAccountId","toBankAccountId","amountMinor","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bills":{"get":{"operationId":"accounting.bill.list","summary":"Supplier bills by status.","tags":["accounting"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(draft|approved|partially_paid|paid|void)(,(draft|approved|partially_paid|paid|void))*$"}},{"name":"supplierId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_bills","x-rivier-graphql":"Query.accountingBills","x-rivier-sdk":"accounting.bill.list","x-rivier-cli":"accounting bill list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.bill.draft","summary":"Draft a supplier bill; it reaches the books when a person approves it.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-mcp":"rivier_accounting_bill_draft","x-rivier-graphql":"Mutation.accountingDraftBill","x-rivier-sdk":"accounting.bill.draft","x-rivier-cli":"accounting bill draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"supplierId":{"type":"string","format":"uuid"},"number":{"type":"string","maxLength":80,"default":""},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"dueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":300},"account":{"type":"string","minLength":1,"maxLength":40,"description":"expense or asset account code"},"netMinor":{"type":"integer","minimum":0,"maximum":99999999999},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000,"default":0},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"}},"required":["description","account","netMinor"],"additionalProperties":false},"minItems":1,"maxItems":100},"poKind":{"type":"string","maxLength":40},"poId":{"type":"string","maxLength":120},"receiptId":{"type":"string","format":"uuid"},"memo":{"type":"string","maxLength":500,"default":""},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["supplierId","issueDate","lines","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bills/aged":{"get":{"operationId":"accounting.bill.aged","summary":"Aged payables.","tags":["accounting"],"parameters":[{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{3}$"}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_aged_payables","x-rivier-graphql":"Query.accountingAgedPayables","x-rivier-sdk":"accounting.bill.aged","x-rivier-cli":"accounting bill aged","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bills/{id}":{"get":{"operationId":"accounting.bill.get","summary":"One supplier bill with its lines.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.bill.get","x-rivier-cli":"accounting bill get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bills/{id}/approve":{"post":{"operationId":"accounting.bill.approve","summary":"Approve a bill: it becomes a debt and the cost is booked.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bill.approve","x-rivier-cli":"accounting bill approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bills/{id}/pay":{"post":{"operationId":"accounting.bill.pay","summary":"Pay a bill.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bill.pay","x-rivier-cli":"accounting bill pay","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"paidOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"fromAccount":{"type":"string","maxLength":40,"description":"bank or cash account code; default the main bank account"},"ref":{"type":"string","maxLength":120,"default":""},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["amountMinor","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/bills/{id}/void":{"post":{"operationId":"accounting.bill.void","summary":"Void an unpaid bill.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.bill.void","x-rivier-cli":"accounting bill void","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/costing":{"put":{"operationId":"accounting.costing.set","summary":"Choose how stock is costed (locked after the first costed sale).","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.costing.set","x-rivier-cli":"accounting costing set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string","enum":["latest","fifo","average"]}},"required":["method"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/credit/apply":{"post":{"operationId":"accounting.credit.apply","summary":"Use a customer's credit to pay an invoice.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.credit.apply","x-rivier-cli":"accounting credit apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["invoiceId","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/customers":{"get":{"operationId":"accounting.customer.list","summary":"Customers with balances and what is overdue.","tags":["accounting"],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"owing","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_customers","x-rivier-graphql":"Query.accountingCustomers","x-rivier-sdk":"accounting.customer.list","x-rivier-cli":"accounting customer list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/customers/{key}":{"get":{"operationId":"accounting.customer.get","summary":"One customer's account: balances, open invoices, open credit, limit and terms.","tags":["accounting"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":254}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_customer","x-rivier-graphql":"Query.accountingCustomer","x-rivier-sdk":"accounting.customer.get","x-rivier-cli":"accounting customer get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"accounting.customer.update","summary":"Set a customer's credit limit, terms, hold and dunning.","tags":["accounting"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":254}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.customer.update","x-rivier-cli":"accounting customer update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"creditLimitMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":99999999999},{"type":"null"}]},"paymentDays":{"anyOf":[{"type":"integer","minimum":0,"maximum":365},{"type":"null"}]},"dunningPaused":{"type":"boolean"},"onHold":{"type":"boolean"},"notes":{"type":"string","maxLength":1000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/customers/{key}/credit-check":{"get":{"operationId":"accounting.customer.creditCheck","summary":"Whether a new sale fits the customer's credit limit.","tags":["accounting"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":254}},{"name":"amountMinor","in":"query","required":true,"schema":{"type":"integer","minimum":0}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{3}$"}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_credit_check","x-rivier-graphql":"Query.accountingCreditCheck","x-rivier-sdk":"accounting.customer.creditCheck","x-rivier-cli":"accounting customer credit check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/customers/{key}/statement":{"get":{"operationId":"accounting.customer.statement","summary":"A customer's statement between two dates.","tags":["accounting"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":254}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{3}$"}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_statement","x-rivier-graphql":"Query.accountingStatement","x-rivier-sdk":"accounting.customer.statement","x-rivier-cli":"accounting customer statement","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/dunning/run":{"post":{"operationId":"accounting.dunning.run","summary":"Send the payment reminders that are due now.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.dunning.run","x-rivier-cli":"accounting dunning run","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/e-invoice/{id}":{"get":{"operationId":"accounting.einvoice.get","summary":"The invoice or credit note as UBL 2.1 (EN 16931, Peppol BIS Billing 3.0 identifiers).","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["invoice","credit_note"],"default":"invoice"}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.einvoice.get","x-rivier-cli":"accounting einvoice get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/e-invoice/{id}/check":{"get":{"operationId":"accounting.einvoice.check","summary":"Which e-invoice rules a document fails, in plain words.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["invoice","credit_note"],"default":"invoice"}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_einvoice_check","x-rivier-graphql":"Query.accountingEinvoiceCheck","x-rivier-sdk":"accounting.einvoice.check","x-rivier-cli":"accounting einvoice check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/e-invoice/{id}/history":{"get":{"operationId":"accounting.einvoice.history","summary":"Where a document was sent as an e-invoice.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.einvoice.history","x-rivier-cli":"accounting einvoice history","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"transmissions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["transmissions"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/e-invoice/{id}/refresh":{"post":{"operationId":"accounting.einvoice.refresh","summary":"Ask the provider what became of the e-invoices sent for a document.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.einvoice.refresh","x-rivier-cli":"accounting einvoice refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/e-invoice/{id}/send":{"post":{"operationId":"accounting.einvoice.send","summary":"Send a document as an e-invoice through the connection of the workspace; a test workspace sends through the test provider.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.einvoice.send","x-rivier-cli":"accounting einvoice send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["invoice","credit_note"],"default":"invoice"},"provider":{"type":"string","pattern":"^[a-z0-9-]{1,40}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/e-invoicing":{"get":{"operationId":"accounting.einvoice.state","summary":"Whether this workspace can send e-invoices, and through which connection.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.einvoice.state","x-rivier-cli":"accounting einvoice state","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/expenses":{"get":{"operationId":"accounting.expense.list","summary":"Expenses, including proposals waiting for a person.","tags":["accounting"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["proposed","confirmed","void"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_expenses","x-rivier-graphql":"Query.accountingExpenses","x-rivier-sdk":"accounting.expense.list","x-rivier-cli":"accounting expense list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.expense.create","summary":"Record an expense (a person's is booked at once; a key's is a proposal a person confirms).","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-mcp":"rivier_accounting_expense_propose","x-rivier-graphql":"Mutation.accountingProposeExpense","x-rivier-sdk":"accounting.expense.create","x-rivier-cli":"accounting expense create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"spentOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"merchant":{"type":"string","maxLength":200,"default":""},"description":{"type":"string","maxLength":300,"default":""},"account":{"type":"string","minLength":1,"maxLength":40},"paidFrom":{"type":"string","maxLength":40,"description":"bank, card or cash account code; default the main bank account"},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"grossMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000,"default":0},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"receiptId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["spentOn","account","grossMinor","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/expenses/{id}/confirm":{"post":{"operationId":"accounting.expense.confirm","summary":"Confirm a proposed expense, with corrections.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.expense.confirm","x-rivier-cli":"accounting expense confirm","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","maxLength":40},"paidFrom":{"type":"string","maxLength":40},"grossMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"spentOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"merchant":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/expenses/{id}/reject":{"post":{"operationId":"accounting.expense.reject","summary":"Reject a proposed expense.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.expense.reject","x-rivier-cli":"accounting expense reject","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/export":{"get":{"operationId":"accounting.export.get","summary":"A file for the accountant (journal, trial balance, sales or purchase documents, SIE 4).","tags":["accounting"],"parameters":[{"name":"format","in":"query","required":true,"schema":{"type":"string","enum":["journal-csv","trial-balance-csv","invoices-csv","bills-csv","sie4","datev-csv","qbo-journal-csv","xero-journal-csv"]}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.export.get","x-rivier-cli":"accounting export get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/invoices/{id}/write-off":{"post":{"operationId":"accounting.invoice.writeOff","summary":"Write an invoice off as uncollectible.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.invoice.writeOff","x-rivier-cli":"accounting invoice write off","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/journal":{"get":{"operationId":"accounting.journal.list","summary":"Entries in the books.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"account","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"source","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_journal","x-rivier-graphql":"Query.accountingJournal","x-rivier-sdk":"accounting.journal.list","x-rivier-cli":"accounting journal list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.journal.post","summary":"Post a manual entry.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.journal.post","x-rivier-cli":"accounting journal post","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"memo":{"type":"string","minLength":1,"maxLength":300},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"lines":{"type":"array","items":{"type":"object","properties":{"account":{"type":"string","minLength":1,"maxLength":40,"description":"account code"},"debitMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"creditMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"memo":{"type":"string","maxLength":200,"default":""}},"required":["account"],"additionalProperties":false},"minItems":2,"maxItems":60},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["date","memo","lines","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/journal/{id}":{"get":{"operationId":"accounting.journal.get","summary":"One entry with its lines.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.journal.get","x-rivier-cli":"accounting journal get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/journal/{id}/reverse":{"post":{"operationId":"accounting.journal.reverse","summary":"Reverse an entry.","tags":["accounting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.journal.reverse","x-rivier-cli":"accounting journal reverse","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["reason","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/month-end/{month}":{"get":{"operationId":"accounting.report.monthEnd","summary":"What is open before a month can be closed.","tags":["accounting"],"parameters":[{"name":"month","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}$"}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_month_end","x-rivier-graphql":"Query.accountingMonthEnd","x-rivier-sdk":"accounting.report.monthEnd","x-rivier-cli":"accounting report month end","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/notice":{"post":{"operationId":"accounting.notice.accept","summary":"Accept the notice that Rivier is software, not an accountant.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.notice.accept","x-rivier-cli":"accounting notice accept","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accept":{"type":"boolean","const":true}},"required":["accept"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/overview":{"get":{"operationId":"accounting.overview.get","summary":"Who owes you, what you owe, cash and profit this month, what needs attention.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_overview","x-rivier-graphql":"Query.accountingOverview","x-rivier-sdk":"accounting.overview.get","x-rivier-cli":"accounting overview get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/periods/close":{"post":{"operationId":"accounting.period.close","summary":"Close the books through a date.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.period.close","x-rivier-cli":"accounting period close","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"periodEnd":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"note":{"type":"string","maxLength":300,"default":""}},"required":["periodEnd"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/periods/reopen":{"post":{"operationId":"accounting.period.reopen","summary":"Reopen the last closed period.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.period.reopen","x-rivier-cli":"accounting period reopen","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/post":{"post":{"operationId":"accounting.post.run","summary":"Post what has happened in invoices, refunds and provider fees.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.post.run","x-rivier-cli":"accounting post run","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/rates":{"put":{"operationId":"accounting.rate.set","summary":"Set an exchange rate for a day.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.rate.set","x-rivier-cli":"accounting rate set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currency":{"type":"string","pattern":"^[a-z]{3}$"},"onDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"rate":{"type":"number","exclusiveMinimum":0,"maximum":1000000}},"required":["currency","onDate","rate"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/receipts":{"post":{"operationId":"accounting.receipt.capture","summary":"Read a receipt into a proposed expense (marked as read by a model).","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-mcp":"rivier_accounting_receipt_capture","x-rivier-graphql":"Mutation.accountingCaptureReceipt","x-rivier-sdk":"accounting.receipt.capture","x-rivier-cli":"accounting receipt capture","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":200},"mime":{"type":"string","maxLength":100},"contentBase64":{"type":"string","minLength":4,"maxLength":14000000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["filename","mime","contentBase64"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/receipts-in":{"post":{"operationId":"accounting.customer.receive","summary":"Record money received from a customer, spread over invoices; the rest stays their credit.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.customer.receive","x-rivier-cli":"accounting customer receive","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contactKey":{"type":"string","minLength":1,"maxLength":254},"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"method":{"type":"string","enum":["manual","provider"],"default":"manual"},"receivedAt":{"type":"string","format":"date-time"},"ref":{"type":"string","maxLength":120,"default":""},"note":{"type":"string","maxLength":300,"default":""},"allocations":{"type":"array","items":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999}},"required":["invoiceId","amountMinor"],"additionalProperties":false},"maxItems":100,"default":[]},"keepRemainder":{"type":"boolean","default":true},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["contactKey","amountMinor","currency","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/receivables/aged":{"get":{"operationId":"accounting.receivables.aged","summary":"Aged receivables.","tags":["accounting"],"parameters":[{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{3}$"}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_aged_receivables","x-rivier-graphql":"Query.accountingAgedReceivables","x-rivier-sdk":"accounting.receivables.aged","x-rivier-cli":"accounting receivables aged","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/reports/balance-sheet":{"get":{"operationId":"accounting.report.balanceSheet","summary":"Balance sheet as of a date.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["product","service","kind"]}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.report.balanceSheet","x-rivier-cli":"accounting report balance sheet","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/reports/cash-flow":{"get":{"operationId":"accounting.report.cashFlow","summary":"Cash in and out by purpose.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["product","service","kind"]}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.report.cashFlow","x-rivier-cli":"accounting report cash flow","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/reports/forecast":{"get":{"operationId":"accounting.report.forecast","summary":"Weekly cash look-ahead (rule-based).","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_cash_forecast","x-rivier-graphql":"Query.accountingCashForecast","x-rivier-sdk":"accounting.report.forecast","x-rivier-cli":"accounting report forecast","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/reports/margin":{"get":{"operationId":"accounting.report.margin","summary":"Sales and margin by product, room and service.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["product","service","kind"]}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.report.margin","x-rivier-cli":"accounting report margin","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/reports/profit-and-loss":{"get":{"operationId":"accounting.report.profitAndLoss","summary":"Profit and loss.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["product","service","kind"]}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_profit_and_loss","x-rivier-graphql":"Query.accountingProfitAndLoss","x-rivier-sdk":"accounting.report.profitAndLoss","x-rivier-cli":"accounting report profit and loss","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/reports/tax":{"get":{"operationId":"accounting.report.tax","summary":"Tax summary working paper.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["product","service","kind"]}}],"x-rivier-scope":"accounting:read","x-rivier-mcp":"rivier_accounting_tax_summary","x-rivier-graphql":"Query.accountingTaxSummary","x-rivier-sdk":"accounting.report.tax","x-rivier-cli":"accounting report tax","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/revalue":{"post":{"operationId":"accounting.revalue.run","summary":"Restate open foreign-currency items at a date's rate.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.revalue.run","x-rivier-cli":"accounting revalue run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asOf":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["asOf"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/settings":{"get":{"operationId":"accounting.settings.get","summary":"Base currency, edition, closed-through date and the notice.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.settings.get","x-rivier-cli":"accounting settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/setup":{"post":{"operationId":"accounting.settings.setup","summary":"Set up the books for an edition and a base currency.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.settings.setup","x-rivier-cli":"accounting settings setup","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"preset":{"type":"string","enum":["shop","hotel","services","freelancer","publication"],"default":"shop"},"baseCurrency":{"type":"string","pattern":"^[a-z]{3}$","default":"eur"},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"fiscalStartMonth":{"type":"integer","minimum":1,"maximum":12,"default":1}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/stock/receipts":{"post":{"operationId":"accounting.stock.receive","summary":"Record what received stock cost.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.stock.receive","x-rivier-cli":"accounting stock receive","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","exclusiveMinimum":0,"maximum":10000000},"unitCostMinor":{"type":"integer","minimum":0,"maximum":99999999999},"receivedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"ref":{"type":"string","maxLength":120,"default":""},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["variantId","quantity","unitCostMinor","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/stock/valuation":{"get":{"operationId":"accounting.stock.valuation","summary":"Stock at cost by variant, next to what the books say.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.stock.valuation","x-rivier-cli":"accounting stock valuation","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/suppliers":{"get":{"operationId":"accounting.supplier.list","summary":"Suppliers and what is owed to each.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.supplier.list","x-rivier-cli":"accounting supplier list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"suppliers":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["suppliers"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"accounting.supplier.create","summary":"Add a supplier.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:write","x-rivier-sdk":"accounting.supplier.create","x-rivier-cli":"accounting supplier create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"taxId":{"type":"string","maxLength":30,"default":""},"country":{"type":"string","maxLength":2,"default":""},"paymentDays":{"type":"integer","minimum":0,"maximum":365,"default":30},"bankDetails":{"type":"string","maxLength":300,"default":""},"notes":{"type":"string","maxLength":1000,"default":""}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/tax/packs":{"get":{"operationId":"accounting.tax.packs","summary":"Tax rule packs and which are applied and reviewed.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.tax.packs","x-rivier-cli":"accounting tax packs","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/tax/packs/{key}/apply":{"post":{"operationId":"accounting.tax.apply","summary":"Apply a tax rule pack (it stays unverified until reviewed).","tags":["accounting"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.tax.apply","x-rivier-cli":"accounting tax apply","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/tax/packs/{key}/review":{"post":{"operationId":"accounting.tax.review","summary":"Mark a tax rule pack reviewed by an accountant.","tags":["accounting"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"accounting:admin","x-rivier-sdk":"accounting.tax.review","x-rivier-cli":"accounting tax review","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","minLength":1,"maxLength":500}},"required":["note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/trail":{"get":{"operationId":"accounting.trail.list","summary":"What people did in the books, in order.","tags":["accounting"],"parameters":[],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.trail.list","x-rivier-cli":"accounting trail list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["events"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/accounting/trial-balance":{"get":{"operationId":"accounting.trialBalance.get","summary":"Trial balance.","tags":["accounting"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"asOf","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"by","in":"query","required":false,"schema":{"type":"string","enum":["product","service","kind"]}}],"x-rivier-scope":"accounting:read","x-rivier-sdk":"accounting.trialBalance.get","x-rivier-cli":"accounting trial balance get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/audit":{"get":{"operationId":"agents.assistant.audit","summary":"Everything the assistant did in a thread or plan: who asked, what ran, why, and what was decided.","tags":["agents"],"parameters":[{"name":"threadId","in":"query","required":false,"schema":{"type":"string"}},{"name":"planId","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.audit","x-rivier-cli":"agents assistant audit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/business-design":{"get":{"operationId":"agents.assistant.businessDesign","summary":"The business design record and where each area stands: what is set up, what is next, and what the assistant can do for each.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.businessDesign","x-rivier-cli":"agents assistant business design","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/business-goal":{"get":{"operationId":"agents.assistant.businessGoal","summary":"The business goal a person has stated for the project, and the goals stated before it. The assistant and the agents read it when they plan and write.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.businessGoal","x-rivier-cli":"agents assistant business goal","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.assistant.businessGoalSet","summary":"State or change the business goal: one sentence, with an optional measure and day. Only a person who administers the project does this; a key or an agent is refused.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.businessGoalSet","x-rivier-cli":"agents assistant business goal set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"outcome":{"type":"string","minLength":3,"maxLength":280},"measure":{"type":"string","maxLength":160},"by":{"type":"string"}},"required":["outcome"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"agents.assistant.businessGoalClear","summary":"Clear the business goal. The earlier goals stay on record. Only a person who administers the project does this.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.businessGoalClear","x-rivier-cli":"agents assistant business goal clear","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/catalogue":{"get":{"operationId":"agents.assistant.catalogue","summary":"What the assistant can do for this key: tool, plain-words summary, risk and role.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.catalogue","x-rivier-cli":"agents assistant catalogue","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/memory/settings":{"get":{"operationId":"agents.assistant.memorySettingsGet","summary":"Whether conversations on this project use and save memory.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.memorySettingsGet","x-rivier-cli":"agents assistant memory settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.assistant.memorySettingsSet","summary":"Switch on or off using and saving memory in conversations on this project. An administrator changes it.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.memorySettingsSet","x-rivier-cli":"agents assistant memory settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/memory/suggestions":{"get":{"operationId":"agents.assistant.memorySuggestions","summary":"Facts and preferences the assistant proposes to remember from conversations, waiting for a decision.","tags":["agents"],"parameters":[{"name":"threadId","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.memorySuggestions","x-rivier-cli":"agents assistant memory suggestions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/memory/suggestions/{id}/accept":{"post":{"operationId":"agents.assistant.memorySuggestionAccept","summary":"Accept a proposed memory, with its wording as it is or your own. It becomes an active item on the Memory page.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.memorySuggestionAccept","x-rivier-cli":"agents assistant memory suggestion accept","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/memory/suggestions/{id}/dismiss":{"post":{"operationId":"agents.assistant.memorySuggestionDismiss","summary":"Dismiss a proposed memory; nothing is kept.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.memorySuggestionDismiss","x-rivier-cli":"agents assistant memory suggestion dismiss","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/memory/{id}/forget":{"post":{"operationId":"agents.assistant.memoryForget","summary":"Forget a memory: it leaves recall at once.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.memoryForget","x-rivier-cli":"agents assistant memory forget","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/mentions":{"get":{"operationId":"agents.assistant.mentions","summary":"Find the things a message can point at with @: customers, documents, library files, agents and website pages, each read through its own service with your own access; a kind you may not read is left out and listed.","tags":["agents"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20}}],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.mentions","x-rivier-cli":"agents assistant mentions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/plans/{id}/decide":{"post":{"operationId":"agents.assistant.decide","summary":"Approve, edit or reject the changes the assistant is waiting on. Only a person can approve.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.decide","x-rivier-cli":"agents assistant decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/plans/{id}/undo":{"post":{"operationId":"agents.assistant.undo","summary":"Undo the reversible changes of a finished plan, newest first.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.undo","x-rivier-cli":"agents assistant undo","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/settings":{"get":{"operationId":"agents.assistant.settingsGet","summary":"Which model the assistant plans with for this organisation, and whether that is the organisation's own choice or the platform default.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.settingsGet","x-rivier-cli":"agents assistant settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.assistant.settingsSet","summary":"Choose the model the assistant plans with for this organisation, or null for the platform default. If the plan does not include it the assistant falls back to the default.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.settingsSet","x-rivier-cli":"agents assistant settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"modelId":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]}},"required":["modelId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/threads":{"post":{"operationId":"agents.assistant.threadCreate","summary":"Start a conversation with the assistant: a titled thread for a goal, kept as a record.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.threadCreate","x-rivier-cli":"agents assistant thread create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"goal":{"type":"string","maxLength":300},"surface":{"type":"string","enum":["ask","advisor"],"description":"Which screen the conversation belongs to; default ask"}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"agents.assistant.threadList","summary":"Your conversations on this project, newest first, searchable. surface=advisor lists the marketing advisor's conversations; the default is the assistant's own.","tags":["agents"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"archived","in":"query","required":false,"schema":{"type":"string"}},{"name":"surface","in":"query","required":false,"schema":{"type":"string","enum":["ask","advisor"]}}],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.threadList","x-rivier-cli":"agents assistant thread list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/threads/{id}":{"get":{"operationId":"agents.assistant.threadGet","summary":"One conversation with its messages, linked objects and decisions.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.threadGet","x-rivier-cli":"agents assistant thread get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"agents.assistant.threadUpdate","summary":"Rename, pin or archive a conversation, or switch whether it uses and saves memory. Only its owner changes it.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.threadUpdate","x-rivier-cli":"agents assistant thread update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"pinned":{"type":"boolean"},"archived":{"type":"boolean"},"memory":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"agents.assistant.threadDelete","summary":"Delete a conversation. What it created in other services stays; the memories it taught stay unless forgetMemories is set.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"forgetMemories","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.threadDelete","x-rivier-cli":"agents assistant thread delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/threads/{id}/interrupt":{"post":{"operationId":"agents.assistant.interrupt","summary":"Stop the assistant at the next safe point, or redirect it with a new instruction while it works.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.interrupt","x-rivier-cli":"agents assistant interrupt","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["stop","steer"],"default":"stop"},"message":{"type":"string","maxLength":2000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/threads/{id}/memory":{"get":{"operationId":"agents.assistant.threadMemory","summary":"The memories a conversation taught: accepted ones and proposals still waiting.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:read","x-rivier-sdk":"agents.assistant.threadMemory","x-rivier-cli":"agents assistant thread memory","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/threads/{id}/messages":{"post":{"operationId":"agents.assistant.message","summary":"Tell the assistant what you want done; it answers as a stream of events (words, plan, previews, approval requests, results).","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.message","x-rivier-cli":"agents assistant message","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":1,"maxLength":8000},"mode":{"type":"string","enum":["ask","plan","do_with_approval","do_within_rules"],"default":"do_with_approval"},"mentions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true},"maxItems":20,"default":[]},"attachments":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true},"maxItems":5,"default":[]}},"required":["message"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/assistant/threads/{id}/record":{"post":{"operationId":"agents.assistant.threadRecord","summary":"Keep the turns of an advisor conversation (what the person said and what the advisor answered), so history lists and reopens it. Not for the assistant's own conversations, which it writes itself.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"agents:write","x-rivier-sdk":"agents.assistant.threadRecord","x-rivier-cli":"agents assistant thread record","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"text":{"type":"string","minLength":1,"maxLength":8000}},"required":["role","text"],"additionalProperties":false},"minItems":1,"maxItems":6}},"required":["messages"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/cards":{"get":{"operationId":"agents.cards.get","summary":"Read agents cards","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsCardsGet","x-rivier-sdk":"agents.cards.get","x-rivier-cli":"agents cards get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/assignment":{"get":{"operationId":"agents.assignment.get","summary":"An agent's assignment.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_assignment_get","x-rivier-graphql":"Query.agentsAssignmentGet","x-rivier-sdk":"agents.assignment.get","x-rivier-cli":"agents assignment get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.assignment.set","summary":"Assign an agent to channels.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_assignment_set","x-rivier-graphql":"Mutation.agentsAssignmentSet","x-rivier-sdk":"agents.assignment.set","x-rivier-cli":"agents assignment set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"agents.assignment.clear","summary":"Clear an agent's assignment.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAssignmentClear","x-rivier-sdk":"agents.assignment.clear","x-rivier-cli":"agents assignment clear","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/autonomy":{"get":{"operationId":"agents.autonomy.get","summary":"Read agents autonomy (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_autonomy_get","x-rivier-graphql":"Query.agentsAutonomyGet","x-rivier-sdk":"agents.autonomy.get","x-rivier-cli":"agents autonomy get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.autonomy.set","summary":"Set agents autonomy (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_autonomy_set","x-rivier-graphql":"Mutation.agentsAutonomySet","x-rivier-sdk":"agents.autonomy.set","x-rivier-cli":"agents autonomy set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/autonomy/apply-default":{"post":{"operationId":"agents.autonomy.applyDefault","summary":"Run agents autonomy apply default (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAutonomyApplyDefault","x-rivier-sdk":"agents.autonomy.applyDefault","x-rivier-cli":"agents autonomy apply default","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/autonomy/history":{"get":{"operationId":"agents.autonomyHistory.get","summary":"Read agents autonomy history (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAutonomyHistoryGet","x-rivier-sdk":"agents.autonomyHistory.get","x-rivier-cli":"agents autonomy history get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/autonomy/pause":{"post":{"operationId":"agents.autonomy.pause","summary":"Run agents autonomy pause (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_pause_agent","x-rivier-graphql":"Mutation.agentsAutonomyPause","x-rivier-sdk":"agents.autonomy.pause","x-rivier-cli":"agents autonomy pause","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/autonomy/resume":{"post":{"operationId":"agents.autonomy.resume","summary":"Run agents autonomy resume (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAutonomyResume","x-rivier-sdk":"agents.autonomy.resume","x-rivier-cli":"agents autonomy resume","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/autonomy/summary":{"get":{"operationId":"agents.autonomySummary.get","summary":"Read agents autonomy summary (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_autonomy_insights","x-rivier-graphql":"Query.agentsAutonomySummaryGet","x-rivier-sdk":"agents.autonomySummary.get","x-rivier-cli":"agents autonomy summary get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/calls":{"post":{"operationId":"agents.call.place","summary":"Place a call as an agent.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_call_place","x-rivier-graphql":"Mutation.agentsCallPlace","x-rivier-sdk":"agents.call.place","x-rivier-cli":"agents call place","x-rivier-events":["voice.call.placed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/card":{"get":{"operationId":"agents.card.get","summary":"Read agents card (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsCardGet","x-rivier-sdk":"agents.card.get","x-rivier-cli":"agents card get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/channels":{"get":{"operationId":"agents.channels.get","summary":"Read agents channels (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsChannelsGet","x-rivier-sdk":"agents.channels.get","x-rivier-cli":"agents channels get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.channels.create","summary":"Run agents channels (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_binding_assign","x-rivier-graphql":"Mutation.agentsChannelsCreate","x-rivier-sdk":"agents.channels.create","x-rivier-cli":"agents channels create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/channels/allocations":{"post":{"operationId":"agents.channelsAllocations.create","summary":"Run agents channels allocations (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_resource_request","x-rivier-graphql":"Mutation.agentsChannelsAllocationsCreate","x-rivier-sdk":"agents.channelsAllocations.create","x-rivier-cli":"agents channels allocations create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/channels/reply-as":{"get":{"operationId":"agents.channelsReplyas.get","summary":"Read agents channels reply as (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_channel_reply_as","x-rivier-graphql":"Query.agentsChannelsReplyasGet","x-rivier-sdk":"agents.channelsReplyas.get","x-rivier-cli":"agents channels replyas get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life":{"get":{"operationId":"agents.life.get","summary":"Whether the agent has a life, its state and last sync.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_life_status","x-rivier-graphql":"Query.agentsLifeGet","x-rivier-sdk":"agents.life.get","x-rivier-cli":"agents life get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.life.provision","summary":"Give an agent a life from its approved persona.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_life_provision","x-rivier-graphql":"Mutation.agentsLifeProvision","x-rivier-sdk":"agents.life.provision","x-rivier-cli":"agents life provision","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/events":{"get":{"operationId":"agents.life.events","summary":"What the agent learned and decided.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["in","out"]}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_life_events","x-rivier-graphql":"Query.agentsLifeEvents","x-rivier-sdk":"agents.life.events","x-rivier-cli":"agents life events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.life.propose","summary":"Record something the agent learned.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_life_propose","x-rivier-graphql":"Mutation.agentsLifePropose","x-rivier-sdk":"agents.life.propose","x-rivier-cli":"agents life propose","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"}},"required":["kind"],"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/evolution":{"get":{"operationId":"agents.life.evolution","summary":"How the agent's life has changed its way of working: what it has adopted and learned, what changed and when.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsLifeEvolution","x-rivier-sdk":"agents.life.evolution","x-rivier-cli":"agents life evolution","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/export":{"get":{"operationId":"agents.life.export","summary":"The whole life history in order.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_life_export","x-rivier-graphql":"Query.agentsLifeExport","x-rivier-sdk":"agents.life.export","x-rivier-cli":"agents life export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/mode":{"get":{"operationId":"agents.lifeMode.get","summary":"Read agents life mode (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsLifeModeGet","x-rivier-sdk":"agents.lifeMode.get","x-rivier-cli":"agents life mode get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.lifeMode.set","summary":"Set agents life mode (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsLifeModeSet","x-rivier-sdk":"agents.lifeMode.set","x-rivier-cli":"agents life mode set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/pause":{"post":{"operationId":"agents.life.pause","summary":"Stop the agent's world clock.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_life_pause","x-rivier-graphql":"Mutation.agentsLifePause","x-rivier-sdk":"agents.life.pause","x-rivier-cli":"agents life pause","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/resume":{"post":{"operationId":"agents.life.resume","summary":"Start the clock again.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_life_resume","x-rivier-graphql":"Mutation.agentsLifeResume","x-rivier-sdk":"agents.life.resume","x-rivier-cli":"agents life resume","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/retire":{"post":{"operationId":"agents.life.retire","summary":"End the life for good.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_life_retire","x-rivier-graphql":"Mutation.agentsLifeRetire","x-rivier-sdk":"agents.life.retire","x-rivier-cli":"agents life retire","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"erase":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/simulations":{"get":{"operationId":"agents.lifeSimulations.get","summary":"Read agents life simulations (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsLifeSimulationsGet","x-rivier-sdk":"agents.lifeSimulations.get","x-rivier-cli":"agents life simulations get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.lifeSimulations.create","summary":"Run agents life simulations (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsLifeSimulationsCreate","x-rivier-sdk":"agents.lifeSimulations.create","x-rivier-cli":"agents life simulations create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/simulations/estimate":{"post":{"operationId":"agents.lifeSimulations.estimate","summary":"Run agents life simulations estimate (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsLifeSimulationsEstimate","x-rivier-sdk":"agents.lifeSimulations.estimate","x-rivier-cli":"agents life simulations estimate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/simulations/{simId}":{"get":{"operationId":"agents.lifeSimulations.get2","summary":"Read agents life simulations (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"simId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsLifeSimulationsGet2","x-rivier-sdk":"agents.lifeSimulations.get2","x-rivier-cli":"agents life simulations get2","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/simulations/{simId}/events":{"get":{"operationId":"agents.lifeSimulationsEvents.get","summary":"Read agents life simulations events (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"simId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsLifeSimulationsEventsGet","x-rivier-sdk":"agents.lifeSimulationsEvents.get","x-rivier-cli":"agents life simulations events get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/sync":{"post":{"operationId":"agents.life.sync","summary":"Sync the project's lives now.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsLifeSync","x-rivier-sdk":"agents.life.sync","x-rivier-cli":"agents life sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/life/work":{"post":{"operationId":"agents.life.work","summary":"Say what was done under a ticket the persona prompt issued, so the agent's life can learn from it. Say what kind of work, not what a customer wrote.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsLifeWork","x-rivier-sdk":"agents.life.work","x-rivier-cli":"agents life work","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ticket":{"type":"string","minLength":1,"maxLength":100},"brief":{"type":"string","minLength":1,"maxLength":500}},"required":["ticket","brief"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/memory-grant":{"delete":{"operationId":"agents.memoryGrant.remove","summary":"Remove agents memory grant (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsMemoryGrantRemove","x-rivier-sdk":"agents.memoryGrant.remove","x-rivier-cli":"agents memory grant remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"agents.memoryGrant.get","summary":"Read agents memory grant (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_grant_get","x-rivier-graphql":"Query.agentsMemoryGrantGet","x-rivier-sdk":"agents.memoryGrant.get","x-rivier-cli":"agents memory grant get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.memoryGrant.set","summary":"Set agents memory grant (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_grant_set","x-rivier-graphql":"Mutation.agentsMemoryGrantSet","x-rivier-sdk":"agents.memoryGrant.set","x-rivier-cli":"agents memory grant set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/memory-grant/explain":{"get":{"operationId":"agents.memoryGrantExplain.get","summary":"Read agents memory grant explain (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_grant_explain","x-rivier-graphql":"Query.agentsMemoryGrantExplainGet","x-rivier-sdk":"agents.memoryGrantExplain.get","x-rivier-cli":"agents memory grant explain get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/memory-grant/history":{"get":{"operationId":"agents.memoryGrantHistory.get","summary":"Read agents memory grant history (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsMemoryGrantHistoryGet","x-rivier-sdk":"agents.memoryGrantHistory.get","x-rivier-cli":"agents memory grant history get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/memory-grant/preview":{"post":{"operationId":"agents.memoryGrant.preview","summary":"Run agents memory grant preview (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsMemoryGrantPreview","x-rivier-sdk":"agents.memoryGrant.preview","x-rivier-cli":"agents memory grant preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona":{"get":{"operationId":"agents.persona.get","summary":"The approved persona, the working draft and the version count.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_persona_get","x-rivier-graphql":"Query.agentsPersonaGet","x-rivier-sdk":"agents.persona.get","x-rivier-cli":"agents persona get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/approve":{"post":{"operationId":"agents.persona.approve","summary":"Approve the submitted persona.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_persona_approve","x-rivier-graphql":"Mutation.agentsPersonaApprove","x-rivier-sdk":"agents.persona.approve","x-rivier-cli":"agents persona approve","x-rivier-events":["agents.persona.approved"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/avatar/generate":{"post":{"operationId":"agents.personaAvatar.generate","summary":"Run agents persona avatar generate (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsPersonaAvatarGenerate","x-rivier-sdk":"agents.personaAvatar.generate","x-rivier-cli":"agents persona avatar generate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/avatar/variants":{"post":{"operationId":"agents.personaAvatar.variants","summary":"Run agents persona avatar variants (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsPersonaAvatarVariants","x-rivier-sdk":"agents.personaAvatar.variants","x-rivier-cli":"agents persona avatar variants","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/disclosure":{"get":{"operationId":"agents.persona.disclosure","summary":"The AI disclosure text for an agent.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsPersonaDisclosure","x-rivier-sdk":"agents.persona.disclosure","x-rivier-cli":"agents persona disclosure","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/draft":{"put":{"operationId":"agents.persona.saveDraft","summary":"Save a persona draft.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_persona_save_draft","x-rivier-graphql":"Mutation.agentsPersonaSaveDraft","x-rivier-sdk":"agents.persona.saveDraft","x-rivier-cli":"agents persona save draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/prompt":{"get":{"operationId":"agents.personaPrompt.get","summary":"Read agents persona prompt (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsPersonaPromptGet","x-rivier-sdk":"agents.personaPrompt.get","x-rivier-cli":"agents persona prompt get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/reject":{"post":{"operationId":"agents.persona.reject","summary":"Send a persona back with a note.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_persona_reject","x-rivier-graphql":"Mutation.agentsPersonaReject","x-rivier-sdk":"agents.persona.reject","x-rivier-cli":"agents persona reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","minLength":1,"maxLength":500}},"required":["note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/submit":{"post":{"operationId":"agents.persona.submit","summary":"Send the draft for approval.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_persona_submit","x-rivier-graphql":"Mutation.agentsPersonaSubmit","x-rivier-sdk":"agents.persona.submit","x-rivier-cli":"agents persona submit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/persona/versions":{"get":{"operationId":"agents.persona.versions","summary":"Every saved version of a persona.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsPersonaVersions","x-rivier-sdk":"agents.persona.versions","x-rivier-cli":"agents persona versions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/qa/readiness":{"get":{"operationId":"agents.qaReadiness.get","summary":"Whether an agent has passed its tests since its persona last changed","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_qa_readiness","x-rivier-graphql":"Query.agentsQaReadinessGet","x-rivier-sdk":"agents.qaReadiness.get","x-rivier-cli":"agents qa readiness get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/qa/run":{"post":{"operationId":"agents.qa.run","summary":"Run a test suite against an agent","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_qa_run","x-rivier-graphql":"Mutation.agentsQaRun","x-rivier-sdk":"agents.qa.run","x-rivier-cli":"agents qa run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/qa/runs":{"get":{"operationId":"agents.qaRuns.get","summary":"Test runs for an agent","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsQaRunsGet","x-rivier-sdk":"agents.qaRuns.get","x-rivier-cli":"agents qa runs get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/qa/runs/{runId}":{"get":{"operationId":"agents.qaRun.get","summary":"One test run with every case","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"runId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsQaRunGet","x-rivier-sdk":"agents.qaRun.get","x-rivier-cli":"agents qa run get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/qa/score":{"post":{"operationId":"agents.qa.score","summary":"Score a real conversation against a standard","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_qa_score","x-rivier-graphql":"Mutation.agentsQaScore","x-rivier-sdk":"agents.qa.score","x-rivier-cli":"agents qa score","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/qa/suites":{"get":{"operationId":"agents.qaSuites.get","summary":"Test suites for an agent, with the built-in red-team suite","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsQaSuitesGet","x-rivier-sdk":"agents.qaSuites.get","x-rivier-cli":"agents qa suites get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.qaSuites.set","summary":"Save a test suite for an agent","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsQaSuitesSet","x-rivier-sdk":"agents.qaSuites.set","x-rivier-cli":"agents qa suites set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/recall":{"get":{"operationId":"agents.recall.get","summary":"Read agents recall (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsRecallGet","x-rivier-sdk":"agents.recall.get","x-rivier-cli":"agents recall get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/reflection":{"get":{"operationId":"agents.reflection.get","summary":"An agent's reflection schedule.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsReflectionGet","x-rivier-sdk":"agents.reflection.get","x-rivier-cli":"agents reflection get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.reflection.set","summary":"Set the reflection schedule.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_reflection_schedule_set","x-rivier-graphql":"Mutation.agentsReflectionSet","x-rivier-sdk":"agents.reflection.set","x-rivier-cli":"agents reflection set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/reflection/pause":{"post":{"operationId":"agents.reflection.pause","summary":"Pause reflection.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsReflectionPause","x-rivier-sdk":"agents.reflection.pause","x-rivier-cli":"agents reflection pause","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/reflection/resume":{"post":{"operationId":"agents.reflection.resume","summary":"Resume reflection.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsReflectionResume","x-rivier-sdk":"agents.reflection.resume","x-rivier-cli":"agents reflection resume","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/reflection/run":{"post":{"operationId":"agents.reflection.run","summary":"Reflect now.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_reflection_run_now","x-rivier-graphql":"Mutation.agentsReflectionRun","x-rivier-sdk":"agents.reflection.run","x-rivier-cli":"agents reflection run","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/tag-view":{"delete":{"operationId":"agents.tagView.remove","summary":"Remove agents tag view (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsTagViewRemove","x-rivier-sdk":"agents.tagView.remove","x-rivier-cli":"agents tag view remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"agents.tagView.get","summary":"Read agents tag view (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsTagViewGet","x-rivier-sdk":"agents.tagView.get","x-rivier-cli":"agents tag view get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.tagView.set","summary":"Set agents tag view (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_agent_tag_view_set","x-rivier-graphql":"Mutation.agentsTagViewSet","x-rivier-sdk":"agents.tagView.set","x-rivier-cli":"agents tag view set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/texts":{"post":{"operationId":"agents.text.send","summary":"Send a text as an agent.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_sms_send","x-rivier-graphql":"Mutation.agentsTextSend","x-rivier-sdk":"agents.text.send","x-rivier-cli":"agents text send","x-rivier-events":["voice.text.sent"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numberId":{"type":"string","format":"uuid"},"to":{"type":"string","pattern":"^\\+\\d{6,15}$"},"text":{"type":"string","minLength":1,"maxLength":1600},"firstContact":{"type":"boolean"}},"required":["numberId","to","text"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/agents/{id}/voice":{"get":{"operationId":"agents.voice.get","summary":"An agent's voice profile.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_voice_profile_get","x-rivier-graphql":"Query.agentsVoiceGet","x-rivier-sdk":"agents.voice.get","x-rivier-cli":"agents voice get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.voice.propose","summary":"Propose a voice profile.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_voice_profile_propose","x-rivier-graphql":"Mutation.agentsVoicePropose","x-rivier-sdk":"agents.voice.propose","x-rivier-cli":"agents voice propose","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/events":{"post":{"operationId":"analytics.event.send","summary":"Send product events from your server: a name, a few properties, your own id for the person (only a one-way digest of it is kept, tied to the day unless the person agreed) and whether they agreed. Values that look like an email address or a phone number are dropped.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-mcp":"rivier_analytics_events_send","x-rivier-graphql":"Mutation.analyticsEventSend","x-rivier-sdk":"analytics.event.send","x-rivier-cli":"analytics event send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,59}$"},"anonymousId":{"type":"string","minLength":1,"maxLength":120,"description":"Your own id for the person; it is never stored, only a one-way digest of it"},"properties":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":200},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"consent":{"type":"boolean","description":"The person agreed to be recognised from one day to the next"},"at":{"type":"string","format":"date-time","description":"When it happened; up to seven days back"}},"required":["name","anonymousId"],"additionalProperties":false},"minItems":1,"maxItems":100}},"required":["events"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"accepted":{"type":"number"},"dropped":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["accepted","dropped"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/events/breakdown":{"get":{"operationId":"analytics.event.breakdown","summary":"One event's counts by the values of one property.","tags":["analytics"],"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,59}$"}},{"name":"property","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,39}$"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_breakdown","x-rivier-graphql":"Query.analyticsEventBreakdown","x-rivier-sdk":"analytics.event.breakdown","x-rivier-cli":"analytics event breakdown","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/events/funnel":{"post":{"operationId":"analytics.event.funnel","summary":"How many people did each step in order, each within the window from their first step.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_funnel","x-rivier-graphql":"Query.analyticsEventFunnel","x-rivier-sdk":"analytics.event.funnel","x-rivier-cli":"analytics event funnel","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,59}$"},"minItems":2,"maxItems":8},"windowHours":{"type":"integer","minimum":1,"maximum":720,"default":24},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["steps","from","to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/events/names":{"get":{"operationId":"analytics.event.names","summary":"Which events arrived in the last days, with how many times and by how many people.","tags":["analytics"],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":400}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_events","x-rivier-graphql":"Query.analyticsEventNames","x-rivier-sdk":"analytics.event.names","x-rivier-cli":"analytics event names","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/events/retention":{"post":{"operationId":"analytics.event.retention","summary":"Of the people who first did one event in each day or week, how many did another in each later one (people who agreed only).","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_retention","x-rivier-graphql":"Query.analyticsEventRetention","x-rivier-sdk":"analytics.event.retention","x-rivier-cli":"analytics event retention","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"start":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,59}$"},"back":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.:-]{0,59}$"},"interval":{"type":"string","enum":["day","week"],"default":"week"},"periods":{"type":"integer","minimum":1,"maximum":12,"default":8},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"}},"required":["start","back","from","to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/ai":{"get":{"operationId":"analytics.siteAi.get","summary":"Visits that arrived from AI answers, pages AI answer engines fetched, and what those visits led to.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_ai","x-rivier-graphql":"Query.analyticsSiteAiGet","x-rivier-sdk":"analytics.siteAi.get","x-rivier-cli":"analytics site ai get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/cohorts":{"get":{"operationId":"analytics.siteCohorts.get","summary":"Weekly cohorts of visitors who agreed to recognition and how many came back; small cohorts are left out.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_cohorts","x-rivier-graphql":"Query.analyticsSiteCohortsGet","x-rivier-sdk":"analytics.siteCohorts.get","x-rivier-cli":"analytics site cohorts get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/collected":{"get":{"operationId":"analytics.siteCollected.get","summary":"What the site counts and why, region by region, with the rule's status. Guidance, not legal advice.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_what_we_collect","x-rivier-graphql":"Query.analyticsSiteCollectedGet","x-rivier-sdk":"analytics.siteCollected.get","x-rivier-cli":"analytics site collected get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/conversions":{"get":{"operationId":"analytics.siteConversions.get","summary":"Forms, bookings, orders, reviews and chats that happened, by where the visitor came from and by product, room or article.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_conversions","x-rivier-graphql":"Query.analyticsSiteConversionsGet","x-rivier-sdk":"analytics.siteConversions.get","x-rivier-cli":"analytics site conversions get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/evidence":{"get":{"operationId":"analytics.siteEvidence.list","summary":"Evidence rows: when the daily secret was destroyed and what each retention run removed.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsSiteEvidenceList","x-rivier-sdk":"analytics.siteEvidence.list","x-rivier-cli":"analytics site evidence list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/explain":{"get":{"operationId":"analytics.siteExplain.get","summary":"Why a number changed: ranked causes computed from the counters and from what happened to the site, each with its evidence, and what stays uncertain.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"metric","in":"query","required":false,"schema":{"type":"string","enum":["bookings","orders","enquiries","visitors","views"],"default":"bookings"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_explain","x-rivier-graphql":"Query.analyticsSiteExplainGet","x-rivier-sdk":"analytics.siteExplain.get","x-rivier-cli":"analytics site explain get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/fixes":{"get":{"operationId":"analytics.siteFixes.list","summary":"Things to fix: broken links, slow pages and regions whose rule waits for a review.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_fixes","x-rivier-graphql":"Query.analyticsSiteFixesList","x-rivier-sdk":"analytics.siteFixes.list","x-rivier-cli":"analytics site fixes list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/funnels":{"get":{"operationId":"analytics.siteFunnels.get","summary":"The enquiry, booking and order steps: how many reached each step.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_funnels","x-rivier-graphql":"Query.analyticsSiteFunnelsGet","x-rivier-sdk":"analytics.siteFunnels.get","x-rivier-cli":"analytics site funnels get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/goals":{"get":{"operationId":"analytics.siteGoals.get","summary":"Goals: pages reached, events and outcomes, with how often and what they were worth.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_goals","x-rivier-graphql":"Query.analyticsSiteGoalsGet","x-rivier-sdk":"analytics.siteGoals.get","x-rivier-cli":"analytics site goals get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/import":{"post":{"operationId":"analytics.siteImport.run","summary":"Bring in daily page-view totals from another tool for days before today that have nothing counted here.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsSiteImportRun","x-rivier-sdk":"analytics.siteImport.run","x-rivier-cli":"analytics site import run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":80},"rows":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"views":{"type":"integer","minimum":0},"visitors":{"type":"integer","minimum":0}},"required":["day","views"],"additionalProperties":false},"maxItems":1100}},"required":["rows"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/overview":{"get":{"operationId":"analytics.siteOverview.get","summary":"Visits, people, sources, pages, countries, devices and browsers for a period, with the change on the period before and the words that describe it. Small groups are merged into Other.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_overview","x-rivier-graphql":"Query.analyticsSiteOverviewGet","x-rivier-sdk":"analytics.siteOverview.get","x-rivier-cli":"analytics site overview get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/processing":{"get":{"operationId":"analytics.siteProcessing.get","summary":"The record-of-processing entry for site analytics.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_processing","x-rivier-graphql":"Query.analyticsSiteProcessingGet","x-rivier-sdk":"analytics.siteProcessing.get","x-rivier-cli":"analytics site processing get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/projects":{"get":{"operationId":"analytics.siteProjects.list","summary":"The hosted sites that have analytics, with their hostnames.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_sites","x-rivier-graphql":"Query.analyticsSiteProjectsList","x-rivier-sdk":"analytics.siteProjects.list","x-rivier-cli":"analytics site projects list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/retention/run":{"post":{"operationId":"analytics.siteRetention.run","summary":"Run the retention schedule now: remove what has outlived it and record the evidence.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsSiteRetentionRun","x-rivier-sdk":"analytics.siteRetention.run","x-rivier-cli":"analytics site retention run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dryRun":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/review":{"get":{"operationId":"analytics.siteReview.get","summary":"Regions the site gets visits from and whether each uses a cautious setting because its rule is unconfirmed, stale or under review.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_review","x-rivier-graphql":"Query.analyticsSiteReviewGet","x-rivier-sdk":"analytics.siteReview.get","x-rivier-cli":"analytics site review get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/settings":{"get":{"operationId":"analytics.siteSettings.get","summary":"The analytics settings of a site: mode, signals, thresholds, funnels, data region.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_settings","x-rivier-graphql":"Query.analyticsSiteSettingsGet","x-rivier-sdk":"analytics.siteSettings.get","x-rivier-cli":"analytics site settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"analytics.siteSettings.update","summary":"Change the analytics settings of a site. Anything that collects more is a person's decision and an agent is refused.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"analytics:write","x-rivier-mcp":"rivier_analytics_set_settings","x-rivier-graphql":"Mutation.analyticsSiteSettingsUpdate","x-rivier-sdk":"analytics.siteSettings.update","x-rivier-cli":"analytics site settings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean","default":true},"ownerMode":{"type":"string","enum":["M0","M1","M2"],"default":"M1"},"childAudience":{"type":"boolean","default":false},"unverifiedRows":{"type":"string","enum":["cautious","ceiling"],"default":"cautious"},"signalBehaviour":{"type":"string","enum":["totals_only","nothing"],"default":"totals_only"},"modelNonConsented":{"type":"boolean","default":false},"suppressBelow":{"type":"integer","minimum":1,"maximum":50,"default":5},"funnels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{1,30}$"},"name":{"type":"string","minLength":1,"maxLength":60},"steps":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":60},"page":{"type":"string","maxLength":200},"event":{"type":"string","maxLength":64}},"required":["label"],"additionalProperties":false},"minItems":2,"maxItems":6},"windowDays":{"type":"integer","minimum":1,"maximum":30,"default":1}},"required":["id","name","steps"],"additionalProperties":false},"maxItems":8,"default":[]},"goals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{1,30}$"},"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["page","event","outcome"]},"match":{"type":"string","minLength":1,"maxLength":200},"valueMinor":{"type":"integer","minimum":0,"maximum":1000000000},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["id","name","kind","match"],"additionalProperties":false},"maxItems":10,"default":[]},"emailReport":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"weekday":{"type":"integer","minimum":0,"maximum":6,"default":1},"recipients":{"type":"array","items":{"type":"string","format":"email","maxLength":200},"maxItems":5,"default":[]}},"additionalProperties":false,"default":{}},"dataRegion":{"anyOf":[{"type":"string","minLength":2,"maxLength":16},{"type":"null"}],"default":null},"counterRetentionDays":{"anyOf":[{"type":"integer","minimum":30,"maximum":3650},{"type":"null"}],"default":null}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/shares":{"get":{"operationId":"analytics.siteShare.list","summary":"Read-only links to the numbers that have been shared.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsSiteShareList","x-rivier-sdk":"analytics.siteShare.list","x-rivier-cli":"analytics site share list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"analytics.siteShare.create","summary":"Make a read-only link to the numbers of a site. The link is shown once. A person's decision.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsSiteShareCreate","x-rivier-sdk":"analytics.siteShare.create","x-rivier-cli":"analytics site share create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":80}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/shares/remove":{"post":{"operationId":"analytics.siteShare.remove","summary":"Remove a shared link.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsSiteShareRemove","x-rivier-sdk":"analytics.siteShare.remove","x-rivier-cli":"analytics site share remove","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":4,"maxLength":20}},"required":["id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/speed":{"get":{"operationId":"analytics.siteSpeed.get","summary":"How fast pages feel for real visits, in words, from anonymous samples.","tags":["analytics"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"range","in":"query","required":false,"schema":{"type":"string","enum":["7d","14d","28d","30d","90d"],"default":"7d"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analytics_speed","x-rivier-graphql":"Query.analyticsSiteSpeedGet","x-rivier-sdk":"analytics.siteSpeed.get","x-rivier-cli":"analytics site speed get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/analytics/site/transactions":{"post":{"operationId":"analytics.siteTransaction.record","summary":"Record an outcome from the project's own records (a form, booking, order, review or chat) with the source class that travelled with it. Used by the modules that hold those records.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsSiteTransactionRecord","x-rivier-sdk":"analytics.siteTransaction.record","x-rivier-cli":"analytics site transaction record","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":80},"kind":{"type":"string","enum":["form","booking","order","review","chat"]},"source":{"type":"string","enum":["ai","search","social","email","paid","referral","direct","unknown"]},"item":{"type":"string","maxLength":80},"page":{"type":"string","maxLength":200},"valueMinor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"canary":{"type":"boolean"},"visitor":{"type":"string","maxLength":40}},"required":["kind"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/answer":{"post":{"operationId":"search.web.answer","summary":"A grounded, cited answer; streams as server-sent events on request.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_answer","x-rivier-graphql":"Query.searchWebAnswer","x-rivier-sdk":"search.web.answer","x-rivier-cli":"search web answer","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":1000},"topK":{"type":"integer","minimum":1,"maximum":20},"forceEscalate":{"type":"boolean"},"stream":{"type":"boolean"}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets":{"get":{"operationId":"files.asset.list","summary":"List assets with filters.","tags":["files"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","maxLength":60}},{"name":"collection","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"ai","in":"query","required":false,"schema":{"type":"string","enum":["1","0","true","false"]}},{"name":"expiringWithinDays","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":3650}},{"name":"deleted","in":"query","required":false,"schema":{"type":"string","enum":["exclude","include","only"]}},{"name":"sha256","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"}},{"name":"sourceRef","in":"query","required":false,"schema":{"type":"string","maxLength":500}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_list","x-rivier-graphql":"Query.filesAssetList","x-rivier-sdk":"files.asset.list","x-rivier-cli":"files asset list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"files.asset.create","summary":"Upload a small file as a base64 body.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_upload","x-rivier-graphql":"Mutation.filesAssetCreate","x-rivier-sdk":"files.asset.create","x-rivier-cli":"files asset create","x-rivier-events":["files.asset.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":300},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"allowDuplicate":{"type":"boolean"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"description":{"type":"string","maxLength":2000},"altText":{"type":"string","maxLength":1500},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40},"licence":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":40},"holder":{"type":"string","maxLength":200},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"terms":{"type":"string","maxLength":2000},"attribution":{"type":"string","maxLength":500},"scope":{"type":"string","maxLength":500}},"required":["type"],"additionalProperties":false},{"type":"null"}]},"rightsExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"ai":{"anyOf":[{"type":"object","properties":{"generated":{"type":"boolean"},"model":{"type":"string","maxLength":120},"tool":{"type":"string","maxLength":120},"generatedAt":{"type":"string","format":"date-time"},"promptRef":{"type":"string","maxLength":300},"note":{"type":"string","maxLength":500}},"required":["generated"],"additionalProperties":false},{"type":"null"}]},"disclosureLine":{"type":"string","maxLength":400},"provenance":{"type":"object","properties":{"originPath":{"type":"string","maxLength":500},"sourceRef":{"type":"string","maxLength":500},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"importedFrom":{"type":"string","maxLength":200},"note":{"type":"string","maxLength":500}},"additionalProperties":false}},"required":["content"],"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true},"version":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"version":{"type":"number"},"sha256":{"type":"string"},"bytes":{"type":"number"}},"required":["id","version","sha256","bytes"],"additionalProperties":false},{"type":"null"}]},"deduped":{"type":"boolean"},"warnings":{"type":"array","items":{}}},"required":["asset","deduped"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/collections":{"get":{"operationId":"files.collection.list","summary":"List collections.","tags":["files"],"parameters":[{"name":"asset","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_collections","x-rivier-graphql":"Query.filesCollectionList","x-rivier-sdk":"files.collection.list","x-rivier-cli":"files collection list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"collections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["set","character","campaign","kit","series","custom"]},"description":{"type":"string"}},"required":["id","name","kind","description"],"additionalProperties":true}}},"required":["collections"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"files.collection.create","summary":"Create a collection.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_collection_save","x-rivier-graphql":"Mutation.filesCollectionCreate","x-rivier-sdk":"files.collection.create","x-rivier-cli":"files collection create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["set","character","campaign","kit","series","custom"]},"description":{"type":"string","maxLength":1000},"refKind":{"type":"string","maxLength":40},"refId":{"type":"string","maxLength":200},"assetIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"collection":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["set","character","campaign","kit","series","custom"]},"description":{"type":"string"}},"required":["id","name","kind","description"],"additionalProperties":true}},"required":["collection"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/collections/{id}":{"get":{"operationId":"files.collection.get","summary":"One collection with its assets.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesCollectionGet","x-rivier-sdk":"files.collection.get","x-rivier-cli":"files collection get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"files.collection.update","summary":"Rename or describe a collection.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesCollectionUpdate","x-rivier-sdk":"files.collection.update","x-rivier-cli":"files collection update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["set","character","campaign","kit","series","custom"]},"description":{"type":"string","maxLength":1000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"collection":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["set","character","campaign","kit","series","custom"]},"description":{"type":"string"}},"required":["id","name","kind","description"],"additionalProperties":true}},"required":["collection"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"files.collection.delete","summary":"Delete a collection (its assets stay).","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesCollectionDelete","x-rivier-sdk":"files.collection.delete","x-rivier-cli":"files collection delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/collections/{id}/items/{assetId}":{"put":{"operationId":"files.collection.addItem","summary":"Put an asset in a collection.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_collection_items","x-rivier-graphql":"Mutation.filesCollectionAddItem","x-rivier-sdk":"files.collection.addItem","x-rivier-cli":"files collection add item","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"position":{"type":"integer","minimum":0},"role":{"type":"string","maxLength":40}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"files.collection.removeItem","summary":"Take an asset out of a collection.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"assetId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesCollectionRemoveItem","x-rivier-sdk":"files.collection.removeItem","x-rivier-cli":"files collection remove item","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/exists":{"get":{"operationId":"files.asset.exists","summary":"Is a checksum already held?","tags":["files"],"parameters":[{"name":"sha256","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_find_by_hash","x-rivier-graphql":"Query.filesAssetExists","x-rivier-sdk":"files.asset.exists","x-rivier-cli":"files asset exists","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"exists":{"type":"boolean"},"assetId":{"type":"string","format":"uuid"},"name":{"type":"string"}},"required":["exists"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/expiring":{"get":{"operationId":"files.asset.expiring","summary":"Assets whose rights lapse soon.","tags":["files"],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":3650}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_expiring","x-rivier-graphql":"Query.filesAssetExpiring","x-rivier-sdk":"files.asset.expiring","x-rivier-cli":"files asset expiring","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"assets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}}},"required":["assets"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/settings":{"get":{"operationId":"files.settings.get","summary":"Limits and rules for the brand's files.","tags":["files"],"parameters":[],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesSettingsGet","x-rivier-sdk":"files.settings.get","x-rivier-cli":"files settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"files.settings.update","summary":"Change limits and rules.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesSettingsUpdate","x-rivier-sdk":"files.settings.update","x-rivier-cli":"files settings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/stream":{"post":{"operationId":"files.asset.stream","summary":"Upload a file as the request body, streamed.","tags":["files"],"parameters":[{"name":"name","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":300}},{"name":"assetId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"allowDuplicate","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}}],"x-rivier-scope":"files:write","x-rivier-sdk":"files.asset.stream","x-rivier-cli":"files asset stream","x-rivier-events":["files.asset.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true},"version":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"version":{"type":"number"},"sha256":{"type":"string"},"bytes":{"type":"number"}},"required":["id","version","sha256","bytes"],"additionalProperties":false},{"type":"null"}]},"deduped":{"type":"boolean"},"warnings":{"type":"array","items":{}}},"required":["asset","deduped"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/summary":{"get":{"operationId":"files.asset.summary","summary":"Counts by state and kind, with the brand's limits and use.","tags":["files"],"parameters":[],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesAssetSummary","x-rivier-sdk":"files.asset.summary","x-rivier-cli":"files asset summary","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/tus":{"post":{"operationId":"files.upload.tus","summary":"Start an upload over the tus protocol; the address answered carries a grant a browser can send the bytes with.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-sdk":"files.upload.tus","x-rivier-cli":"files upload tus","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/uploads":{"post":{"operationId":"files.upload.begin","summary":"Start a resumable upload.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesUploadBegin","x-rivier-sdk":"files.upload.begin","x-rivier-cli":"files upload begin","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"bytes":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"assetId":{"type":"string","format":"uuid"},"partBytes":{"type":"integer"},"note":{"type":"string","maxLength":300},"grant":{"type":"object","properties":{"minutes":{"type":"integer","minimum":1,"maximum":60}},"additionalProperties":false},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"description":{"type":"string","maxLength":2000},"altText":{"type":"string","maxLength":1500},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40},"licence":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":40},"holder":{"type":"string","maxLength":200},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"terms":{"type":"string","maxLength":2000},"attribution":{"type":"string","maxLength":500},"scope":{"type":"string","maxLength":500}},"required":["type"],"additionalProperties":false},{"type":"null"}]},"rightsExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"ai":{"anyOf":[{"type":"object","properties":{"generated":{"type":"boolean"},"model":{"type":"string","maxLength":120},"tool":{"type":"string","maxLength":120},"generatedAt":{"type":"string","format":"date-time"},"promptRef":{"type":"string","maxLength":300},"note":{"type":"string","maxLength":500}},"required":["generated"],"additionalProperties":false},{"type":"null"}]},"disclosureLine":{"type":"string","maxLength":400},"provenance":{"type":"object","properties":{"originPath":{"type":"string","maxLength":500},"sourceRef":{"type":"string","maxLength":500},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"importedFrom":{"type":"string","maxLength":200},"note":{"type":"string","maxLength":500}},"additionalProperties":false}},"required":["bytes"],"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/uploads/{id}":{"get":{"operationId":"files.upload.get","summary":"Progress of a resumable upload.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesUploadGet","x-rivier-sdk":"files.upload.get","x-rivier-cli":"files upload get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"files.upload.abort","summary":"Abandon a resumable upload.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesUploadAbort","x-rivier-sdk":"files.upload.abort","x-rivier-cli":"files upload abort","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/uploads/{id}/complete":{"post":{"operationId":"files.upload.complete","summary":"Finish a resumable upload.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesUploadComplete","x-rivier-sdk":"files.upload.complete","x-rivier-cli":"files upload complete","x-rivier-events":["files.asset.created"],"security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true},"version":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"version":{"type":"number"},"sha256":{"type":"string"},"bytes":{"type":"number"}},"required":["id","version","sha256","bytes"],"additionalProperties":false},{"type":"null"}]},"deduped":{"type":"boolean"},"warnings":{"type":"array","items":{}}},"required":["asset","deduped"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/uploads/{id}/parts/{n}":{"put":{"operationId":"files.upload.part","summary":"Send one part of a resumable upload.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}}],"x-rivier-scope":"files:write","x-rivier-sdk":"files.upload.part","x-rivier-cli":"files upload part","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/used-by":{"get":{"operationId":"files.asset.usedBy","summary":"The assets a post, page or agent uses.","tags":["files"],"parameters":[{"name":"kind","in":"query","required":true,"schema":{"type":"string","enum":["post","content_item","content_variant","campaign","agent","channel","page","persona","product","property","area","unit","amenity","rate_plan","extra","poi","policy","cms_entry","mail_message","other"]}},{"name":"id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}}],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesAssetUsedBy","x-rivier-sdk":"files.asset.usedBy","x-rivier-cli":"files asset used by","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}":{"get":{"operationId":"files.asset.get","summary":"One asset with its current version.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_get","x-rivier-graphql":"Query.filesAssetGet","x-rivier-sdk":"files.asset.get","x-rivier-cli":"files asset get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"files.asset.update","summary":"Change an asset's name, description, tags, licence or disclosure.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_update","x-rivier-graphql":"Mutation.filesAssetUpdate","x-rivier-sdk":"files.asset.update","x-rivier-cli":"files asset update","x-rivier-events":["files.asset.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"description":{"type":"string","maxLength":2000},"altText":{"type":"string","maxLength":1500},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40},"licence":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":40},"holder":{"type":"string","maxLength":200},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"terms":{"type":"string","maxLength":2000},"attribution":{"type":"string","maxLength":500},"scope":{"type":"string","maxLength":500}},"required":["type"],"additionalProperties":false},{"type":"null"}]},"rightsExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"ai":{"anyOf":[{"type":"object","properties":{"generated":{"type":"boolean"},"model":{"type":"string","maxLength":120},"tool":{"type":"string","maxLength":120},"generatedAt":{"type":"string","format":"date-time"},"promptRef":{"type":"string","maxLength":300},"note":{"type":"string","maxLength":500}},"required":["generated"],"additionalProperties":false},{"type":"null"}]},"disclosureLine":{"type":"string","maxLength":400},"provenance":{"type":"object","properties":{"originPath":{"type":"string","maxLength":500},"sourceRef":{"type":"string","maxLength":500},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"importedFrom":{"type":"string","maxLength":200},"note":{"type":"string","maxLength":500}},"additionalProperties":false},"reason":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"files.asset.delete","summary":"Move an asset to the bin, or purge it with ?purge=1. An asset still in use is refused (409 with where it is used) unless ?force=1.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"purge","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}},{"name":"force","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_delete","x-rivier-graphql":"Mutation.filesAssetDelete","x-rivier-sdk":"files.asset.delete","x-rivier-cli":"files asset delete","x-rivier-events":["files.asset.deleted"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/approve":{"post":{"operationId":"files.asset.approve","summary":"Approve an asset (a person's decision).","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_approve","x-rivier-graphql":"Mutation.filesAssetApprove","x-rivier-sdk":"files.asset.approve","x-rivier-cli":"files asset approve","x-rivier-events":["files.asset.approved"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/archive":{"post":{"operationId":"files.asset.archive","summary":"Archive an asset.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_archive","x-rivier-graphql":"Mutation.filesAssetArchive","x-rivier-sdk":"files.asset.archive","x-rivier-cli":"files asset archive","x-rivier-events":["files.asset.archived"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/content":{"get":{"operationId":"files.asset.content","summary":"Download the bytes, with ranges.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"variant","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"disposition","in":"query","required":false,"schema":{"type":"string","enum":["inline","attachment"]}}],"x-rivier-scope":"files:read","x-rivier-sdk":"files.asset.content","x-rivier-cli":"files asset content","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/jobs":{"post":{"operationId":"files.asset.jobRequest","summary":"Ask the media worker for a job on a published file: image sizes and formats with a placeholder and palette, audio peaks, stream and loudness, HLS with a tile sheet, silent preview, alternate audio, subtitles and loudness, or a transcript. The same version, kind and parameters share one result.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_job","x-rivier-graphql":"Mutation.filesAssetJobRequest","x-rivier-sdk":"files.asset.jobRequest","x-rivier-cli":"files asset job request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["image","audio","hls","transcript"]},"params":{"type":"object","additionalProperties":{}}},"required":["kind"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"files.asset.jobList","summary":"The media jobs of a file and where each stands (queued, claimed, processing, ready, failed).","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_jobs","x-rivier-graphql":"Query.filesAssetJobList","x-rivier-sdk":"files.asset.jobList","x-rivier-cli":"files asset job list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"jobs":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["jobs"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/link":{"post":{"operationId":"files.asset.link","summary":"A signed, expiring download link.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_link","x-rivier-graphql":"Mutation.filesAssetLink","x-rivier-sdk":"files.asset.link","x-rivier-cli":"files asset link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ttlSeconds":{"type":"integer","minimum":30,"maximum":604800},"version":{"type":"string","format":"uuid"},"variant":{"type":"string","maxLength":40},"disposition":{"type":"string","enum":["inline","attachment"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"expiresAt":{"type":"string"}},"required":["url","expiresAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/media-facts":{"put":{"operationId":"files.asset.mediaFacts","summary":"Set chapters, captions, audio tracks or the transcript of a video or audio file. A model's drafts are held as unreviewed until a person reviews them.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_media_facts","x-rivier-graphql":"Mutation.filesAssetMediaFacts","x-rivier-sdk":"files.asset.mediaFacts","x-rivier-cli":"files asset media facts","x-rivier-events":["files.asset.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chapters":{"type":"array","items":{"type":"object","properties":{"start":{"type":"number","minimum":0},"title":{"type":"string","minLength":1,"maxLength":120},"thumbnail":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,80}$"},"aiGenerated":{"type":"boolean","default":false},"reviewed":{"type":"boolean","default":false},"reviewedBy":{"type":"string","maxLength":200}},"required":["start","title"],"additionalProperties":false},"maxItems":200,"default":[]},"captions":{"type":"array","items":{"type":"object","properties":{"lang":{"type":"string","maxLength":12},"kind":{"type":"string","enum":["subtitles","captions"]},"assetId":{"type":"string","format":"uuid"},"vtt":{"type":"string","maxLength":500000},"aiGenerated":{"type":"boolean","default":false},"reviewed":{"type":"boolean","default":false},"reviewedBy":{"type":"string","maxLength":200}},"required":["lang","kind"],"additionalProperties":false},"maxItems":40,"default":[]},"audioTracks":{"type":"array","items":{"type":"object","properties":{"lang":{"type":"string","maxLength":12},"label":{"type":"string","maxLength":60}},"required":["lang","label"],"additionalProperties":false},"maxItems":20,"default":[]},"transcript":{"anyOf":[{"type":"object","properties":{"lang":{"type":"string","maxLength":12},"segments":{"type":"array","items":{"type":"object","properties":{"start":{"type":"number","minimum":0},"end":{"type":"number","minimum":0},"text":{"type":"string","maxLength":2000}},"required":["start","end","text"],"additionalProperties":false},"maxItems":20000},"aiGenerated":{"type":"boolean","default":false},"reviewed":{"type":"boolean","default":false},"reviewedBy":{"type":"string","maxLength":200}},"required":["lang","segments"],"additionalProperties":false},{"type":"null"}],"default":null},"posterAtSeconds":{"anyOf":[{"type":"number","minimum":0,"maximum":36000},{"type":"null"}],"default":null}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/preview":{"get":{"operationId":"files.asset.preview","summary":"A Word document or a spreadsheet as something to look at, without downloading it.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesAssetPreview","x-rivier-sdk":"files.asset.preview","x-rivier-cli":"files asset preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["document","sheet"]},"html":{"type":"string"},"clipped":{"type":"boolean"},"sheets":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"rows":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"more":{"type":"boolean"}},"required":["name","rows","more"],"additionalProperties":false}},"moreSheets":{"type":"boolean"}},"required":["kind"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/process":{"post":{"operationId":"files.asset.process","summary":"Work out a video or audio file's length, a still frame and a waveform and keep them beside it. Needs ffmpeg on the machine.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_process","x-rivier-graphql":"Mutation.filesAssetProcess","x-rivier-sdk":"files.asset.process","x-rivier-cli":"files asset process","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/publish":{"post":{"operationId":"files.asset.publish","summary":"Give an approved asset its public address.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_publish","x-rivier-graphql":"Mutation.filesAssetPublish","x-rivier-sdk":"files.asset.publish","x-rivier-cli":"files asset publish","x-rivier-events":["files.asset.published"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/quick-publish":{"post":{"operationId":"files.asset.quickPublish","summary":"Give an upload a licence of own, approve it and publish it, as far as the caller's role and the brand's rules allow; says where it stopped and why.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesAssetQuickPublish","x-rivier-sdk":"files.asset.quickPublish","x-rivier-cli":"files asset quick publish","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/reject":{"post":{"operationId":"files.asset.reject","summary":"Send an asset back with a reason.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_reject","x-rivier-graphql":"Mutation.filesAssetReject","x-rivier-sdk":"files.asset.reject","x-rivier-cli":"files asset reject","x-rivier-events":["files.asset.rejected"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":500}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/reopen":{"post":{"operationId":"files.asset.reopen","summary":"Reopen a rejected or archived asset as a draft.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesAssetReopen","x-rivier-sdk":"files.asset.reopen","x-rivier-cli":"files asset reopen","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/restore":{"post":{"operationId":"files.asset.restore","summary":"Take an asset out of the bin.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_restore","x-rivier-graphql":"Mutation.filesAssetRestore","x-rivier-sdk":"files.asset.restore","x-rivier-cli":"files asset restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/revoke-links":{"post":{"operationId":"files.asset.revokeLinks","summary":"Invalidate every signed link of an asset.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesAssetRevokeLinks","x-rivier-sdk":"files.asset.revokeLinks","x-rivier-cli":"files asset revoke links","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/stream":{"post":{"operationId":"files.asset.adaptive","summary":"Ask for adaptive streaming (HLS) of a video or audio file. The build host cuts it and reports back; until then, or where no runner is connected, the original file plays.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_stream","x-rivier-graphql":"Mutation.filesAssetAdaptive","x-rivier-sdk":"files.asset.adaptive","x-rivier-cli":"files asset adaptive","security":[{"bearerAuth":[]}],"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/stream/ready":{"post":{"operationId":"files.asset.adaptiveReady","summary":"The build host's runner reports that a streaming job is done: the job and the https address of the manifest.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesAssetAdaptiveReady","x-rivier-sdk":"files.asset.adaptiveReady","x-rivier-cli":"files asset adaptive ready","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string","minLength":1,"maxLength":120},"manifestUrl":{"type":"string","format":"uri"},"renditions":{"type":"array","items":{"type":"object","properties":{"height":{"type":"integer"},"bandwidth":{"type":"integer"}},"required":["height","bandwidth"],"additionalProperties":false},"maxItems":12}},"required":["jobId","manifestUrl"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/submit":{"post":{"operationId":"files.asset.submit","summary":"Send an asset for review.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_submit","x-rivier-graphql":"Mutation.filesAssetSubmit","x-rivier-sdk":"files.asset.submit","x-rivier-cli":"files asset submit","x-rivier-events":["files.asset.submitted"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/transcribe":{"post":{"operationId":"files.asset.transcribe","summary":"Have a speech provider write the transcript of a video or audio file. It is saved marked as written by a model until a person has read it.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_transcribe","x-rivier-graphql":"Mutation.filesAssetTranscribe","x-rivier-sdk":"files.asset.transcribe","x-rivier-cli":"files asset transcribe","x-rivier-events":["files.asset.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":12}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/transcript":{"put":{"operationId":"files.asset.transcript","summary":"Save the transcript of a video or audio file (text, optional timed segments); say when a model wrote it.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_transcript","x-rivier-graphql":"Mutation.filesAssetTranscript","x-rivier-sdk":"files.asset.transcript","x-rivier-cli":"files asset transcript","x-rivier-events":["files.asset.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":12},"text":{"type":"string","maxLength":500000},"ai":{"type":"boolean"},"segments":{"type":"array","items":{"type":"object","properties":{"start":{"type":"number","minimum":0},"end":{"type":"number","minimum":0},"text":{"type":"string","maxLength":2000}},"required":["start","end","text"],"additionalProperties":false},"maxItems":20000}},"required":["lang","text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/unpublish":{"post":{"operationId":"files.asset.unpublish","summary":"Withdraw the public address.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_unpublish","x-rivier-graphql":"Mutation.filesAssetUnpublish","x-rivier-sdk":"files.asset.unpublish","x-rivier-cli":"files asset unpublish","x-rivier-events":["files.asset.unpublished"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true}},"required":["asset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/usable":{"get":{"operationId":"files.asset.usable","summary":"Whether an asset may be used now, and why not.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_usable","x-rivier-graphql":"Query.filesAssetUsable","x-rivier-sdk":"files.asset.usable","x-rivier-cli":"files asset usable","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/usage":{"get":{"operationId":"files.usage.list","summary":"Where an asset is used.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_assets_usage","x-rivier-graphql":"Query.filesUsageList","x-rivier-sdk":"files.usage.list","x-rivier-cli":"files usage list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"files.usage.record","summary":"Record that something uses an asset.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_record_usage","x-rivier-graphql":"Mutation.filesUsageRecord","x-rivier-sdk":"files.usage.record","x-rivier-cli":"files usage record","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userKind":{"type":"string","enum":["post","content_item","content_variant","campaign","agent","channel","page","persona","product","property","area","unit","amenity","rate_plan","extra","poi","policy","cms_entry","mail_message","other"]},"userId":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","maxLength":40},"note":{"type":"string","maxLength":300},"versionId":{"type":"string","format":"uuid"}},"required":["userKind","userId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/usage/{usageId}":{"delete":{"operationId":"files.usage.remove","summary":"Remove a usage record.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"usageId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_remove_usage","x-rivier-graphql":"Mutation.filesUsageRemove","x-rivier-sdk":"files.usage.remove","x-rivier-cli":"files usage remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/variants/{label}":{"post":{"operationId":"files.variant.add","summary":"Add a size, format or theme variant; the body is the file.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"label","in":"path","required":true,"schema":{"type":"string"}},{"name":"theme","in":"query","required":false,"schema":{"type":"string","enum":["light","dark"]}},{"name":"name","in":"query","required":false,"schema":{"type":"string","maxLength":300}},{"name":"version","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_add_variant","x-rivier-sdk":"files.variant.add","x-rivier-cli":"files variant add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"files.variant.remove","summary":"Remove a variant.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"label","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-graphql":"Mutation.filesVariantRemove","x-rivier-sdk":"files.variant.remove","x-rivier-cli":"files variant remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assets/{id}/versions":{"get":{"operationId":"files.version.list","summary":"The versions of an asset.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-graphql":"Query.filesVersionList","x-rivier-sdk":"files.version.list","x-rivier-cli":"files version list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"files.version.create","summary":"Add a version from a base64 body.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_assets_new_version","x-rivier-graphql":"Mutation.filesVersionCreate","x-rivier-sdk":"files.version.create","x-rivier-cli":"files version create","x-rivier-events":["files.asset.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":300},"note":{"type":"string","maxLength":300},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"description":{"type":"string","maxLength":2000},"altText":{"type":"string","maxLength":1500},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":40},"licence":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","minLength":1,"maxLength":40},"holder":{"type":"string","maxLength":200},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"terms":{"type":"string","maxLength":2000},"attribution":{"type":"string","maxLength":500},"scope":{"type":"string","maxLength":500}},"required":["type"],"additionalProperties":false},{"type":"null"}]},"rightsExpiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"ai":{"anyOf":[{"type":"object","properties":{"generated":{"type":"boolean"},"model":{"type":"string","maxLength":120},"tool":{"type":"string","maxLength":120},"generatedAt":{"type":"string","format":"date-time"},"promptRef":{"type":"string","maxLength":300},"note":{"type":"string","maxLength":500}},"required":["generated"],"additionalProperties":false},{"type":"null"}]},"disclosureLine":{"type":"string","maxLength":400},"provenance":{"type":"object","properties":{"originPath":{"type":"string","maxLength":500},"sourceRef":{"type":"string","maxLength":500},"sourceUrl":{"type":"string","format":"uri","maxLength":1000},"importedFrom":{"type":"string","maxLength":200},"note":{"type":"string","maxLength":500}},"additionalProperties":false}},"required":["content"],"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"asset":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"kind":{"type":"string","enum":["logo","mark","lockup","wordmark","favicon","palette","typography","guideline","voice","imagery","persona_sheet","avatar","template","font","document","video","audio","image","other"]},"state":{"type":"string","enum":["draft","in_review","approved","published","rejected","archived"]},"description":{"type":"string"},"altText":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"versionCount":{"type":"number"},"publicUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","kind","state","description","altText","tags","contentType","bytes","sha256","versionCount","publicUrl","createdAt","updatedAt"],"additionalProperties":true},"version":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"version":{"type":"number"},"sha256":{"type":"string"},"bytes":{"type":"number"}},"required":["id","version","sha256","bytes"],"additionalProperties":false},{"type":"null"}]},"deduped":{"type":"boolean"},"warnings":{"type":"array","items":{}}},"required":["asset","deduped"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assignments":{"get":{"operationId":"agents.assignment.list","summary":"Which agent handles which channel.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAssignmentList","x-rivier-sdk":"agents.assignment.list","x-rivier-cli":"agents assignment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/assignments/decisions":{"get":{"operationId":"agents.assignment.decisions","summary":"Why each assignment was made.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAssignmentDecisions","x-rivier-sdk":"agents.assignment.decisions","x-rivier-cli":"agents assignment decisions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/defaults":{"get":{"operationId":"agents.autonomyDefaults.get","summary":"Read autonomy defaults","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAutonomyDefaultsGet","x-rivier-sdk":"agents.autonomyDefaults.get","x-rivier-cli":"agents autonomy defaults get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/defaults/{role}":{"put":{"operationId":"agents.autonomyDefaults.set","summary":"Set autonomy defaults (by id)","tags":["agents"],"parameters":[{"name":"role","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAutonomyDefaultsSet","x-rivier-sdk":"agents.autonomyDefaults.set","x-rivier-cli":"agents autonomy defaults set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/floors":{"get":{"operationId":"agents.autonomyFloors.get","summary":"Read autonomy floors","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAutonomyFloorsGet","x-rivier-sdk":"agents.autonomyFloors.get","x-rivier-cli":"agents autonomy floors get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/meta":{"get":{"operationId":"agents.autonomyMeta.get","summary":"Read autonomy meta","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAutonomyMetaGet","x-rivier-sdk":"agents.autonomyMeta.get","x-rivier-cli":"agents autonomy meta get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/outcomes":{"get":{"operationId":"agents.autonomyOutcomes.get","summary":"Read autonomy outcomes","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAutonomyOutcomesGet","x-rivier-sdk":"agents.autonomyOutcomes.get","x-rivier-cli":"agents autonomy outcomes get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/pause":{"post":{"operationId":"agents.autonomy.pause2","summary":"Run autonomy pause","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_pause_project","x-rivier-graphql":"Mutation.agentsAutonomyPause2","x-rivier-sdk":"agents.autonomy.pause2","x-rivier-cli":"agents autonomy pause2","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/resume":{"post":{"operationId":"agents.autonomy.resume2","summary":"Run autonomy resume","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAutonomyResume2","x-rivier-sdk":"agents.autonomy.resume2","x-rivier-cli":"agents autonomy resume2","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/suggestion-policy":{"put":{"operationId":"agents.autonomySuggestionpolicy.set","summary":"Set autonomy suggestion policy","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAutonomySuggestionpolicySet","x-rivier-sdk":"agents.autonomySuggestionpolicy.set","x-rivier-cli":"agents autonomy suggestionpolicy set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/autonomy/suggestions":{"get":{"operationId":"agents.autonomySuggestions.get","summary":"Read autonomy suggestions","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAutonomySuggestionsGet","x-rivier-sdk":"agents.autonomySuggestions.get","x-rivier-cli":"agents autonomy suggestions get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings":{"get":{"operationId":"bookings.booking.list","summary":"Bookings, filtered by state, service, time, location, resource (a person, room or thing) or customer.","tags":["bookings"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"allOf":[{"type":"string","maxLength":200},{"type":"array","items":{"type":"string","enum":["held","requested","pending_payment","confirmed","checked_in","completed","cancelled","no_show","rescheduled"]},"maxItems":9}]}},{"name":"serviceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"locationId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"resourceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"contactId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_bookings_list","x-rivier-graphql":"Query.bookings","x-rivier-sdk":"bookings.booking.list","x-rivier-cli":"bookings booking list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"serviceId":{"type":"string"},"locationId":{"type":["string","null"]},"state":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"zone":{"type":"string"},"partySize":{"type":"number"},"contactId":{"type":["string","null"]},"channel":{"type":"string"},"priceMinor":{"type":"number"},"currency":{"type":"string"},"depositMinor":{"type":"number"},"paidMinor":{"type":"number"},"resourceIds":{"type":"array","items":{"type":"string"}},"version":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"cancelledAt":{"type":["string","null"]}},"required":["id","serviceId","locationId","state","start","end","zone","partySize","contactId","channel","priceMinor","currency","depositMinor","paidMinor","resourceIds","version","createdAt","updatedAt","cancelledAt"],"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.booking.create","summary":"Book: from a hold, a quote or a time. Idempotent on the key. A dry run returns the booking it would make.","tags":["bookings"],"parameters":[{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_book","x-rivier-graphql":"Mutation.createBooking","x-rivier-sdk":"bookings.booking.create","x-rivier-cli":"bookings booking create","x-rivier-events":["bookings.booking.created","bookings.booking.confirmed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"sessionId":{"type":"string","format":"uuid"},"quote":{"type":"string","maxLength":4000},"holdId":{"type":"string","format":"uuid"},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"locale":{"type":"string","maxLength":20}},"required":["name"],"additionalProperties":false},"consent":{"type":"object","properties":{"email":{"type":"boolean"},"sms":{"type":"boolean"},"voice":{"type":"boolean"},"whatsapp":{"type":"boolean"}},"additionalProperties":false,"default":{}},"intake":{"type":"object","additionalProperties":{},"default":{}},"notes":{"type":"string","maxLength":2000,"default":""},"channel":{"type":"string","enum":["owner","widget","api","mcp","phone","chat","import"],"default":"api"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["serviceId","start","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/availability":{"get":{"operationId":"bookings.slot.list","summary":"Free times for a service between two instants, computed from the opening hours and what is already promised.","tags":["bookings"],"parameters":[{"name":"serviceId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"durationMinutes","in":"query","required":false,"schema":{"type":"integer","minimum":5,"maximum":1440}},{"name":"partySize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"resourceIds","in":"query","required":false,"schema":{"allOf":[{"type":"string","maxLength":1000},{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20}]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":200}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_availability","x-rivier-graphql":"Query.bookingAvailability","x-rivier-sdk":"bookings.slot.list","x-rivier-cli":"bookings slot list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/blocks":{"get":{"operationId":"bookings.block.list","summary":"Time off and maintenance.","tags":["bookings"],"parameters":[{"name":"resourceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.block.list","x-rivier-cli":"bookings block list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["blocks"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.block.create","summary":"Block a resource's time (time off, maintenance). Refused, listing the bookings in the way, when the time is booked.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_resource_block","x-rivier-graphql":"Mutation.blockBookingResource","x-rivier-sdk":"bookings.block.create","x-rivier-cli":"bookings block create","x-rivier-events":["bookings.block.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["time_off","maintenance"],"default":"time_off"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"reason":{"type":"string","maxLength":300,"default":""}},"required":["resourceId","from","to"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/blocks/{id}":{"delete":{"operationId":"bookings.block.delete","summary":"Remove a block.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.block.delete","x-rivier-cli":"bookings block delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/events":{"get":{"operationId":"bookings.event.list","summary":"The booking timeline in order, from a cursor.","tags":["bookings"],"parameters":[{"name":"bookingId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_events","x-rivier-graphql":"Query.bookingEvents","x-rivier-sdk":"bookings.event.list","x-rivier-cli":"bookings event list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/feeds":{"get":{"operationId":"bookings.feed.list","summary":"Calendar feeds of booked time, one per resource, for the business's own calendar app.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.feed.list","x-rivier-cli":"bookings feed list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"feeds":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["feeds"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.feed.create","summary":"A calendar feed address for one resource. The address holds a secret shown this once; events say the service and the time, nothing about the customer.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.feed.create","x-rivier-cli":"bookings feed create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resourceId":{"type":"string","format":"uuid"},"name":{"type":"string","maxLength":80}},"required":["resourceId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/feeds/{id}/revoke":{"post":{"operationId":"bookings.feed.revoke","summary":"End a calendar feed address.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.feed.revoke","x-rivier-cli":"bookings feed revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"boolean","const":true}},"required":["revoked"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/holds":{"post":{"operationId":"bookings.hold.create","summary":"Hold a time for a few minutes. The hold releases itself.","tags":["bookings"],"parameters":[{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_hold","x-rivier-graphql":"Mutation.holdBooking","x-rivier-sdk":"bookings.hold.create","x-rivier-cli":"bookings hold create","x-rivier-events":["bookings.hold.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"sessionId":{"type":"string","format":"uuid"},"quote":{"type":"string","maxLength":4000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["serviceId","start","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/holds/{id}":{"delete":{"operationId":"bookings.hold.release","summary":"Release a hold.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_release_hold","x-rivier-graphql":"Mutation.releaseBookingHold","x-rivier-sdk":"bookings.hold.release","x-rivier-cli":"bookings hold release","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"released":{"type":"boolean","const":true}},"required":["released"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/locations":{"get":{"operationId":"bookings.location.list","summary":"Locations.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.location.list","x-rivier-cli":"bookings location list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["locations"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.location.create","summary":"Add a location with its time zone.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.location.create","x-rivier-cli":"bookings location create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["physical","online"],"default":"physical"},"timezone":{"type":"string"},"address":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}}},"required":["name","timezone"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/locations/{id}":{"patch":{"operationId":"bookings.location.update","summary":"Change or archive a location.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.location.update","x-rivier-cli":"bookings location update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["physical","online"],"default":"physical"},"timezone":{"type":"string"},"address":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/policies":{"get":{"operationId":"bookings.policy.list","summary":"Cancellation policies.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.policy.list","x-rivier-cli":"bookings policy list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"policies":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["policies"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.policy.create","summary":"Add a cancellation policy.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.policy.create","x-rivier-cli":"bookings policy create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["standard","dated_leisure"],"default":"standard"},"tiers":{"type":"array","items":{"type":"object","properties":{"hoursBefore":{"type":"number","minimum":0,"maximum":8760},"refundPercent":{"type":"number","minimum":0,"maximum":100},"feeMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0}},"required":["hoursBefore","refundPercent"],"additionalProperties":false},"maxItems":10,"default":[]},"noShow":{"type":"object","properties":{"feePercent":{"type":"number","minimum":0,"maximum":100,"default":0},"feeMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0}},"additionalProperties":false,"default":{}},"text":{"type":"string","maxLength":4000,"default":""}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/policies/{id}":{"patch":{"operationId":"bookings.policy.update","summary":"Change a cancellation policy (bookings already made keep the terms they were made under).","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.policy.update","x-rivier-cli":"bookings policy update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["standard","dated_leisure"],"default":"standard"},"tiers":{"type":"array","items":{"type":"object","properties":{"hoursBefore":{"type":"number","minimum":0,"maximum":8760},"refundPercent":{"type":"number","minimum":0,"maximum":100},"feeMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0}},"required":["hoursBefore","refundPercent"],"additionalProperties":false},"maxItems":10,"default":[]},"noShow":{"type":"object","properties":{"feePercent":{"type":"number","minimum":0,"maximum":100,"default":0},"feeMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0}},"additionalProperties":false,"default":{}},"text":{"type":"string","maxLength":4000,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/quotes":{"post":{"operationId":"bookings.quote.create","summary":"A signed quote: the price, deposit and cancellation terms for one time, valid for fifteen minutes. Nothing is held.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_quote","x-rivier-graphql":"Query.bookingQuote","x-rivier-sdk":"bookings.quote.create","x-rivier-cli":"bookings quote create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"sessionId":{"type":"string","format":"uuid"}},"required":["serviceId","start"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/resources":{"get":{"operationId":"bookings.resource.list","summary":"Staff, rooms and equipment that carry bookable time.","tags":["bookings"],"parameters":[{"name":"locationId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.bookingResources","x-rivier-sdk":"bookings.resource.list","x-rivier-cli":"bookings resource list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["resources"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.resource.create","summary":"Add a resource.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.resource.create","x-rivier-cli":"bookings resource create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["staff","room","chair","vehicle","equipment","table"],"default":"staff"},"name":{"type":"string","minLength":1,"maxLength":120},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"personRef":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"calendarLink":{"anyOf":[{"type":"object","properties":{"connectionId":{"type":"string","maxLength":100},"calendarId":{"type":"string","maxLength":300},"mode":{"type":"string","enum":["read_busy","write_through"]}},"required":["connectionId","calendarId","mode"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["locationId","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/resources/{id}":{"patch":{"operationId":"bookings.resource.update","summary":"Change or archive a resource.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.resource.update","x-rivier-cli":"bookings resource update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["staff","room","chair","vehicle","equipment","table"],"default":"staff"},"name":{"type":"string","minLength":1,"maxLength":120},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"personRef":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"calendarLink":{"anyOf":[{"type":"object","properties":{"connectionId":{"type":"string","maxLength":100},"calendarId":{"type":"string","maxLength":300},"mode":{"type":"string","enum":["read_busy","write_through"]}},"required":["connectionId","calendarId","mode"],"additionalProperties":false},{"type":"null"}]},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/rules":{"get":{"operationId":"bookings.rule.list","summary":"Opening hours and closures.","tags":["bookings"],"parameters":[{"name":"scopeKind","in":"query","required":false,"schema":{"type":"string","enum":["location","resource","service"]}},{"name":"scopeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.rule.list","x-rivier-cli":"bookings rule list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["rules"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.rule.create","summary":"Add an opening-hours or closure rule.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.rule.create","x-rivier-cli":"bookings rule create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scopeKind":{"type":"string","enum":["location","resource","service"]},"scopeId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["open","closed"]},"weekdays":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7},"minItems":1,"maxItems":7},"onDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"start":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"end":{"type":"string","pattern":"^(([01]\\d|2[0-3]):[0-5]\\d|24:00)$"},"validFrom":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"validTo":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"note":{"type":"string","maxLength":200,"default":""}},"required":["scopeKind","scopeId","kind"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/rules/{id}":{"delete":{"operationId":"bookings.rule.delete","summary":"Remove a rule.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.rule.delete","x-rivier-cli":"bookings rule delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/services":{"get":{"operationId":"bookings.service.list","summary":"The services a business offers for booking, with duration, price, deposit and confirmation mode.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_services","x-rivier-graphql":"Query.bookingServices","x-rivier-sdk":"bookings.service.list","x-rivier-cli":"bookings service list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["services"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.service.create","summary":"Add a bookable service.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.service.create","x-rivier-cli":"bookings service create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},"description":{"type":"string","maxLength":4000,"default":""},"locationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"durations":{"type":"array","items":{"type":"integer","minimum":5,"maximum":1440},"minItems":1,"maxItems":12,"default":[60]},"defaultDuration":{"type":"integer","minimum":5,"maximum":1440,"default":60},"bufferBefore":{"type":"integer","minimum":0,"maximum":480,"default":0},"bufferAfter":{"type":"integer","minimum":0,"maximum":480,"default":0},"minNotice":{"type":"integer","minimum":0,"maximum":525600,"default":0},"horizonDays":{"type":"integer","minimum":1,"maximum":730,"default":60},"slotStep":{"type":"integer","minimum":5,"maximum":1440,"default":15},"capacity":{"type":"integer","minimum":1,"maximum":10000,"default":1},"mode":{"type":"string","enum":["one_to_one","group"],"default":"one_to_one"},"confirmation":{"type":"string","enum":["instant","manual"],"default":"instant"},"intake":{"type":"object","additionalProperties":{},"default":{}},"deposit":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"none"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"percent"},"value":{"type":"number","minimum":1,"maximum":100}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"amountMinor":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","amountMinor"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"full"}},"required":["kind"],"additionalProperties":false}],"default":{"kind":"none"}},"cancellationPolicyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"published":{"type":"boolean","default":false},"price":{"anyOf":[{"type":"object","properties":{"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","pattern":"^[a-z]{3}$"}},"required":["amountMinor","currency"],"additionalProperties":false},{"type":"null"}]},"resourceGroups":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":80,"default":""},"need":{"type":"integer","minimum":1,"maximum":20,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100}},"required":["resourceIds"],"additionalProperties":false},"maxItems":10,"default":[]}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/services/{id}":{"get":{"operationId":"bookings.service.get","summary":"One service.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.bookingService","x-rivier-sdk":"bookings.service.get","x-rivier-cli":"bookings service get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"bookings.service.update","summary":"Change a service.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.service.update","x-rivier-cli":"bookings service update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},"description":{"type":"string","maxLength":4000,"default":""},"locationId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"durations":{"type":"array","items":{"type":"integer","minimum":5,"maximum":1440},"minItems":1,"maxItems":12,"default":[60]},"defaultDuration":{"type":"integer","minimum":5,"maximum":1440,"default":60},"bufferBefore":{"type":"integer","minimum":0,"maximum":480,"default":0},"bufferAfter":{"type":"integer","minimum":0,"maximum":480,"default":0},"minNotice":{"type":"integer","minimum":0,"maximum":525600,"default":0},"horizonDays":{"type":"integer","minimum":1,"maximum":730,"default":60},"slotStep":{"type":"integer","minimum":5,"maximum":1440,"default":15},"capacity":{"type":"integer","minimum":1,"maximum":10000,"default":1},"mode":{"type":"string","enum":["one_to_one","group"],"default":"one_to_one"},"confirmation":{"type":"string","enum":["instant","manual"],"default":"instant"},"intake":{"type":"object","additionalProperties":{},"default":{}},"deposit":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"none"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"percent"},"value":{"type":"number","minimum":1,"maximum":100}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"amountMinor":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","amountMinor"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"full"}},"required":["kind"],"additionalProperties":false}],"default":{"kind":"none"}},"cancellationPolicyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"published":{"type":"boolean","default":false},"price":{"anyOf":[{"type":"object","properties":{"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","pattern":"^[a-z]{3}$"}},"required":["amountMinor","currency"],"additionalProperties":false},{"type":"null"}]},"resourceGroups":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":80,"default":""},"need":{"type":"integer","minimum":1,"maximum":20,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100}},"required":["resourceIds"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/sessions":{"post":{"operationId":"bookings.session.create","summary":"Schedule a session of a group service with its seats.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.session.create","x-rivier-cli":"bookings session create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"capacity":{"type":"integer","minimum":1,"maximum":10000},"resourceId":{"type":"string","format":"uuid"},"priceMinor":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["serviceId","start"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/settings":{"get":{"operationId":"bookings.settings.get","summary":"The booking settings and their revision.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.settings.get","x-rivier-cli":"bookings settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.settings.set","summary":"Replace the booking settings; a stale revision is refused.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.settings.set","x-rivier-cli":"bookings settings set","x-rivier-events":["bookings.settings.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":{}},"ifRev":{"type":"integer","minimum":0}},"required":["settings"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/waitlist":{"get":{"operationId":"bookings.waitlist.list","summary":"The line of people waiting for a slot, by service or state.","tags":["bookings"],"parameters":[{"name":"serviceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["waiting","offered","booked","expired","cancelled"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":100}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_waitlist_list","x-rivier-graphql":"Query.bookingWaitlist","x-rivier-sdk":"bookings.waitlist.list","x-rivier-cli":"bookings waitlist list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["entries"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.waitlist.join","summary":"Put a person in the line for a service in a window of time. When a slot frees they are offered it, once, with an offer that lapses; nothing is booked for them.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_waitlist_join","x-rivier-graphql":"Mutation.joinBookingWaitlist","x-rivier-sdk":"bookings.waitlist.join","x-rivier-cli":"bookings waitlist join","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"}},"required":["name"],"additionalProperties":false},"notes":{"type":"string","maxLength":500,"default":""}},"required":["serviceId","from","to","contact"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/waitlist/{id}/cancel":{"post":{"operationId":"bookings.waitlist.cancel","summary":"Take someone out of the line.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_waitlist_cancel","x-rivier-graphql":"Mutation.cancelBookingWaitlist","x-rivier-sdk":"bookings.waitlist.cancel","x-rivier-cli":"bookings waitlist cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}":{"get":{"operationId":"bookings.booking.get","summary":"One booking with the money state and the terms it was made under.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_booking_booking_get","x-rivier-graphql":"Query.booking","x-rivier-sdk":"bookings.booking.get","x-rivier-cli":"bookings booking get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"serviceId":{"type":"string"},"locationId":{"type":["string","null"]},"state":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"zone":{"type":"string"},"partySize":{"type":"number"},"contactId":{"type":["string","null"]},"channel":{"type":"string"},"priceMinor":{"type":"number"},"currency":{"type":"string"},"depositMinor":{"type":"number"},"paidMinor":{"type":"number"},"resourceIds":{"type":"array","items":{"type":"string"}},"version":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"cancelledAt":{"type":["string","null"]}},"required":["id","serviceId","locationId","state","start","end","zone","partySize","contactId","channel","priceMinor","currency","depositMinor","paidMinor","resourceIds","version","createdAt","updatedAt","cancelledAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/cancel":{"post":{"operationId":"bookings.booking.cancel","summary":"Cancel a booking. Shows what the policy makes of it; a dry run changes nothing. Refunds and fees are separate, approved steps.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_cancel","x-rivier-graphql":"Mutation.cancelBooking","x-rivier-sdk":"bookings.booking.cancel","x-rivier-cli":"bookings booking cancel","x-rivier-events":["bookings.booking.cancelled"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/check-in":{"post":{"operationId":"bookings.booking.checkIn","summary":"Mark a guest arrived.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.booking.checkIn","x-rivier-cli":"bookings booking check in","x-rivier-events":["bookings.booking.checkedIn"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/complete":{"post":{"operationId":"bookings.booking.complete","summary":"Mark a booking done.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.booking.complete","x-rivier-cli":"bookings booking complete","x-rivier-events":["bookings.booking.completed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/confirm":{"post":{"operationId":"bookings.booking.confirm","summary":"Accept a booking request (manual confirmation). A person's decision.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_confirm","x-rivier-graphql":"Mutation.confirmBooking","x-rivier-sdk":"bookings.booking.confirm","x-rivier-cli":"bookings booking confirm","x-rivier-events":["bookings.booking.confirmed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/decline":{"post":{"operationId":"bookings.booking.decline","summary":"Decline a booking request. A person's decision.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_decline","x-rivier-graphql":"Mutation.declineBooking","x-rivier-sdk":"bookings.booking.decline","x-rivier-cli":"bookings booking decline","x-rivier-events":["bookings.booking.cancelled"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/no-show":{"post":{"operationId":"bookings.booking.noShow","summary":"Mark a no-show after the grace period; records what it costs, charges nothing.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.booking.noShow","x-rivier-cli":"bookings booking no show","x-rivier-events":["bookings.booking.noShow"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"force":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/bookings/{id}/reschedule":{"post":{"operationId":"bookings.booking.reschedule","summary":"Move a booking to another time, keeping its price and terms; all or nothing.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_booking_reschedule","x-rivier-graphql":"Mutation.rescheduleBooking","x-rivier-sdk":"bookings.booking.reschedule","x-rivier-cli":"bookings booking reschedule","x-rivier-events":["bookings.booking.rescheduled"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120},"reason":{"type":"string","maxLength":300,"default":""}},"required":["start","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions":{"get":{"operationId":"search.browser.list","summary":"Open browser sessions.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchBrowserList","x-rivier-sdk":"search.browser.list","x-rivier-cli":"search browser list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"search.browser.open","summary":"Open a browser session.","tags":["search"],"parameters":[],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_browse","x-rivier-graphql":"Mutation.searchBrowserOpen","x-rivier-sdk":"search.browser.open","x-rivier-cli":"search browser open","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}":{"get":{"operationId":"search.browser.get","summary":"One browser session.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchBrowserGet","x-rivier-sdk":"search.browser.get","x-rivier-cli":"search browser get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"search.browser.close","summary":"Close a session.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_browse_close","x-rivier-graphql":"Mutation.searchBrowserClose","x-rivier-sdk":"search.browser.close","x-rivier-cli":"search browser close","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}/act":{"post":{"operationId":"search.browser.act","summary":"Do something on the page, in words.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_browse_act","x-rivier-graphql":"Mutation.searchBrowserAct","x-rivier-sdk":"search.browser.act","x-rivier-cli":"search browser act","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":2000}},"required":["instruction"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}/extract":{"post":{"operationId":"search.browser.extract","summary":"Pull structured data from the page.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_browse_extract","x-rivier-graphql":"Mutation.searchBrowserExtract","x-rivier-sdk":"search.browser.extract","x-rivier-cli":"search browser extract","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}/fill":{"post":{"operationId":"search.browser.fill","summary":"Fill a form.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchBrowserFill","x-rivier-sdk":"search.browser.fill","x-rivier-cli":"search browser fill","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}/navigate":{"post":{"operationId":"search.browser.navigate","summary":"Go to an address.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchBrowserNavigate","x-rivier-sdk":"search.browser.navigate","x-rivier-cli":"search browser navigate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}/observe":{"post":{"operationId":"search.browser.observe","summary":"What can be done on the page.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_browse_observe","x-rivier-graphql":"Mutation.searchBrowserObserve","x-rivier-sdk":"search.browser.observe","x-rivier-cli":"search browser observe","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"instruction":{"type":"string","maxLength":2000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/browser/sessions/{id}/read":{"post":{"operationId":"search.browser.read","summary":"The page as text.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchBrowserRead","x-rivier-sdk":"search.browser.read","x-rivier-cli":"search browser read","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/business-model":{"get":{"operationId":"analytics.businessModel.get","summary":"The maintained model of how the business behaves: what is on record, the weekly series fitted with their expected course and band, when it last changed and when it was last checked.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsBusinessModelGet","x-rivier-sdk":"analytics.businessModel.get","x-rivier-cli":"analytics business model get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/business-model/refresh":{"post":{"operationId":"analytics.businessModel.refresh","summary":"Bring the business model up to date with the project's records now.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsBusinessModelRefresh","x-rivier-sdk":"analytics.businessModel.refresh","x-rivier-cli":"analytics business model refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls":{"post":{"operationId":"voice.call.place","summary":"Place a phone call that runs a call flow when answered. Refused, with the reason, for an invalid or premium-rate number, a refused country, a number the project may not call from, an opted-out person (marketing), quiet hours (marketing), the hourly limit, or an exhausted plan allowance. Minutes are charged when the call ends.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_call_place","x-rivier-graphql":"Mutation.voiceCallPlace","x-rivier-sdk":"calls.place","x-rivier-cli":"calls place","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","minLength":3,"maxLength":40,"description":"The number to call, written with its country code: +9609123456"},"from":{"type":"string","minLength":3,"maxLength":40,"description":"One of the project's calling numbers; the first one when left out"},"flowId":{"type":"string","format":"uuid","description":"The call flow that runs when the call is answered"},"purpose":{"type":"string","enum":["transactional","marketing"],"description":"Marketing calls respect opt-outs and quiet hours"},"vars":{"type":"object","additionalProperties":{"type":"string","maxLength":200},"propertyNames":{"pattern":"^[A-Za-z0-9_]{1,40}$"},"description":"Values the flow can speak, used as {{name}}"},"maxSeconds":{"type":"integer","minimum":30,"maximum":3600,"description":"The longest this call may run, in seconds; never more than the project's own maximum"},"liveWords":{"type":"boolean","description":"Send the words of the call as voice.call.words events while it runs"},"placedBy":{"type":"string","maxLength":100}},"required":["to","flowId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"voice.call.list","summary":"The call log, newest first, with status and length: filter by status, direction, a party's number or flow.","tags":["voice"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["queued","ringing","in-progress","completed","busy","failed","no-answer","canceled"]}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["outbound","inbound"]}},{"name":"party","in":"query","required":false,"schema":{"type":"string","maxLength":40,"description":"Either party's number"}},{"name":"flowId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_call_list","x-rivier-graphql":"Query.voiceCallList","x-rivier-sdk":"calls.list","x-rivier-cli":"calls list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/flows":{"get":{"operationId":"voice.callFlow.list","summary":"Call flows: what a line does when a call is answered, as data (say, play, pause, ask for a key or a word, transfer, record with consent, hang up). Each carries the address to give a number so it answers with the flow.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_call_flows","x-rivier-graphql":"Query.voiceCallFlowList","x-rivier-sdk":"calls.flows.list","x-rivier-cli":"calls flows","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.callFlow.create","summary":"Create a call flow. It is checked in full first: every node a step names must exist, numbers must be valid, audio must be a public https address, and a recording step must say the call is recorded.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallFlowCreate","x-rivier-sdk":"calls.flows.create","x-rivier-cli":"calls flow-create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"flow":{"description":"The flow: { language, voice, start, nodes: { name: [steps] } }. Steps: say, play, pause, gather, dial, record, hours (branch on opening hours), redirect, hangup, reject. Checked in full before it is stored."}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/flows/check":{"post":{"operationId":"voice.callFlowCheck.create","summary":"Check a flow without storing it: the problems that stop it, and notes (a language the voice cannot speak yet).","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallFlowCheckCreate","x-rivier-sdk":"calls.flows.check","x-rivier-cli":"calls flow-check","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow":{}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/flows/simulate":{"post":{"operationId":"voice.callFlowSimulate.create","summary":"Walk a call flow without placing a call: give the flow and what the caller presses or says at each question, and get back what the line would say and do, and the question it waits at next. Uses the same checks and routing as a real call.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_call_flow_simulate","x-rivier-graphql":"Mutation.voiceCallFlowSimulateCreate","x-rivier-sdk":"calls.flows.simulate","x-rivier-cli":"calls flow-simulate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"flow":{"description":"The flow to walk, as it would be stored"},"answers":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":60,"description":"What the caller did at each question, in order: a key such as 1, a spoken word, an empty string for nothing; at a transfer answered or no-answer; at a recording notice agree or decline"},"vars":{"type":"object","additionalProperties":{"type":"string","maxLength":200},"propertyNames":{"pattern":"^[A-Za-z0-9_]{1,40}$"},"description":"Values the flow can speak, used as {{name}}"},"hours":{"type":"string","enum":["now","open","closed"],"description":"For opening hours: use the clock, or pretend the call comes inside or outside them"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/flows/templates":{"get":{"operationId":"voice.callFlowTemplate.list","summary":"Ready-made call flows to start from: a greeting with a menu, voicemail, and forwarding during opening hours. Each is a complete flow to adjust and save.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_call_flow_templates","x-rivier-graphql":"Query.voiceCallFlowTemplateList","x-rivier-sdk":"calls.flows.templates","x-rivier-cli":"calls flow-templates","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/flows/{id}":{"get":{"operationId":"voice.callFlow.get","summary":"One call flow with its nodes and steps.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceCallFlowGet","x-rivier-sdk":"calls.flows.get","x-rivier-cli":"calls flow","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"voice.callFlow.update","summary":"Change a call flow's name or steps.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallFlowUpdate","x-rivier-sdk":"calls.flows.update","x-rivier-cli":"calls flow-update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"flow":{"description":"The flow: { language, voice, start, nodes: { name: [steps] } }. Steps: say, play, pause, gather, dial, record, hours (branch on opening hours), redirect, hangup, reject. Checked in full before it is stored."}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"voice.callFlow.remove","summary":"Delete a call flow.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallFlowRemove","x-rivier-sdk":"calls.flows.remove","x-rivier-cli":"calls flow-delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/recordings":{"get":{"operationId":"voice.callRecording.list","summary":"Recordings kept, with the call, length, how consent was given and the day each is deleted.","tags":["voice"],"parameters":[{"name":"callId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceCallRecordingList","x-rivier-sdk":"calls.recordings.list","x-rivier-cli":"calls recordings","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/recordings/{rid}":{"delete":{"operationId":"voice.callRecording.remove","summary":"Delete a recording at the supplier and from the log.","tags":["voice"],"parameters":[{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallRecordingRemove","x-rivier-sdk":"calls.recordings.remove","x-rivier-cli":"calls recording-delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/settings":{"get":{"operationId":"voice.callSettings.get","summary":"Voice settings: numbers calls may be placed from, recording (off by default), allowed and refused countries, hourly limit, longest call, quiet hours for marketing calls.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceCallSettingsGet","x-rivier-sdk":"calls.settings.get","x-rivier-cli":"calls settings","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"voice.callSettings.update","summary":"Change the voice settings. Recording cannot be turned on until the project confirms its counsel has read the recording rules.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallSettingsUpdate","x-rivier-sdk":"calls.settings.update","x-rivier-cli":"calls settings-set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"callerIds":{"type":"array","items":{"type":"string","minLength":3,"maxLength":40},"maxItems":50},"recording":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Off unless turned on. Cannot be on until counselReviewed is true"},"counselReviewed":{"type":"boolean","description":"Your counsel has read the recording rules for the places your callers are in"},"retentionDays":{"type":"integer","minimum":1,"maximum":365}},"additionalProperties":false},"allowCountries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":250},"denyCountries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":250},"blockPremium":{"type":"boolean"},"maxCallsPerHour":{"type":"integer","minimum":1,"maximum":10000},"maxSecondsPerCall":{"type":"integer","minimum":30,"maximum":3600},"callerName":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}],"description":"The name every call opens with: This is an automated call from ..."},"quietHours":{"anyOf":[{"type":"object","properties":{"startHour":{"type":"integer","minimum":0,"maximum":23},"endHour":{"type":"integer","minimum":0,"maximum":23},"timeZone":{"type":"string","minLength":1,"maxLength":60}},"required":["startHour","endHour","timeZone"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/{id}":{"get":{"operationId":"voice.call.get","summary":"One call: status, who, how long, minutes charged, what the caller pressed or said, every status change, recordings.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_call_status","x-rivier-graphql":"Query.voiceCallGet","x-rivier-sdk":"calls.get","x-rivier-cli":"calls get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/calls/{id}/hangup":{"post":{"operationId":"voice.call.hangup","summary":"End a call that is ringing or in progress.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCallHangup","x-rivier-sdk":"calls.hangup","x-rivier-cli":"calls hangup","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/allocations":{"get":{"operationId":"agents.channelsAllocations.get","summary":"Read channels allocations","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsChannelsAllocationsGet","x-rivier-sdk":"agents.channelsAllocations.get","x-rivier-cli":"agents channels allocations get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/allocations/{id}/approve":{"post":{"operationId":"agents.channelsAllocations.approve","summary":"Run channels allocations approve (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_resource_allocate","x-rivier-graphql":"Mutation.agentsChannelsAllocationsApprove","x-rivier-sdk":"agents.channelsAllocations.approve","x-rivier-cli":"agents channels allocations approve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/allocations/{id}/decline":{"post":{"operationId":"agents.channelsAllocations.decline","summary":"Run channels allocations decline (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsChannelsAllocationsDecline","x-rivier-sdk":"agents.channelsAllocations.decline","x-rivier-cli":"agents channels allocations decline","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/bindings":{"get":{"operationId":"agents.channelsBindings.get","summary":"Read channels bindings","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_channel_bindings","x-rivier-graphql":"Query.agentsChannelsBindingsGet","x-rivier-sdk":"agents.channelsBindings.get","x-rivier-cli":"agents channels bindings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/bindings/{id}":{"delete":{"operationId":"agents.channelsBindings.remove","summary":"Remove channels bindings (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_binding_unassign","x-rivier-graphql":"Mutation.agentsChannelsBindingsRemove","x-rivier-sdk":"agents.channelsBindings.remove","x-rivier-cli":"agents channels bindings remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"agents.channelsBindings.update","summary":"Change channels bindings (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsChannelsBindingsUpdate","x-rivier-sdk":"agents.channelsBindings.update","x-rivier-cli":"agents channels bindings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/meta":{"get":{"operationId":"agents.channelsMeta.get","summary":"Read channels meta","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsChannelsMetaGet","x-rivier-sdk":"agents.channelsMeta.get","x-rivier-cli":"agents channels meta get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/resources":{"get":{"operationId":"agents.channelsResources.get","summary":"Read channels resources","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_channel_resources","x-rivier-graphql":"Query.agentsChannelsResourcesGet","x-rivier-sdk":"agents.channelsResources.get","x-rivier-cli":"agents channels resources get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/{type}/{ref}/routing":{"get":{"operationId":"agents.channelsRouting.get","summary":"Read channels routing (by id)","tags":["agents"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"ref","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_routing_get","x-rivier-graphql":"Query.agentsChannelsRoutingGet","x-rivier-sdk":"agents.channelsRouting.get","x-rivier-cli":"agents channels routing get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.channelsRouting.set","summary":"Set channels routing (by id)","tags":["agents"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"ref","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_routing_set","x-rivier-graphql":"Mutation.agentsChannelsRoutingSet","x-rivier-sdk":"agents.channelsRouting.set","x-rivier-cli":"agents channels routing set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/{type}/{ref}/threads/{thread}/handoff":{"post":{"operationId":"agents.channelsThreads.handoff","summary":"Run channels threads handoff (by id)","tags":["agents"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"ref","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"thread","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_thread_handoff","x-rivier-graphql":"Mutation.agentsChannelsThreadsHandoff","x-rivier-sdk":"agents.channelsThreads.handoff","x-rivier-cli":"agents channels threads handoff","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/{type}/{ref}/threads/{thread}/lock":{"get":{"operationId":"agents.channelsThreadsLock.get","summary":"Read channels threads lock (by id)","tags":["agents"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"ref","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"thread","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsChannelsThreadsLockGet","x-rivier-sdk":"agents.channelsThreadsLock.get","x-rivier-cli":"agents channels threads lock get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/channels/{type}/{ref}/threads/{thread}/release":{"post":{"operationId":"agents.channelsThreads.release","summary":"Run channels threads release (by id)","tags":["agents"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"ref","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"thread","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsChannelsThreadsRelease","x-rivier-sdk":"agents.channelsThreads.release","x-rivier-cli":"agents channels threads release","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/assist":{"post":{"operationId":"content.entry.assist","summary":"A proposal from the project's writing model for a passage: a draft, a rewrite, a shorter or longer version, a tone, a summary, a search description, alt text or a translation. Nothing is saved; the result is marked as machine-written.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-sdk":"content.entry.assist","x-rivier-cli":"content entry assist","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task":{"type":"string","enum":["draft","rewrite","shorter","longer","tone","summary","seo","alt","translate"]},"text":{"type":"string","maxLength":12000,"default":""},"instruction":{"type":"string","maxLength":500},"tone":{"type":"string","enum":["plain","warm","formal","playful","confident"]},"language":{"type":"string","maxLength":20}},"required":["task"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/bulk":{"post":{"operationId":"content.entry.bulk","summary":"Create or update many entries by source reference.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_bulk","x-rivier-graphql":"Mutation.contentEntryBulk","x-rivier-sdk":"content.entry.bulk","x-rivier-cli":"content entry bulk","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/by-slug/{type}/{slug}":{"get":{"operationId":"content.entry.bySlug","summary":"One entry by its address.","tags":["content"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentEntryBySlug","x-rivier-sdk":"content.entry.bySlug","x-rivier-cli":"content entry by slug","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string"},"slug":{"type":"string"},"locale":{"type":"string"},"state":{"type":"string","enum":["draft","in_review","approved","scheduled","published","archived"]},"title":{"type":"string"},"fields":{"type":"object","additionalProperties":{}},"version":{"type":"number"},"pending":{"type":"boolean"},"publishedAt":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","type","slug","locale","state","title","fields","version","pending","publishedAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/comments/{id}/resolve":{"post":{"operationId":"content.comment.resolve","summary":"Settle a comment, or open it again.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentCommentResolve","x-rivier-sdk":"content.comment.resolve","x-rivier-cli":"content comment resolve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resolved":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/entries":{"get":{"operationId":"content.delivery.list","summary":"Published entries for a site, cached.","tags":["content"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"site","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"where","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"}},{"name":"select","in":"query","required":false,"schema":{"type":"string"}},{"name":"expand","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentDeliveryList","x-rivier-sdk":"content.delivery.list","x-rivier-cli":"content delivery list","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/entries/{type}/{slug}":{"get":{"operationId":"content.delivery.get","summary":"One published entry by address.","tags":["content"],"parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"expand","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentDeliveryGet","x-rivier-sdk":"content.delivery.get","x-rivier-cli":"content delivery get","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/feed.atom":{"get":{"operationId":"content.delivery.feedAtom","summary":"An Atom 1.0 feed of the published entries.","tags":["content"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":20}},{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"title","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"self","in":"query","required":false,"schema":{"type":"string","format":"uri","maxLength":400}},{"name":"description","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"author","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"topic","in":"query","required":false,"schema":{"type":"string","maxLength":120}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.feedAtom","x-rivier-cli":"content delivery feed atom","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/feed.json":{"get":{"operationId":"content.delivery.feedJson","summary":"A JSON Feed 1.1 of the published entries (by type, language, site). The site serves it at its own address.","tags":["content"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":20}},{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"title","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"self","in":"query","required":false,"schema":{"type":"string","format":"uri","maxLength":400}},{"name":"description","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"author","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"topic","in":"query","required":false,"schema":{"type":"string","maxLength":120}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.feedJson","x-rivier-cli":"content delivery feed json","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/feed.rss":{"get":{"operationId":"content.delivery.feedRss","summary":"An RSS 2.0 feed of the published entries.","tags":["content"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":20}},{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"title","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"self","in":"query","required":false,"schema":{"type":"string","format":"uri","maxLength":400}},{"name":"description","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"author","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"topic","in":"query","required":false,"schema":{"type":"string","maxLength":120}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.feedRss","x-rivier-cli":"content delivery feed rss","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/id/{id}":{"get":{"operationId":"content.delivery.byId","summary":"One published entry by id.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"expand","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentDeliveryById","x-rivier-sdk":"content.delivery.byId","x-rivier-cli":"content delivery by id","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/id/{id}/jsonld":{"get":{"operationId":"content.delivery.jsonld","summary":"Structured data (schema.org Article) for a published page: dates, authors with their ORCID iD, the DOI, and a retraction.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"publisher","in":"query","required":false,"schema":{"type":"string","maxLength":160}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.jsonld","x-rivier-cli":"content delivery jsonld","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/id/{id}/markdown":{"get":{"operationId":"content.delivery.markdown","summary":"A published page as markdown with a small header (title, address, dates, AI use, reviewer, retraction), its corrections and the AI line.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.markdown","x-rivier-cli":"content delivery markdown","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/llms.txt":{"get":{"operationId":"content.delivery.llms","summary":"An llms.txt for the published content.","tags":["content"],"parameters":[{"name":"site","in":"query","required":false,"schema":{"type":"string"}},{"name":"name","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.llms","x-rivier-cli":"content delivery llms","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/news-sitemap.xml":{"get":{"operationId":"content.delivery.newsSitemap","summary":"A Google News sitemap of what was published in the last two days; retracted pages are left out.","tags":["content"],"parameters":[{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":10}},{"name":"type","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.newsSitemap","x-rivier-cli":"content delivery news sitemap","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/podcast.rss":{"get":{"operationId":"content.delivery.podcast","summary":"A podcast feed (RSS with iTunes tags): each published episode with its audio file attached.","tags":["content"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":20}},{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"title","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"self","in":"query","required":false,"schema":{"type":"string","format":"uri","maxLength":400}},{"name":"description","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"author","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":160}},{"name":"topic","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"audioField","in":"query","required":false,"schema":{"type":"string"}},{"name":"durationField","in":"query","required":false,"schema":{"type":"string"}},{"name":"image","in":"query","required":false,"schema":{"type":"string","format":"uri"}},{"name":"explicit","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]}},{"name":"category","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.podcast","x-rivier-cli":"content delivery podcast","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/delivery/v1/redirects":{"get":{"operationId":"content.delivery.redirects","summary":"Every redirect of a site for the build and the edge, or where one address leads (?path=).","tags":["content"],"parameters":[{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"path","in":"query","required":false,"schema":{"type":"string","maxLength":500}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.delivery.redirects","x-rivier-cli":"content delivery redirects","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries":{"get":{"operationId":"content.entry.list","summary":"List entries with filters.","tags":["content"],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","required":false,"schema":{"type":"string"}},{"name":"site","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"where","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentEntryList","x-rivier-sdk":"content.entry.list","x-rivier-cli":"content entry list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string"},"slug":{"type":"string"},"locale":{"type":"string"},"state":{"type":"string","enum":["draft","in_review","approved","scheduled","published","archived"]},"title":{"type":"string"},"fields":{"type":"object","additionalProperties":{}},"version":{"type":"number"},"pending":{"type":"boolean"},"publishedAt":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","type","slug","locale","state","title","fields","version","pending","publishedAt","updatedAt"],"additionalProperties":true}},"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"}},"required":["items","total","limit","offset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.entry.create","summary":"Create an entry as a draft.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_create","x-rivier-graphql":"Mutation.contentEntryCreate","x-rivier-sdk":"content.entry.create","x-rivier-cli":"content entry create","x-rivier-events":["content.entry.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"slug":{"type":"string","maxLength":120},"locale":{"type":"string","maxLength":20},"site":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"fields":{"type":"object","additionalProperties":{}},"seo":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"description":{"type":"string","maxLength":400},"canonical":{"type":"string","format":"uri","maxLength":2000},"noindex":{"type":"boolean"},"ogImageAssetId":{"type":"string","format":"uuid"},"answerSummary":{"type":"string","maxLength":800},"faq":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":300},"a":{"type":"string","minLength":1,"maxLength":2000}},"required":["q","a"],"additionalProperties":false},"maxItems":30},"jsonld":{"type":"object","properties":{"type":{"type":"string","maxLength":60},"data":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":false},"includeInLlmsTxt":{"type":"boolean"}},"additionalProperties":false},"ai":{"type":"object","properties":{"level":{"type":"string","enum":["none","assisted","generated"]},"model":{"type":"string","maxLength":120},"agent":{"type":"string","maxLength":120},"disclosureLine":{"type":"string","maxLength":500},"reviewedBy":{"type":"string","maxLength":200},"reviewedAt":{"type":"string","maxLength":40}},"required":["level"],"additionalProperties":false},"contentItemId":{"type":"string","format":"uuid"},"dryRun":{"type":"boolean"},"reason":{"type":"string","maxLength":300},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["type","fields"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}":{"get":{"operationId":"content.entry.get","summary":"One entry with its translations.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentEntryGet","x-rivier-sdk":"content.entry.get","x-rivier-cli":"content entry get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string"},"slug":{"type":"string"},"locale":{"type":"string"},"state":{"type":"string","enum":["draft","in_review","approved","scheduled","published","archived"]},"title":{"type":"string"},"fields":{"type":"object","additionalProperties":{}},"version":{"type":"number"},"pending":{"type":"boolean"},"publishedAt":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","type","slug","locale","state","title","fields","version","pending","publishedAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"content.entry.patch","summary":"Change an entry with field-level operations.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_patch","x-rivier-graphql":"Mutation.contentEntryPatch","x-rivier-sdk":"content.entry.patch","x-rivier-cli":"content entry patch","x-rivier-events":["content.entry.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ops":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"op":{"type":"string","const":"set"},"path":{"type":"string","minLength":1,"maxLength":300},"value":{}},"required":["op","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"unset"},"path":{"type":"string","minLength":1,"maxLength":300}},"required":["op","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"insert"},"path":{"type":"string","minLength":1,"maxLength":300},"index":{"type":"integer","minimum":0},"value":{}},"required":["op","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove"},"path":{"type":"string","minLength":1,"maxLength":300},"index":{"type":"integer","minimum":0}},"required":["op","path","index"],"additionalProperties":false}]},"minItems":1,"maxItems":100},"expectVersion":{"type":"integer","minimum":1},"slug":{"type":"string","maxLength":120},"ai":{"type":"object","properties":{"level":{"type":"string","enum":["none","assisted","generated"]},"model":{"type":"string","maxLength":120},"agent":{"type":"string","maxLength":120},"disclosureLine":{"type":"string","maxLength":500},"reviewedBy":{"type":"string","maxLength":200},"reviewedAt":{"type":"string","maxLength":40}},"required":["level"],"additionalProperties":false},"releaseId":{"type":"string","format":"uuid"},"dryRun":{"type":"boolean"},"reason":{"type":"string","maxLength":300},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["ops"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"content.entry.delete","summary":"Delete an entry.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryDelete","x-rivier-sdk":"content.entry.delete","x-rivier-cli":"content entry delete","x-rivier-events":["content.entry.deleted"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/archive":{"post":{"operationId":"content.entry.archive","summary":"Archive an entry.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryArchive","x-rivier-sdk":"content.entry.archive","x-rivier-cli":"content entry archive","x-rivier-events":["content.entry.archived"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/check":{"get":{"operationId":"content.entry.check","summary":"Whether an entry passes its rules and can be published.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentEntryCheck","x-rivier-sdk":"content.entry.check","x-rivier-cli":"content entry check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/comments":{"get":{"operationId":"content.comment.list","summary":"The comments on a page.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_comments","x-rivier-graphql":"Query.contentCommentList","x-rivier-sdk":"content.comment.list","x-rivier-cli":"content comment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":true}}},"required":["comments"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.comment.add","summary":"Leave a note on a page or on one of its fields, naming people if needed.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_comment","x-rivier-graphql":"Mutation.contentCommentAdd","x-rivier-sdk":"content.comment.add","x-rivier-cli":"content comment add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":4000},"version":{"type":"integer","minimum":1},"fieldPath":{"type":"string","maxLength":300},"mentions":{"type":"array","items":{"type":"string","format":"email"},"maxItems":20}},"required":["body","version"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/corrections":{"get":{"operationId":"content.correction.list","summary":"The corrections log of a page: every correction, update or clarification made after publishing.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_corrections","x-rivier-graphql":"Query.contentCorrectionList","x-rivier-sdk":"content.correction.list","x-rivier-cli":"content correction list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"corrections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":true}}},"required":["corrections"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.correction.add","summary":"Record a correction, an update or a clarification on a published page. A person with the approver role does this; it is shown with the page and never removed.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentCorrectionAdd","x-rivier-sdk":"content.correction.add","x-rivier-cli":"content correction add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["correction","update","clarification","retraction"]},"text":{"type":"string","minLength":1,"maxLength":2000},"version":{"type":"integer","minimum":1}},"required":["kind","text","version"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/diff":{"get":{"operationId":"content.entry.diff","summary":"What changed between two versions.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"integer"}},{"name":"to","in":"query","required":true,"schema":{"type":"integer"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentEntryDiff","x-rivier-sdk":"content.entry.diff","x-rivier-cli":"content entry diff","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/email":{"get":{"operationId":"content.entry.email","summary":"A published page as an email ready for the contact store to send: subject, preheader, safe HTML with corrections and the AI line, a plain-text part and the address of the page. The unsubscribe footer is the sender's.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"home","in":"query","required":true,"schema":{"type":"string","format":"uri"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_newsletter","x-rivier-graphql":"Query.contentEntryEmail","x-rivier-sdk":"content.entry.email","x-rivier-cli":"content entry email","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/embargo":{"post":{"operationId":"content.entry.embargo","summary":"Hold an approved page until a time and get a link the press can read it with until then.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryEmbargo","x-rivier-sdk":"content.entry.embargo","x-rivier-cli":"content entry embargo","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"until":{"type":"string"}},"required":["until"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/history":{"get":{"operationId":"content.entry.history","summary":"The versions of an entry.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_history","x-rivier-graphql":"Query.contentEntryHistory","x-rivier-sdk":"content.entry.history","x-rivier-cli":"content entry history","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/preview-link":{"post":{"operationId":"content.entry.previewLink","summary":"A signed, expiring link that shows the working copy.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"ttl","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryPreviewLink","x-rivier-sdk":"content.entry.previewLink","x-rivier-cli":"content entry preview link","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"expiresAt":{"type":"string"}},"required":["token","expiresAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/publish":{"post":{"operationId":"content.entry.publish","summary":"Publish an approved entry.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_publish","x-rivier-graphql":"Mutation.contentEntryPublish","x-rivier-sdk":"content.entry.publish","x-rivier-cli":"content entry publish","x-rivier-events":["content.entry.published"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dryRun":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/restore":{"post":{"operationId":"content.entry.restore","summary":"Restore an archived entry.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryRestore","x-rivier-sdk":"content.entry.restore","x-rivier-cli":"content entry restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/review":{"post":{"operationId":"content.entry.review","summary":"Approve an entry or send it back.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryReview","x-rivier-sdk":"content.entry.review","x-rivier-cli":"content entry review","x-rivier-events":["content.entry.reviewed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","changes"]},"comment":{"type":"string","maxLength":500},"reviewedAi":{"type":"boolean"}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/rollback":{"post":{"operationId":"content.entry.rollback","summary":"Return an entry to an earlier version as a new version.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_rollback","x-rivier-graphql":"Mutation.contentEntryRollback","x-rivier-sdk":"content.entry.rollback","x-rivier-cli":"content entry rollback","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"toVersion":{"type":"integer","minimum":1},"dryRun":{"type":"boolean"},"reason":{"type":"string","maxLength":300},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["toVersion"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/schedule":{"post":{"operationId":"content.entry.schedule","summary":"Schedule publication.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntrySchedule","x-rivier-sdk":"content.entry.schedule","x-rivier-cli":"content entry schedule","x-rivier-events":["content.entry.scheduled"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"at":{"type":"string"}},"required":["at"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/submit":{"post":{"operationId":"content.entry.submit","summary":"Send an entry for review.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntrySubmit","x-rivier-sdk":"content.entry.submit","x-rivier-cli":"content entry submit","x-rivier-events":["content.entry.submitted"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"comment":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/translate":{"post":{"operationId":"content.entry.translate","summary":"Add or update a translation.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_translate","x-rivier-graphql":"Mutation.contentEntryTranslate","x-rivier-sdk":"content.entry.translate","x-rivier-cli":"content entry translate","x-rivier-events":["content.entry.translated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"type":"string","maxLength":20},"fields":{"type":"object","additionalProperties":{}},"seo":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"description":{"type":"string","maxLength":400},"canonical":{"type":"string","format":"uri","maxLength":2000},"noindex":{"type":"boolean"},"ogImageAssetId":{"type":"string","format":"uuid"},"answerSummary":{"type":"string","maxLength":800},"faq":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":300},"a":{"type":"string","minLength":1,"maxLength":2000}},"required":["q","a"],"additionalProperties":false},"maxItems":30},"jsonld":{"type":"object","properties":{"type":{"type":"string","maxLength":60},"data":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":false},"includeInLlmsTxt":{"type":"boolean"}},"additionalProperties":false},"slug":{"type":"string","maxLength":120},"dryRun":{"type":"boolean"}},"required":["locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/translation-pack":{"get":{"operationId":"content.entry.translationPack","summary":"Everything a translator needs for one locale.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentEntryTranslationPack","x-rivier-sdk":"content.entry.translationPack","x-rivier-cli":"content entry translation pack","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/entries/{id}/unpublish":{"post":{"operationId":"content.entry.unpublish","summary":"Withdraw a published entry.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_unpublish","x-rivier-graphql":"Mutation.contentEntryUnpublish","x-rivier-sdk":"content.entry.unpublish","x-rivier-cli":"content entry unpublish","x-rivier-events":["content.entry.unpublished"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/events":{"get":{"operationId":"content.event.list","summary":"The CMS change feed.","tags":["content"],"parameters":[{"name":"after","in":"query","required":false,"schema":{"type":"integer"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_events","x-rivier-graphql":"Query.contentEventList","x-rivier-sdk":"content.event.list","x-rivier-cli":"content event list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/export":{"get":{"operationId":"content.site.export","summary":"A static export of the published content.","tags":["content"],"parameters":[{"name":"site","in":"query","required":false,"schema":{"type":"string"}},{"name":"base","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentSiteExport","x-rivier-sdk":"content.site.export","x-rivier-cli":"content site export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/import":{"post":{"operationId":"content.entry.import","summary":"Import markdown, a Ghost export, WordPress posts, a Medium export (html files) or a Substack export (posts.csv and html files). Returns what was made, what was skipped and why, and a redirect from each old address to the new page.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentEntryImport","x-rivier-sdk":"content.entry.import","x-rivier-cli":"content entry import","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"format":{"type":"string","enum":["markdown","ghost","wordpress","substack","medium"]},"type":{"type":"string"},"data":{},"map":{"type":"object","additionalProperties":{"type":"string"}},"dryRun":{"type":"boolean"},"locale":{"type":"string","maxLength":20}},"required":["format","type"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/knowledge":{"get":{"operationId":"content.knowledge.list","summary":"Published passages for customer service and memory.","tags":["content"],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentKnowledgeList","x-rivier-sdk":"content.knowledge.list","x-rivier-cli":"content knowledge list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"passages":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"text":{"type":"string"}},"required":["key","text"],"additionalProperties":true}}},"required":["passages"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/presets":{"get":{"operationId":"content.preset.list","summary":"Ready-made groups of content types: blog, magazine, and portfolios for photographers, artists, musicians, designers, writers, performers and consultants.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_presets","x-rivier-graphql":"Query.contentPresetList","x-rivier-sdk":"content.preset.list","x-rivier-cli":"content preset list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"presets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"required":["key"],"additionalProperties":true}}},"required":["presets"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/presets/{key}/apply":{"post":{"operationId":"content.preset.apply","summary":"Set the project up with a preset's content types. A type the project already has is left alone.","tags":["content"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"content:admin","x-rivier-mcp":"rivier_cms_apply_preset","x-rivier-graphql":"Mutation.contentPresetApply","x-rivier-sdk":"content.preset.apply","x-rivier-cli":"content preset apply","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"preset":{"type":"string"},"created":{"type":"array","items":{"type":"string"}},"skipped":{"type":"array","items":{"type":"string"}}},"required":["preset","created","skipped"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/query":{"post":{"operationId":"content.entry.query","summary":"Query entries with a typed filter.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_query","x-rivier-graphql":"Query.contentEntryQuery","x-rivier-sdk":"content.entry.query","x-rivier-cli":"content entry query","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"locale":{"type":"string","maxLength":20},"where":{"type":"object","additionalProperties":{}},"search":{"type":"string","maxLength":300},"sort":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","maxLength":100},"dir":{"type":"string","enum":["asc","desc"],"default":"asc"}},"required":["field"],"additionalProperties":false},"maxItems":3},"limit":{"type":"integer","minimum":1,"maximum":200,"default":25},"offset":{"type":"integer","minimum":0,"maximum":100000,"default":0},"select":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":60},"expand":{"type":"integer","minimum":0,"maximum":1,"default":0},"state":{"type":"array","items":{"type":"string","enum":["draft","in_review","approved","scheduled","published","archived"]},"maxItems":6},"site":{"type":"string","maxLength":80}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"type":{"type":"string"},"slug":{"type":"string"},"locale":{"type":"string"},"state":{"type":"string","enum":["draft","in_review","approved","scheduled","published","archived"]},"title":{"type":"string"},"fields":{"type":"object","additionalProperties":{}},"version":{"type":"number"},"pending":{"type":"boolean"},"publishedAt":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","type","slug","locale","state","title","fields","version","pending","publishedAt","updatedAt"],"additionalProperties":true}},"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"}},"required":["items","total","limit","offset"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/reader-comments":{"get":{"operationId":"content.readerComment.list","summary":"Reader comments of a page or of the whole project, by state (held, published, refused).","tags":["content"],"parameters":[{"name":"entryId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["held","published","refused"]}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_reader_comments","x-rivier-sdk":"content.readerComment.list","x-rivier-cli":"content reader comment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["comments"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/reader-comments/{id}/decide":{"post":{"operationId":"content.readerComment.decide","summary":"Let a held comment through or refuse it. A person with the approver role does this; nothing is deleted.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-sdk":"content.readerComment.decide","x-rivier-cli":"content reader comment decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["publish","refuse"]}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/redirects":{"get":{"operationId":"content.redirect.list","summary":"Old addresses and where they lead (301, 302, 307, 308 or 410 for gone).","tags":["content"],"parameters":[{"name":"site","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_redirects","x-rivier-graphql":"Query.contentRedirectList","x-rivier-sdk":"content.redirect.list","x-rivier-cli":"content redirect list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"redirects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":true}}},"required":["redirects"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.redirect.set","summary":"Send an old address to a new one so links and search standing carry over. A redirect never points at another one; chains are followed on write.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_redirect","x-rivier-graphql":"Mutation.contentRedirectSet","x-rivier-sdk":"content.redirect.set","x-rivier-cli":"content redirect set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","minLength":1,"maxLength":500},"to":{"anyOf":[{"type":"string","maxLength":1000},{"type":"string","const":""}]},"status":{"type":"number","enum":[301,302,307,308,410],"default":301},"site":{"type":"string","maxLength":80,"default":""}},"required":["from","to"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/redirects/{id}":{"delete":{"operationId":"content.redirect.remove","summary":"Remove a redirect.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentRedirectRemove","x-rivier-sdk":"content.redirect.remove","x-rivier-cli":"content redirect remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases":{"get":{"operationId":"content.release.list","summary":"List releases.","tags":["content"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_releases","x-rivier-graphql":"Query.contentReleaseList","x-rivier-sdk":"content.release.list","x-rivier-cli":"content release list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"releases":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"state":{"type":"string"}},"required":["id","name","state"],"additionalProperties":true}}},"required":["releases"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.release.create","summary":"Create a release.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseCreate","x-rivier-sdk":"content.release.create","x-rivier-cli":"content release create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":1000}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"state":{"type":"string"}},"required":["id","name","state"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/cancel":{"post":{"operationId":"content.release.cancel","summary":"Cancel a release.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseCancel","x-rivier-sdk":"content.release.cancel","x-rivier-cli":"content release cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/diff":{"get":{"operationId":"content.release.diff","summary":"What a release would change.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentReleaseDiff","x-rivier-sdk":"content.release.diff","x-rivier-cli":"content release diff","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/items":{"post":{"operationId":"content.release.addItem","summary":"Add an entry to a release.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_move","x-rivier-graphql":"Mutation.contentReleaseAddItem","x-rivier-sdk":"content.release.addItem","x-rivier-cli":"content release add item","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"op":{"type":"string","enum":["publish","unpublish"]}},"required":["entryId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/items/{entryId}":{"delete":{"operationId":"content.release.removeItem","summary":"Take an entry out of a release.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseRemoveItem","x-rivier-sdk":"content.release.removeItem","x-rivier-cli":"content release remove item","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/publish":{"post":{"operationId":"content.release.publish","summary":"Publish a release.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_cms_release","x-rivier-graphql":"Mutation.contentReleasePublish","x-rivier-sdk":"content.release.publish","x-rivier-cli":"content release publish","x-rivier-events":["content.release.published"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dryRun":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/rebase":{"post":{"operationId":"content.release.rebase","summary":"Bring a release up to date with changed entries.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseRebase","x-rivier-sdk":"content.release.rebase","x-rivier-cli":"content release rebase","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/review":{"post":{"operationId":"content.release.review","summary":"Approve a release or send it back.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseReview","x-rivier-sdk":"content.release.review","x-rivier-cli":"content release review","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","changes"]},"comment":{"type":"string","maxLength":500},"reviewedAi":{"type":"boolean"}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/schedule":{"post":{"operationId":"content.release.schedule","summary":"Schedule a release.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseSchedule","x-rivier-sdk":"content.release.schedule","x-rivier-cli":"content release schedule","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"at":{"type":"string"}},"required":["at"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/releases/{id}/submit":{"post":{"operationId":"content.release.submit","summary":"Send a release for review.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentReleaseSubmit","x-rivier-sdk":"content.release.submit","x-rivier-cli":"content release submit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/settings":{"get":{"operationId":"content.settings.get","summary":"Locales, rules, cache time and limits.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentSettingsGet","x-rivier-sdk":"content.settings.get","x-rivier-cli":"content settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"content.settings.update","summary":"Change the CMS settings.","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-graphql":"Mutation.contentSettingsUpdate","x-rivier-sdk":"content.settings.update","x-rivier-cli":"content settings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/summary":{"get":{"operationId":"content.cms.summary","summary":"Counts and health of the brand's content.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentCmsSummary","x-rivier-sdk":"content.cms.summary","x-rivier-cli":"content cms summary","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/types":{"get":{"operationId":"content.type.list","summary":"The content types, with fields and rules.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_schema","x-rivier-graphql":"Query.contentTypeList","x-rivier-sdk":"content.type.list","x-rivier-cli":"content type list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"types":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"}},"required":["key"],"additionalProperties":true}}},"required":["types"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/types.d.ts":{"get":{"operationId":"content.type.typescript","summary":"The types as TypeScript declarations.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.type.typescript","x-rivier-cli":"content type typescript","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/types/{key}":{"get":{"operationId":"content.type.get","summary":"One content type.","tags":["content"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentTypeGet","x-rivier-sdk":"content.type.get","x-rivier-cli":"content type get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"content.type.save","summary":"Create or change a content type.","tags":["content"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}},{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}},{"name":"force","in":"query","required":false,"schema":{"type":"string","const":"1"}}],"x-rivier-scope":"content:admin","x-rivier-mcp":"rivier_cms_save_type","x-rivier-graphql":"Mutation.contentTypeSave","x-rivier-sdk":"content.type.save","x-rivier-cli":"content type save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"content.type.delete","summary":"Delete a content type with no entries.","tags":["content"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"content:admin","x-rivier-graphql":"Mutation.contentTypeDelete","x-rivier-sdk":"content.type.delete","x-rivier-cli":"content type delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/types/{key}/pack":{"get":{"operationId":"content.type.pack","summary":"The writing pack for a type: schema, rules, voice and grounding.","tags":["content"],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentTypePack","x-rivier-sdk":"content.type.pack","x-rivier-cli":"content type pack","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/webhooks":{"get":{"operationId":"content.webhook.list","summary":"The CMS's webhook endpoints.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentWebhookList","x-rivier-sdk":"content.webhook.list","x-rivier-cli":"content webhook list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.webhook.create","summary":"Add a webhook endpoint; the signing secret is returned once.","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-graphql":"Mutation.contentWebhookCreate","x-rivier-sdk":"content.webhook.create","x-rivier-cli":"content webhook create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"},"maxItems":20}},"required":["url"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"secret":{"type":"string"}},"required":["id","secret"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/cms/webhooks/{id}":{"delete":{"operationId":"content.webhook.delete","summary":"Remove a webhook endpoint.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:admin","x-rivier-graphql":"Mutation.contentWebhookDelete","x-rivier-sdk":"content.webhook.delete","x-rivier-cli":"content webhook delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/analytics-rules":{"get":{"operationId":"compliance.analyticsRules.get","summary":"The analytics rows: for each region the highest mode, opt-in rule, signals, retention, children policy, fallback mode and review date.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_analytics_rules","x-rivier-graphql":"Query.complianceAnalyticsRulesGet","x-rivier-sdk":"compliance.analyticsRules.get","x-rivier-cli":"compliance analytics rules get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/analytics-rules/decide":{"post":{"operationId":"compliance.analyticsRules.decide","summary":"The analytics mode for one visitor: region, browser signals, consent and the site's own setting go in; the mode, the reason and whether a prompt is needed come out.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_analytics_decide","x-rivier-graphql":"Query.complianceAnalyticsRulesDecide","x-rivier-sdk":"compliance.analyticsRules.decide","x-rivier-cli":"compliance analytics rules decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"subdivision":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}]},"signals":{"type":"object","properties":{"gpc":{"type":"boolean"},"dnt":{"type":"boolean"}},"additionalProperties":false},"consent":{"type":"string","enum":["none","granted","denied"]},"ownerMode":{"type":"string","enum":["M0","M1","M2"]},"childAudience":{"type":"boolean"}},"required":["consent","ownerMode"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/breaches":{"get":{"operationId":"compliance.breach.list","summary":"The breach register with the notification clocks for each jurisdiction and the checklist.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_breaches","x-rivier-graphql":"Query.complianceBreachList","x-rivier-sdk":"compliance.breach.list","x-rivier-cli":"compliance breach list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"compliance.breach.log","summary":"Log a breach or a suspected breach; the clock starts at the moment of awareness.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_compliance_breach_log","x-rivier-graphql":"Mutation.complianceBreachLog","x-rivier-sdk":"compliance.breach.log","x-rivier-cli":"compliance breach log","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":200},"description":{"type":"string","minLength":3,"maxLength":4000},"awareAt":{"type":"string","format":"date-time"},"occurredAt":{"type":"string","format":"date-time"},"dataCategories":{"type":"array","items":{"type":"string","maxLength":120},"maxItems":30,"default":[]},"peopleAffected":{"type":"integer","minimum":0,"maximum":1000000000},"jurisdictions":{"type":"array","items":{"type":"string","enum":["eu","gb","us","us-ca","ca","qc","br","au"]},"maxItems":12}},"required":["title","description"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/breaches/{id}":{"get":{"operationId":"compliance.breach.get","summary":"One breach entry with its clocks.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.complianceBreachGet","x-rivier-sdk":"compliance.breach.get","x-rivier-cli":"compliance breach get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/breaches/{id}/assess":{"post":{"operationId":"compliance.breach.assess","summary":"Assess the risk and the jurisdictions affected. A person.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.breach.assess","x-rivier-cli":"compliance breach assess","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"risk":{"type":"string","enum":["unlikely","risk","high"]},"reason":{"type":"string","minLength":5,"maxLength":1500},"jurisdictions":{"type":"array","items":{"type":"string","enum":["eu","gb","us","us-ca","ca","qc","br","au"]},"maxItems":12},"measures":{"type":"string","maxLength":3000}},"required":["risk","reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/breaches/{id}/close":{"post":{"operationId":"compliance.breach.close","summary":"Close a breach entry with a note. A person with the manager role.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.breach.close","x-rivier-cli":"compliance breach close","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","minLength":3,"maxLength":1500}},"required":["note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/breaches/{id}/notified":{"post":{"operationId":"compliance.breach.notified","summary":"Record that an authority or the people were told. A person.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.breach.notified","x-rivier-cli":"compliance breach notified","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"who":{"type":"string","enum":["authority","individuals"]},"jurisdiction":{"type":"string","enum":["eu","gb","us","us-ca","ca","qc","br","au"]},"at":{"type":"string","format":"date-time"},"note":{"type":"string","maxLength":500}},"required":["who"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/checklist":{"get":{"operationId":"compliance.checklist.get","summary":"The obligations that apply to this project, what Rivier does about each, what is left to the business, the evidence held and the sources. A list of facts, not a score.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_checklist","x-rivier-graphql":"Query.complianceChecklistGet","x-rivier-sdk":"compliance.checklist.get","x-rivier-cli":"compliance checklist get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/checklist/confirm":{"post":{"operationId":"compliance.checklist.confirm","summary":"Record that the business has done its part of an obligation (or withdraw that record). A person's statement; Rivier never counts it as its own claim.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.checklist.confirm","x-rivier-cli":"compliance checklist confirm","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ref":{"type":"string","minLength":3,"maxLength":120},"confirmed":{"type":"boolean"},"note":{"type":"string","maxLength":1000}},"required":["ref","confirmed"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/consent-receipts":{"post":{"operationId":"compliance.consentReceipt.record","summary":"The consent widget records a receipt: versions, region, choices, receipt id; no address. Chained by hash.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.consentReceipt.record","x-rivier-cli":"compliance consent receipt record","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"receiptId":{"type":"string","minLength":8,"maxLength":120,"pattern":"^[A-Za-z0-9._-]+$"},"at":{"type":"string","format":"date-time"},"bannerVersion":{"type":"string","minLength":1,"maxLength":60},"packVersion":{"type":"string","minLength":1,"maxLength":60},"region":{"type":"string","minLength":2,"maxLength":12},"choices":{"type":"object","additionalProperties":{"type":"boolean"},"propertyNames":{"maxLength":40}},"signals":{"type":"object","properties":{"gpc":{"type":"boolean"},"dnt":{"type":"boolean"}},"additionalProperties":false}},"required":["receiptId","bannerVersion","packVersion","region","choices"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"compliance.consentReceipt.list","summary":"The newest consent receipts and how many there are: when, region, banner and rule versions, the choices and the browser's privacy signals. Nothing in a receipt says who the visitor is.","tags":["compliance"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.complianceConsentReceiptList","x-rivier-sdk":"compliance.consentReceipt.list","x-rivier-cli":"compliance consent receipt list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/consent-receipts.csv":{"get":{"operationId":"compliance.consentReceipt.export","summary":"Every consent receipt as a CSV file, oldest first, with the hashes that chain them.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-sdk":"compliance.consentReceipt.export","x-rivier-cli":"compliance consent receipt export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/consent-receipts/verify":{"get":{"operationId":"compliance.consentReceipt.verify","summary":"Check that the chain of consent receipts is intact.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_receipts_verify","x-rivier-graphql":"Query.complianceConsentReceiptVerify","x-rivier-sdk":"compliance.consentReceipt.verify","x-rivier-cli":"compliance consent receipt verify","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/dpias":{"get":{"operationId":"compliance.dpia.list","summary":"Impact assessments, the triggers found for this project and the template.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_dpias","x-rivier-graphql":"Query.complianceDpiaList","x-rivier-sdk":"compliance.dpia.list","x-rivier-cli":"compliance dpia list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"compliance.dpia.create","summary":"Start an impact assessment, prefilled from a processing activity.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_compliance_dpia_start","x-rivier-graphql":"Mutation.complianceDpiaCreate","x-rivier-sdk":"compliance.dpia.create","x-rivier-cli":"compliance dpia create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":3,"maxLength":200},"activityId":{"type":"string","maxLength":80}},"required":["title"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/dpias/{id}":{"patch":{"operationId":"compliance.dpia.update","summary":"Fill in the sections of an impact assessment.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_compliance_dpia_edit","x-rivier-graphql":"Mutation.complianceDpiaUpdate","x-rivier-sdk":"compliance.dpia.update","x-rivier-cli":"compliance dpia update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sections":{"type":"object","additionalProperties":{"type":"string","maxLength":6000},"propertyNames":{"maxLength":60}},"reviewDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/dpias/{id}/approve":{"post":{"operationId":"compliance.dpia.approve","summary":"Approve a complete impact assessment. A person with the manager role.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dpia.approve","x-rivier-cli":"compliance dpia approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/evidence.zip":{"get":{"operationId":"compliance.evidence.export","summary":"A ZIP for an auditor: checklist, requests, register, records, documents, with a manifest and hashes.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-sdk":"compliance.evidence.export","x-rivier-cli":"compliance evidence export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/evidence/retention-runs":{"post":{"operationId":"compliance.retention.evidence","summary":"A job in another module records a retention run it did.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.retention.evidence","x-rivier-cli":"compliance retention evidence","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","minLength":2,"maxLength":60},"days":{"type":"integer","minimum":1,"maximum":3650},"matched":{"type":"integer","minimum":0},"deleted":{"type":"integer","minimum":0},"oldestRemaining":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"default":null},"at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["ok","failed","skipped"],"default":"ok"},"note":{"type":"string","maxLength":300,"default":""}},"required":["target","days","matched","deleted"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/monitor":{"get":{"operationId":"compliance.monitor.changes","summary":"What changed in the rule packs since the project last acknowledged them, which of it applies, and which documents and analytics settings are affected.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_changes","x-rivier-graphql":"Query.complianceMonitorChanges","x-rivier-sdk":"compliance.monitor.changes","x-rivier-cli":"compliance monitor changes","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/monitor/acknowledge":{"post":{"operationId":"compliance.monitor.acknowledge","summary":"Record that the changes were read; clears the review flags. A person with the manager role.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.monitor.acknowledge","x-rivier-cli":"compliance monitor acknowledge","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/monitor/watch":{"get":{"operationId":"compliance.monitor.watch","summary":"Every source the obligations rest on with its age and flags, the stale analytics rows and the watch list of pending changes.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.complianceMonitorWatch","x-rivier-sdk":"compliance.monitor.watch","x-rivier-cli":"compliance monitor watch","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/overview":{"get":{"operationId":"compliance.overview.get","summary":"The overview: open actions, deadlines, documents, requests, rule changes and the standing notice. No score and no badge.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_overview","x-rivier-graphql":"Query.complianceOverviewGet","x-rivier-sdk":"compliance.overview.get","x-rivier-cli":"compliance overview get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/providers":{"get":{"operationId":"compliance.provider.list","summary":"Service providers with the status of the data processing terms. Naming a provider is the business's decision.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_providers","x-rivier-graphql":"Query.complianceProviderList","x-rivier-sdk":"compliance.provider.list","x-rivier-cli":"compliance provider list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/providers/dpa-template":{"get":{"operationId":"compliance.provider.dpaTemplate","summary":"A template of data processing terms to send to a provider.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-sdk":"compliance.provider.dpaTemplate","x-rivier-cli":"compliance provider dpa template","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/providers/terms":{"put":{"operationId":"compliance.provider.setTerms","summary":"Record whether the data processing terms are signed with a provider.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.provider.setTerms","x-rivier-cli":"compliance provider set terms","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dpaSigned":{"type":"boolean"},"signedAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"note":{"type":"string","maxLength":500},"key":{"type":"string","minLength":2,"maxLength":240}},"required":["dpaSigned","key"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/readiness":{"get":{"operationId":"compliance.readiness.get","summary":"Legal pages and consent readiness before going live: which required pages are not published, and whether the consent widget, the cookie list and consent receipts are in place (reported as not connected until the widget is). Facts, not certification.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_readiness","x-rivier-graphql":"Query.complianceReadinessGet","x-rivier-sdk":"compliance.readiness.get","x-rivier-cli":"compliance readiness get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests":{"get":{"operationId":"compliance.dsarRequest.list","summary":"Requests from people about their data, soonest deadline first, with what is overdue or due within a week and the response periods by jurisdiction.","tags":["compliance"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","received","verified","awaiting_approval","completed","refused","withdrawn"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_dsar_list","x-rivier-graphql":"Query.complianceDsarRequestList","x-rivier-sdk":"compliance.dsarRequest.list","x-rivier-cli":"compliance dsar request list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"compliance.dsarRequest.open","summary":"Open a request on behalf of a person (an email, a phone call): the deadline starts now.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_dsar_open","x-rivier-graphql":"Mutation.complianceDsarRequestOpen","x-rivier-sdk":"compliance.dsarRequest.open","x-rivier-cli":"compliance dsar request open","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["access","deletion","portability","correction","objection","restriction","opt_out_sale","withdraw_consent"]},"name":{"type":"string","maxLength":200},"email":{"type":"string","maxLength":200},"phone":{"type":"string","maxLength":40},"receiptId":{"type":"string","maxLength":120},"jurisdiction":{"type":"string","enum":["eu","gb","us","us-ca","ca","qc","br","au"]},"details":{"type":"string","maxLength":3000}},"required":["type"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}":{"get":{"operationId":"compliance.dsarRequest.get","summary":"One request: deadline, identity check, what was found where, the plan and the full log.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_dsar_get","x-rivier-graphql":"Query.complianceDsarRequestGet","x-rivier-sdk":"compliance.dsarRequest.get","x-rivier-cli":"compliance dsar request get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/complete":{"post":{"operationId":"compliance.dsarRequest.complete","summary":"Close a request as done or partly done, with the note sent to the person.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.complete","x-rivier-cli":"compliance dsar request complete","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"outcome":{"type":"string","enum":["fulfilled","partly"]},"note":{"type":"string","minLength":3,"maxLength":1000}},"required":["outcome","note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/discover":{"post":{"operationId":"compliance.dsarRequest.discover","summary":"Look for the person in every connected module. Counts only; modules not connected are named as such.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_dsar_discover","x-rivier-graphql":"Mutation.complianceDsarRequestDiscover","x-rivier-sdk":"compliance.dsarRequest.discover","x-rivier-cli":"compliance dsar request discover","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/erase/approve":{"post":{"operationId":"compliance.dsarRequest.approveErase","summary":"Approve and carry out a prepared deletion, by sending the request reference. A person with the manager role; verified identity required.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.approveErase","x-rivier-cli":"compliance dsar request approve erase","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirm":{"type":"string","minLength":3,"maxLength":40}},"required":["confirm"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/erase/prepare":{"post":{"operationId":"compliance.dsarRequest.prepareErase","summary":"Prepare a deletion: which modules would be emptied. Nothing is removed until a person approves.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_dsar_prepare_erase","x-rivier-graphql":"Mutation.complianceDsarRequestPrepareErase","x-rivier-sdk":"compliance.dsarRequest.prepareErase","x-rivier-cli":"compliance dsar request prepare erase","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/export":{"post":{"operationId":"compliance.dsarRequest.export","summary":"Release the data held about the person, for a person to send to them. Needs a verified identity and the approver role.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.export","x-rivier-cli":"compliance dsar request export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/extend":{"post":{"operationId":"compliance.dsarRequest.extend","summary":"Extend the deadline once, where the law allows, with the reason (the requester is told).","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.extend","x-rivier-cli":"compliance dsar request extend","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":5,"maxLength":500}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/identity":{"post":{"operationId":"compliance.dsarRequest.verify","summary":"Record that the person's identity was checked, and how. A person with the approver role.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.verify","x-rivier-cli":"compliance dsar request verify","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string","minLength":2,"maxLength":80},"note":{"type":"string","maxLength":500}},"required":["method"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/refuse":{"post":{"operationId":"compliance.dsarRequest.refuse","summary":"Refuse a request, with the reason.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.refuse","x-rivier-cli":"compliance dsar request refuse","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":5,"maxLength":1000}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/requests/{id}/withdraw":{"post":{"operationId":"compliance.dsarRequest.withdraw","summary":"Record that the person withdrew their request.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.dsarRequest.withdraw","x-rivier-cli":"compliance dsar request withdraw","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/retention":{"get":{"operationId":"compliance.retention.get","summary":"Retention policies, the stores they apply to, recent runs and alerts.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_retention","x-rivier-graphql":"Query.complianceRetentionGet","x-rivier-sdk":"compliance.retention.get","x-rivier-cli":"compliance retention get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"compliance.retention.set","summary":"Set how long each kind of data is kept. A person with the manager role.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.retention.set","x-rivier-cli":"compliance retention set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"policies":{"type":"array","items":{"type":"object","properties":{"target":{"type":"string","minLength":2,"maxLength":60},"days":{"type":"integer","minimum":1,"maximum":3650},"enabled":{"type":"boolean","default":true},"auto":{"type":"boolean","default":false}},"required":["target","days"],"additionalProperties":false},"maxItems":30}},"required":["policies"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/retention/run":{"post":{"operationId":"compliance.retention.run","summary":"Run the retention schedule now: a dry run records what is past its time; applying deletes it and needs a person.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_compliance_retention_run","x-rivier-graphql":"Mutation.complianceRetentionRun","x-rivier-sdk":"compliance.retention.run","x-rivier-cli":"compliance retention run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"apply":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/ropa":{"get":{"operationId":"compliance.ropa.get","summary":"The record of processing activities, generated from what the project does plus entries the business added; JSON or markdown.","tags":["compliance"],"parameters":[{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","markdown"],"default":"json"}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_ropa","x-rivier-graphql":"Query.complianceRopaGet","x-rivier-sdk":"compliance.ropa.get","x-rivier-cli":"compliance ropa get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/ropa/activities":{"post":{"operationId":"compliance.ropaActivity.add","summary":"Add a processing activity the generator cannot see.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_compliance_ropa_add","x-rivier-graphql":"Mutation.complianceRopaActivityAdd","x-rivier-sdk":"compliance.ropaActivity.add","x-rivier-cli":"compliance ropa activity add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":160},"purpose":{"type":"string","minLength":2,"maxLength":400},"dataSubjects":{"type":"string","minLength":2,"maxLength":200},"dataCategories":{"type":"array","items":{"type":"string","maxLength":120},"maxItems":30},"specialCategories":{"type":"array","items":{"type":"string","maxLength":120},"maxItems":10,"default":[]},"lawfulBasis":{"type":"string","minLength":2,"maxLength":300},"recipients":{"type":"array","items":{"type":"string","maxLength":160},"maxItems":30,"default":[]},"transfers":{"type":"string","maxLength":300,"default":"none"},"retention":{"type":"string","maxLength":200,"default":"not set"},"security":{"type":"string","maxLength":500,"default":"Access control per person and role; tenant isolation; encryption in transit; secrets sealed; audit log of actions and refusals; kill switches."}},"required":["name","purpose","dataSubjects","dataCategories","lawfulBasis"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/center/ropa/activities/{id}":{"delete":{"operationId":"compliance.ropaActivity.remove","summary":"Remove an activity the business added.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.ropaActivity.remove","x-rivier-cli":"compliance ropa activity remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/check":{"post":{"operationId":"compliance.check.run","summary":"Check text against the rules in force.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_check","x-rivier-graphql":"Query.complianceCheckRun","x-rivier-sdk":"compliance.check.run","x-rivier-cli":"compliance check run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/controls":{"get":{"operationId":"compliance.control.list","summary":"The controls a pack enforces.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.complianceControlList","x-rivier-sdk":"compliance.control.list","x-rivier-cli":"compliance control list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/events":{"get":{"operationId":"compliance.event.list","summary":"What was checked, blocked or relaxed.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.complianceEventList","x-rivier-sdk":"compliance.event.list","x-rivier-cli":"compliance event list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/consent-texts":{"get":{"operationId":"compliance.legalConsent.texts","summary":"Ready-made consent wording for signup, checkout, newsletter forms and the cookie banner, linked to the published documents.","tags":["compliance"],"parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":10}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_legal_consent_texts","x-rivier-graphql":"Query.complianceLegalConsentTexts","x-rivier-sdk":"compliance.legalConsent.texts","x-rivier-cli":"compliance legal consent texts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/diff":{"get":{"operationId":"compliance.legalVersion.diff","summary":"What changed between two versions, section by section.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"from","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"to","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","enum":["en","fr","de","es"]}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_legal_diff","x-rivier-graphql":"Query.complianceLegalVersionDiff","x-rivier-sdk":"compliance.legalVersion.diff","x-rivier-cli":"compliance legal version diff","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions":{"get":{"operationId":"compliance.legalVersion.list","summary":"The versions of one legal document.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}}],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.complianceLegalVersionList","x-rivier-sdk":"compliance.legalVersion.list","x-rivier-cli":"compliance legal version list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"compliance.legalVersion.draft","summary":"Draft a new version of a legal document from the current choices. A draft is never public.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}}],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_legal_draft","x-rivier-graphql":"Mutation.complianceLegalVersionDraft","x-rivier-sdk":"compliance.legalVersion.draft","x-rivier-cli":"compliance legal version draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changeNote":{"type":"string","maxLength":300},"jurisdictions":{"type":"array","items":{"type":"string","enum":["eu","gb","us","us-ca","ca","qc","br","au"]},"maxItems":12},"mode":{"type":"string","enum":["combined","separate"]},"locales":{"type":"array","items":{"type":"string","enum":["en","fr","de","es"]},"minItems":1,"maxItems":4}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions/{n}":{"get":{"operationId":"compliance.legalVersion.get","summary":"One version with its sections, sources, what is missing and the warnings; HTML and markdown included.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","enum":["en","fr","de","es"]}},{"name":"variant","in":"query","required":false,"schema":{"type":"string","maxLength":20}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_legal_version","x-rivier-graphql":"Query.complianceLegalVersionGet","x-rivier-sdk":"compliance.legalVersion.get","x-rivier-cli":"compliance legal version get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions/{n}/approve":{"post":{"operationId":"compliance.legalVersion.approve","summary":"Approve a draft. A person with the approver role, acknowledging that it is a template and not legal advice.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.legalVersion.approve","x-rivier-cli":"compliance legal version approve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"acknowledgeNotLegalAdvice":{"type":"boolean"},"note":{"type":"string","maxLength":500}},"required":["acknowledgeNotLegalAdvice"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions/{n}/export":{"get":{"operationId":"compliance.legalVersion.export","summary":"A version as HTML, markdown or PDF to download.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["html","markdown","pdf"],"default":"html"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","enum":["en","fr","de","es"]}},{"name":"variant","in":"query","required":false,"schema":{"type":"string","maxLength":20}}],"x-rivier-scope":"compliance:read","x-rivier-sdk":"compliance.legalVersion.export","x-rivier-cli":"compliance legal version export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions/{n}/publish":{"post":{"operationId":"compliance.legalVersion.publish","summary":"Publish an approved version at its public address with an effective date. A person with the manager role.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.legalVersion.publish","x-rivier-cli":"compliance legal version publish","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"acknowledgeNotLegalAdvice":{"type":"boolean"},"effectiveDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["acknowledgeNotLegalAdvice"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions/{n}/review":{"post":{"operationId":"compliance.legalVersion.review","summary":"Put a draft in review: it shows as waiting for the people who approve it. Changes nothing public.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}}],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_legal_request_review","x-rivier-graphql":"Mutation.complianceLegalVersionReview","x-rivier-sdk":"compliance.legalVersion.review","x-rivier-cli":"compliance legal version review","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":1000,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/versions/{n}/sections/{clause}":{"patch":{"operationId":"compliance.legalSection.edit","summary":"Change the wording of one section of a draft; an edit sends an approved version back to draft.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}},{"name":"n","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":10000}},{"name":"clause","in":"path","required":true,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_legal_edit_section","x-rivier-graphql":"Mutation.complianceLegalSectionEdit","x-rivier-sdk":"compliance.legalSection.edit","x-rivier-cli":"compliance legal section edit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"body":{"type":"array","items":{"type":"string","maxLength":4000},"maxItems":40}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/documents/{doc}/withdraw":{"post":{"operationId":"compliance.legalDocument.withdraw","summary":"Take a published legal document down.","tags":["compliance"],"parameters":[{"name":"doc","in":"path","required":true,"schema":{"type":"string","enum":["privacy","terms","cookies","security","dpa","providers","accessibility","cancellation","returns","shipping","acceptable_use","ai_disclosure","disclaimer"]}}],"x-rivier-scope":"compliance:write","x-rivier-sdk":"compliance.legalDocument.withdraw","x-rivier-cli":"compliance legal document withdraw","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/settings":{"get":{"operationId":"compliance.legalSettings.get","summary":"The jurisdictions, features, details and languages the legal documents are built from.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_legal_settings","x-rivier-graphql":"Query.complianceLegalSettingsGet","x-rivier-sdk":"compliance.legalSettings.get","x-rivier-cli":"compliance legal settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"compliance.legalSettings.update","summary":"Choose jurisdictions and fill in the details the documents need. Never publishes anything.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_legal_set_details","x-rivier-graphql":"Mutation.complianceLegalSettingsUpdate","x-rivier-sdk":"compliance.legalSettings.update","x-rivier-cli":"compliance legal settings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jurisdictions":{"type":"array","items":{"type":"string","enum":["eu","gb","us","us-ca","ca","qc","br","au"]},"maxItems":12},"mode":{"type":"string","enum":["combined","separate"]},"locales":{"type":"array","items":{"type":"string","enum":["en","fr","de","es"]},"minItems":1,"maxItems":4},"answers":{"type":"object","properties":{"entity":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"address":{"type":"string","minLength":1,"maxLength":400},"email":{"type":"string","format":"email","maxLength":200},"phone":{"type":"string","minLength":1,"maxLength":60},"registration":{"type":"string","minLength":1,"maxLength":200},"privacyContactName":{"type":"string","minLength":1,"maxLength":200},"brand":{"type":"string","minLength":1,"maxLength":80},"euRepresentative":{"type":"string","minLength":1,"maxLength":400}},"additionalProperties":false,"default":{}},"dpo":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":200}},"additionalProperties":false,"default":{}},"site":{"type":"object","properties":{"url":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false,"default":{}},"minAge":{"type":"integer","minimum":5,"maximum":21,"default":16},"payment":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":120,"default":"third-party payment provider"}},"additionalProperties":false,"default":{"label":"third-party payment provider"}},"retention":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","minLength":1,"maxLength":120},"period":{"type":"string","minLength":1,"maxLength":200}},"required":["category","period"],"additionalProperties":false},"maxItems":40,"default":[]},"processors":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","minLength":1,"maxLength":120},"purpose":{"type":"string","minLength":1,"maxLength":300},"name":{"type":"string","minLength":1,"maxLength":120},"named":{"type":"boolean","default":false},"country":{"type":"string","minLength":1,"maxLength":80},"safeguard":{"type":"string","minLength":1,"maxLength":200}},"required":["category","purpose"],"additionalProperties":false},"maxItems":60,"default":[]},"cookies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"category":{"type":"string","enum":["necessary","preferences","analytics","marketing"]},"purpose":{"type":"string","minLength":1,"maxLength":300},"duration":{"type":"string","minLength":1,"maxLength":80},"provider":{"type":"string","minLength":1,"maxLength":120}},"required":["name","category","purpose","duration"],"additionalProperties":false},"maxItems":200,"default":[]},"returns":{"type":"object","properties":{"days":{"type":"integer","minimum":0,"maximum":365},"costs":{"type":"string","minLength":1,"maxLength":500},"refundDays":{"type":"integer","minimum":0,"maximum":120},"bookingTerms":{"type":"string","minLength":1,"maxLength":1500}},"additionalProperties":false,"default":{}},"shipping":{"type":"object","properties":{"regions":{"type":"string","minLength":1,"maxLength":500},"times":{"type":"string","minLength":1,"maxLength":500},"costs":{"type":"string","minLength":1,"maxLength":500}},"additionalProperties":false,"default":{}},"terms":{"type":"object","properties":{"governingLaw":{"type":"string","minLength":1,"maxLength":120},"courts":{"type":"string","minLength":1,"maxLength":200}},"additionalProperties":false,"default":{}},"service":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"hosting":{"type":"string","minLength":1,"maxLength":800},"trialDays":{"type":"integer","minimum":0,"maximum":365},"readOnlyDays":{"type":"integer","minimum":0,"maximum":3650},"refundPolicy":{"type":"string","minLength":1,"maxLength":1200},"billingEmail":{"type":"string","format":"email","maxLength":200},"trialTerms":{"type":"string","minLength":1,"maxLength":1200}},"additionalProperties":false,"default":{}},"security":{"type":"object","properties":{"reportEmail":{"type":"string","format":"email","maxLength":200}},"additionalProperties":false,"default":{}},"dpa":{"type":"object","properties":{"noticeDays":{"type":"integer","minimum":1,"maximum":180},"transfers":{"type":"string","minLength":1,"maxLength":1500}},"additionalProperties":false,"default":{}},"providers":{"type":"object","properties":{"namingNote":{"type":"string","minLength":1,"maxLength":800}},"additionalProperties":false,"default":{}},"accessibility":{"type":"object","properties":{"standard":{"type":"string","minLength":1,"maxLength":80},"status":{"type":"string","minLength":1,"maxLength":1500},"known":{"type":"string","minLength":1,"maxLength":1500},"email":{"type":"string","format":"email","maxLength":200}},"additionalProperties":false,"default":{}},"ai":{"type":"object","properties":{"training":{"type":"string","minLength":1,"maxLength":1200}},"additionalProperties":false,"default":{}}},"additionalProperties":false},"features":{"type":"array","items":{"type":"string","enum":["cookie_consent","analytics","email_campaigns","payments","shop","bookings","ai_assistant","user_accounts","uploads","contact_forms","sms","advertising_cookies","cookieless_analytics","cookie_list"]}},"featuresOff":{"type":"array","items":{"type":"string","enum":["cookie_consent","analytics","email_campaigns","payments","shop","bookings","ai_assistant","user_accounts","uploads","contact_forms","sms","advertising_cookies","cookieless_analytics","cookie_list"]}},"business":{"type":"array","items":{"type":"string","enum":["ecommerce","hotel","bookings","newsletter","accounts","services","saas"]}},"sensitive":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"minors":{"type":"boolean"},"siteBase":{"type":"string","format":"uri","maxLength":200},"cookieSource":{"type":"string","enum":["widget","declared"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/status":{"get":{"operationId":"compliance.legalStatus.get","summary":"Every legal document: what is published, what is open, and which need an update and why.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_legal_status","x-rivier-graphql":"Query.complianceLegalStatusGet","x-rivier-sdk":"compliance.legalStatus.get","x-rivier-cli":"compliance legal status get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/legal/wizard":{"get":{"operationId":"compliance.legalWizard.get","summary":"What the legal documents still need: jurisdictions (with a recommendation), the questions that are open and what is prefilled.","tags":["compliance"],"parameters":[{"name":"docs","in":"query","required":false,"schema":{"type":"string","maxLength":200}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_legal_wizard","x-rivier-graphql":"Query.complianceLegalWizardGet","x-rivier-sdk":"compliance.legalWizard.get","x-rivier-cli":"compliance legal wizard get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/packs":{"get":{"operationId":"compliance.pack.list","summary":"Rule packs.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_packs","x-rivier-graphql":"Query.compliancePackList","x-rivier-sdk":"compliance.pack.list","x-rivier-cli":"compliance pack list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"compliance.pack.create","summary":"Add a rule pack.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.compliancePackCreate","x-rivier-sdk":"compliance.pack.create","x-rivier-cli":"compliance pack create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/packs/sync":{"post":{"operationId":"compliance.pack.sync","summary":"Sync packs from the library.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.compliancePackSync","x-rivier-sdk":"compliance.pack.sync","x-rivier-cli":"compliance pack sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/packs/{id}":{"get":{"operationId":"compliance.pack.get","summary":"One rule pack.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.compliancePackGet","x-rivier-sdk":"compliance.pack.get","x-rivier-cli":"compliance pack get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/packs/{id}/diff":{"get":{"operationId":"compliance.pack.diff","summary":"What changed between two versions.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.compliancePackDiff","x-rivier-sdk":"compliance.pack.diff","x-rivier-cli":"compliance pack diff","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/packs/{id}/versions":{"get":{"operationId":"compliance.pack.versions","summary":"A pack's versions.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"compliance:read","x-rivier-graphql":"Query.compliancePackVersions","x-rivier-sdk":"compliance.pack.versions","x-rivier-cli":"compliance pack versions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/profile":{"get":{"operationId":"compliance.profile.get","summary":"Jurisdictions and audience the project is held to.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_profile","x-rivier-graphql":"Query.complianceProfileGet","x-rivier-sdk":"compliance.profile.get","x-rivier-cli":"compliance profile get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"compliance.profile.set","summary":"Set jurisdictions and audience.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_compliance_set_profile","x-rivier-graphql":"Mutation.complianceProfileSet","x-rivier-sdk":"compliance.profile.set","x-rivier-cli":"compliance profile set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/relaxations":{"get":{"operationId":"compliance.relaxation.list","summary":"Rules a person relaxed, with the reason.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_relaxations","x-rivier-graphql":"Query.complianceRelaxationList","x-rivier-sdk":"compliance.relaxation.list","x-rivier-cli":"compliance relaxation list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"compliance.relaxation.create","summary":"Relax a rule with a recorded reason.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.complianceRelaxationCreate","x-rivier-sdk":"compliance.relaxation.create","x-rivier-cli":"compliance relaxation create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/relaxations/assess":{"post":{"operationId":"compliance.relaxation.assess","summary":"What relaxing a rule would allow.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.complianceRelaxationAssess","x-rivier-sdk":"compliance.relaxation.assess","x-rivier-cli":"compliance relaxation assess","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/relaxations/{id}":{"delete":{"operationId":"compliance.relaxation.delete","summary":"Delete a relaxation.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.complianceRelaxationDelete","x-rivier-sdk":"compliance.relaxation.delete","x-rivier-cli":"compliance relaxation delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/relaxations/{id}/reactivate":{"post":{"operationId":"compliance.relaxation.reactivate","summary":"Put a relaxed rule back in force.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.complianceRelaxationReactivate","x-rivier-sdk":"compliance.relaxation.reactivate","x-rivier-cli":"compliance relaxation reactivate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/compliance/report":{"get":{"operationId":"compliance.report.get","summary":"What is compliant and what is not.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_compliance_report","x-rivier-graphql":"Query.complianceReportGet","x-rivier-sdk":"compliance.report.get","x-rivier-cli":"compliance report get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connected-businesses":{"post":{"operationId":"workspace.connectedBusiness.create","summary":"Ask the owner of a business to connect it to this platform: name it, give their address and the scopes the platform asks for. They are mailed an invitation, accept it in their own organisation and choose what the platform may do. the platform hears platform.business.connected, .declined, .granted and .ended.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceConnectedBusinessCreate","x-rivier-sdk":"workspace.connectedBusiness.create","x-rivier-cli":"workspace connected business create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","format":"email","maxLength":254},"scopes":{"type":"array","items":{"type":"string","pattern":"^[a-z]+:(read|write|admin)$"},"minItems":1,"maxItems":30},"ref":{"type":"string","maxLength":120},"language":{"type":"string","maxLength":12}},"required":["name","email","scopes"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"workspace.connectedBusiness.list","summary":"The businesses this platform asked to connect: waiting, connected (with what the host granted), declined, ended or expired. Use a connection's id as x-rivier-business to work inside it.","tags":["workspace"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["invited","active","declined","ended","expired"]}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_connected_businesses","x-rivier-graphql":"Query.workspaceConnectedBusinessList","x-rivier-sdk":"workspace.connectedBusiness.list","x-rivier-cli":"workspace connected business list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connected-businesses/{id}":{"get":{"operationId":"workspace.connectedBusiness.get","summary":"One connection: its status, what was asked and what the host granted.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_connected_business","x-rivier-graphql":"Query.workspaceConnectedBusinessGet","x-rivier-sdk":"workspace.connectedBusiness.get","x-rivier-cli":"workspace connected business get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connected-businesses/{id}/end":{"post":{"operationId":"workspace.connectedBusiness.end","summary":"End a connection: the platform's calls into that business stop at once. The business and everything in it stay with its owner.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceConnectedBusinessEnd","x-rivier-sdk":"workspace.connectedBusiness.end","x-rivier-cli":"workspace connected business end","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connected-businesses/{id}/resend":{"post":{"operationId":"workspace.connectedBusiness.resend","summary":"Send a waiting or expired invitation again; the old link stops working.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceConnectedBusinessResend","x-rivier-sdk":"workspace.connectedBusiness.resend","x-rivier-cli":"workspace connected business resend","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors":{"get":{"operationId":"connectors.connector.list","summary":"The connectors this deployment carries and what each can do.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-mcp":"rivier_connectors","x-rivier-graphql":"Query.connectorsConnectorList","x-rivier-sdk":"connectors.connector.list","x-rivier-cli":"connectors connector list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/admin/seal":{"post":{"operationId":"connectors.seal.create","summary":"Seal a secret for the vault.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsSealCreate","x-rivier-sdk":"connectors.seal.create","x-rivier-cli":"connectors seal create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/agents":{"get":{"operationId":"connectors.agent.list","summary":"What each agent may do through connectors.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsAgentList","x-rivier-sdk":"connectors.agent.list","x-rivier-cli":"connectors agent list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/agents/{id}":{"put":{"operationId":"connectors.agent.set","summary":"Set what an agent may do.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsAgentSet","x-rivier-sdk":"connectors.agent.set","x-rivier-cli":"connectors agent set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"connectors.agent.remove","summary":"Remove an agent's permissions.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsAgentRemove","x-rivier-sdk":"connectors.agent.remove","x-rivier-cli":"connectors agent remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/alerts":{"get":{"operationId":"connectors.alert.list","summary":"Connections that need attention.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsAlertList","x-rivier-sdk":"connectors.alert.list","x-rivier-cli":"connectors alert list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/approvals":{"get":{"operationId":"connectors.approval.list","summary":"Actions waiting for a person's yes.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-mcp":"rivier_approvals","x-rivier-graphql":"Query.connectorsApprovalList","x-rivier-sdk":"connectors.approval.list","x-rivier-cli":"connectors approval list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/approvals/{id}/approve":{"post":{"operationId":"connectors.approval.approve","summary":"Approve a waiting action.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsApprovalApprove","x-rivier-sdk":"connectors.approval.approve","x-rivier-cli":"connectors approval approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/approvals/{id}/decline":{"post":{"operationId":"connectors.approval.decline","summary":"Decline a waiting action.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsApprovalDecline","x-rivier-sdk":"connectors.approval.decline","x-rivier-cli":"connectors approval decline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/audit":{"get":{"operationId":"connectors.audit.list","summary":"What was done through connectors.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-mcp":"rivier_audit","x-rivier-graphql":"Query.connectorsAuditList","x-rivier-sdk":"connectors.audit.list","x-rivier-cli":"connectors audit list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/brands":{"get":{"operationId":"connectors.brand.list","summary":"The brands.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-mcp":"rivier_brands","x-rivier-graphql":"Query.connectorsBrandList","x-rivier-sdk":"connectors.brand.list","x-rivier-cli":"connectors brand list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"connectors.brand.create","summary":"Add a brand.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsBrandCreate","x-rivier-sdk":"connectors.brand.create","x-rivier-cli":"connectors brand create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/brands/{slug}":{"get":{"operationId":"connectors.brand.get","summary":"One brand.","tags":["connectors"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsBrandGet","x-rivier-sdk":"connectors.brand.get","x-rivier-cli":"connectors brand get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"connectors.brand.update","summary":"Change a brand.","tags":["connectors"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsBrandUpdate","x-rivier-sdk":"connectors.brand.update","x-rivier-cli":"connectors brand update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"connectors.brand.delete","summary":"Delete a brand.","tags":["connectors"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsBrandDelete","x-rivier-sdk":"connectors.brand.delete","x-rivier-cli":"connectors brand delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/call/{connector}/{tool}":{"post":{"operationId":"connectors.tool.call","summary":"Call one connector tool (dry run by default for changes).","tags":["connectors"],"parameters":[{"name":"connector","in":"path","required":true,"schema":{"type":"string"}},{"name":"tool","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsToolCall","x-rivier-sdk":"connectors.tool.call","x-rivier-cli":"connectors tool call","x-rivier-events":["connectors.tool.called"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections":{"get":{"operationId":"connectors.connection.listAll","summary":"The connections to outside accounts.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsConnectionListAll","x-rivier-sdk":"connectors.connection.listAll","x-rivier-cli":"connectors connection list all","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"connectors.connection.connect","summary":"Connect an account.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionConnect","x-rivier-sdk":"connectors.connection.connect","x-rivier-cli":"connectors connection connect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/sealed":{"post":{"operationId":"connectors.connection.seal","summary":"Connect with an already-sealed credential.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionSeal","x-rivier-sdk":"connectors.connection.seal","x-rivier-cli":"connectors connection seal","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}":{"delete":{"operationId":"connectors.connection.remove","summary":"Disconnect an account.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionRemove","x-rivier-sdk":"connectors.connection.remove","x-rivier-cli":"connectors connection remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/disable":{"post":{"operationId":"connectors.connection.disable","summary":"Switch a connection off.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionDisable","x-rivier-sdk":"connectors.connection.disable","x-rivier-cli":"connectors connection disable","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/enable":{"post":{"operationId":"connectors.connection.enable","summary":"Switch a connection on.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionEnable","x-rivier-sdk":"connectors.connection.enable","x-rivier-cli":"connectors connection enable","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/health":{"get":{"operationId":"connectors.connection.health","summary":"Whether a connection still works.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsConnectionHealth","x-rivier-sdk":"connectors.connection.health","x-rivier-cli":"connectors connection health","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/reconcile":{"get":{"operationId":"connectors.connection.reconcile","summary":"Compare what we hold with the provider.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsConnectionReconcile","x-rivier-sdk":"connectors.connection.reconcile","x-rivier-cli":"connectors connection reconcile","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/rename":{"post":{"operationId":"connectors.connection.rename","summary":"Rename a connection.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionRename","x-rivier-sdk":"connectors.connection.rename","x-rivier-cli":"connectors connection rename","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/rotate":{"post":{"operationId":"connectors.connection.rotate","summary":"Replace a connection's credential.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionRotate","x-rivier-sdk":"connectors.connection.rotate","x-rivier-cli":"connectors connection rotate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/settings":{"post":{"operationId":"connectors.connection.settings","summary":"Change a connection's non-secret settings.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionSettings","x-rivier-sdk":"connectors.connection.settings","x-rivier-cli":"connectors connection settings","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/sync":{"post":{"operationId":"connectors.connection.sync","summary":"Pull the provider's inventory now.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionSync","x-rivier-sdk":"connectors.connection.sync","x-rivier-cli":"connectors connection sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/connections/{id}/transport":{"post":{"operationId":"connectors.connection.transport","summary":"Choose how a connection reaches the provider.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionTransport","x-rivier-sdk":"connectors.connection.transport","x-rivier-cli":"connectors connection transport","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/inventory":{"get":{"operationId":"connectors.inventory.list","summary":"Everything connected, in one list.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-mcp":"rivier_inventory","x-rivier-graphql":"Query.connectorsInventoryList","x-rivier-sdk":"connectors.inventory.list","x-rivier-cli":"connectors inventory list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/inventory/changes/{id}/apply":{"post":{"operationId":"connectors.inventory.apply","summary":"Apply a proposed change.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsInventoryApply","x-rivier-sdk":"connectors.inventory.apply","x-rivier-cli":"connectors inventory apply","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/inventory/changes/{id}/reject":{"post":{"operationId":"connectors.inventory.reject","summary":"Reject a proposed change.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsInventoryReject","x-rivier-sdk":"connectors.inventory.reject","x-rivier-cli":"connectors inventory reject","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/inventory/{connectionId}/{itemId}":{"put":{"operationId":"connectors.inventory.set","summary":"Change an inventory item.","tags":["connectors"],"parameters":[{"name":"connectionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"itemId","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsInventorySet","x-rivier-sdk":"connectors.inventory.set","x-rivier-cli":"connectors inventory set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/kill":{"post":{"operationId":"connectors.kill.set","summary":"Stop all outward actions at once.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsKillSet","x-rivier-sdk":"connectors.kill.set","x-rivier-cli":"connectors kill set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/media":{"post":{"operationId":"connectors.media.upload","summary":"Host a media file so a network can fetch it.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-sdk":"connectors.media.upload","x-rivier-cli":"connectors media upload","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/oauth/start":{"post":{"operationId":"connectors.oauth.start","summary":"Begin connecting an account by sign-in.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsOauthStart","x-rivier-sdk":"connectors.oauth.start","x-rivier-cli":"connectors oauth start","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/portfolio/approvals":{"get":{"operationId":"connectors.approval.portfolio","summary":"Waiting approvals across the organisation's projects.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsApprovalPortfolio","x-rivier-sdk":"connectors.approval.portfolio","x-rivier-cli":"connectors approval portfolio","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/portfolio/audit":{"get":{"operationId":"connectors.audit.portfolio","summary":"The audit across the organisation's projects.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsAuditPortfolio","x-rivier-sdk":"connectors.audit.portfolio","x-rivier-cli":"connectors audit portfolio","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/settings":{"get":{"operationId":"connectors.settings.get","summary":"Connector policy for the project.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsSettingsGet","x-rivier-sdk":"connectors.settings.get","x-rivier-cli":"connectors settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"connectors.settings.update","summary":"Change connector policy.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsSettingsUpdate","x-rivier-sdk":"connectors.settings.update","x-rivier-cli":"connectors settings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/connectors/tools":{"get":{"operationId":"connectors.tool.list","summary":"Every connector tool with its input, effect and approval default.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsToolList","x-rivier-sdk":"connectors.tool.list","x-rivier-cli":"connectors tool list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/agents":{"get":{"operationId":"inbox.contactCentreAgent.list","summary":"Desk agents: people and AI agents, with skills, presence and how many conversations each can hold.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxContactCentreAgentList","x-rivier-sdk":"desk.agents.list","x-rivier-cli":"desk agents","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.contactCentreAgent.create","summary":"Add an agent to the desk (a person's seat or an AI agent).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreAgentCreate","x-rivier-sdk":"desk.agents.create","x-rivier-cli":"desk agent-add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["human","ai"],"description":"A person's seat or an AI agent's"},"name":{"type":"string","minLength":1,"maxLength":80},"userId":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"The signed-in person this seat belongs to"},"skills":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":30},"presence":{"type":"string","enum":["online","away","offline"]},"maxConcurrent":{"type":"integer","minimum":1,"maximum":50}},"required":["kind","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/agents/{id}":{"put":{"operationId":"inbox.contactCentreAgent.update","summary":"Change an agent's name, skills or limit.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreAgentUpdate","x-rivier-sdk":"desk.agents.update","x-rivier-cli":"desk agent-set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["human","ai"],"description":"A person's seat or an AI agent's"},"name":{"type":"string","minLength":1,"maxLength":80},"userId":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"description":"The signed-in person this seat belongs to"},"skills":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":30},"presence":{"type":"string","enum":["online","away","offline"]},"maxConcurrent":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.contactCentreAgent.remove","summary":"Remove an agent with no open conversations.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreAgentRemove","x-rivier-sdk":"desk.agents.remove","x-rivier-cli":"desk agent-remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/agents/{id}/presence":{"post":{"operationId":"inbox.contactCentrePresence.set","summary":"Set an agent online, away or offline. Coming online takes waiting conversations in order.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_presence","x-rivier-graphql":"Mutation.inboxContactCentrePresenceSet","x-rivier-sdk":"desk.presence","x-rivier-cli":"desk presence","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"presence":{"type":"string","enum":["online","away","offline"]}},"required":["presence"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/agents/{id}/stats":{"get":{"operationId":"inbox.contactCentreAgentStats.get","summary":"What one agent has done: conversations handled, open now, average first response, replies and hand-offs. The same for people and AI agents.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_agent_stats","x-rivier-graphql":"Query.inboxContactCentreAgentStatsGet","x-rivier-sdk":"desk.agents.stats","x-rivier-cli":"desk agent-stats","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/canned":{"get":{"operationId":"inbox.contactCentreCanned.list","summary":"Canned replies an agent can insert, with the customer's and the agent's names filled in.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_canned","x-rivier-graphql":"Query.inboxContactCentreCannedList","x-rivier-sdk":"desk.canned.list","x-rivier-cli":"desk canned","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.contactCentreCanned.create","summary":"Add a canned reply.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreCannedCreate","x-rivier-sdk":"desk.canned.create","x-rivier-cli":"desk canned-add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":80},"body":{"type":"string","minLength":1,"maxLength":2000,"description":"Text with {{name}} and {{agent}}"},"queueId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["title","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/canned/{id}":{"put":{"operationId":"inbox.contactCentreCanned.update","summary":"Change a canned reply.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreCannedUpdate","x-rivier-sdk":"desk.canned.update","x-rivier-cli":"desk canned-set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":80},"body":{"type":"string","minLength":1,"maxLength":2000,"description":"Text with {{name}} and {{agent}}"},"queueId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.contactCentreCanned.remove","summary":"Remove a canned reply.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreCannedRemove","x-rivier-sdk":"desk.canned.remove","x-rivier-cli":"desk canned-remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/canned/{id}/render":{"post":{"operationId":"inbox.contactCentreCannedText.create","summary":"A canned reply filled in for one conversation and one agent, ready to send.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreCannedTextCreate","x-rivier-sdk":"desk.canned.render","x-rivier-cli":"desk canned-render","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"conversationId":{"type":"string","format":"uuid"},"agentId":{"type":"string","format":"uuid"}},"required":["conversationId","agentId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations":{"get":{"operationId":"inbox.contactCentreConversation.list","summary":"Conversations, newest first: filter by status, agent, queue or customer.","tags":["inbox"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["queued","assigned","waiting","closed"]}},{"name":"assigneeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"queueId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"customer","in":"query","required":false,"schema":{"type":"string","maxLength":320,"description":"A contact id, number or email address"}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_conversations","x-rivier-graphql":"Query.inboxContactCentreConversationList","x-rivier-sdk":"desk.conversations.list","x-rivier-cli":"desk list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.contactCentreConversation.create","summary":"Open a conversation for a customer. It is matched to a contact by number or email, given service targets from its queue, and routed by skills and load (or to the queue's AI agent first).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_open","x-rivier-graphql":"Mutation.inboxContactCentreConversationCreate","x-rivier-sdk":"desk.conversations.open","x-rivier-cli":"desk open","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","voice","chat"]},"queueId":{"type":"string","format":"uuid"},"customer":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"phone":{"type":"string","maxLength":40},"email":{"type":"string","maxLength":320},"contactId":{"type":"string","format":"uuid"}},"additionalProperties":false},"subject":{"type":"string","maxLength":200},"priority":{"type":"number","enum":[0,1,2,3]},"skills":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":30},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20},"text":{"type":"string","maxLength":4000,"description":"What the customer said first"}},"required":["channel","customer"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}":{"get":{"operationId":"inbox.contactCentreConversation.get","summary":"One conversation with its notes, replies, hand-off state and service-target state.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_conversation","x-rivier-graphql":"Query.inboxContactCentreConversationGet","x-rivier-sdk":"desk.conversations.get","x-rivier-cli":"desk get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/assign":{"post":{"operationId":"inbox.contactCentreConversation.assign","summary":"Give a conversation to an agent.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreConversationAssign","x-rivier-sdk":"desk.conversations.assign","x-rivier-cli":"desk assign","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"}},"required":["agentId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/close":{"post":{"operationId":"inbox.contactCentreConversation.close","summary":"Close a conversation, with how it was resolved. A customer who writes again reopens it.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_close","x-rivier-graphql":"Mutation.inboxContactCentreConversationClose","x-rivier-sdk":"desk.conversations.close","x-rivier-cli":"desk close","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","minLength":1,"maxLength":100},"resolution":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/composer":{"get":{"operationId":"inbox.contactCentreComposer.get","summary":"What a reply to this conversation needs: whether it can go now and why not, the channel's limit, the WhatsApp 24-hour window and approved templates, whether it is quiet hours where the customer is, and whether they opted out.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_composer","x-rivier-graphql":"Query.inboxContactCentreComposerGet","x-rivier-sdk":"desk.conversations.composer","x-rivier-cli":"desk composer","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/handoff":{"post":{"operationId":"inbox.contactCentreHandoff.create","summary":"Hand a conversation over. To a person: at once, back into the queue. To an AI agent: waits until a person approves.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_handoff","x-rivier-graphql":"Mutation.inboxContactCentreHandoffCreate","x-rivier-sdk":"desk.conversations.handoff","x-rivier-cli":"desk handoff","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid","description":"The seat handing over"},"to":{"type":"string","enum":["human","ai"]},"reason":{"type":"string","maxLength":300},"toAgentId":{"type":"string","format":"uuid","description":"The AI agent to hand to"}},"required":["agentId","to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/handoff/decision":{"post":{"operationId":"inbox.contactCentreHandoffDecision.create","summary":"A person approves or declines a hand-off to an AI agent. An agent's own approval is refused.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreHandoffDecisionCreate","x-rivier-sdk":"desk.conversations.decideHandoff","x-rivier-cli":"desk handoff-decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"approve":{"type":"boolean"}},"required":["approve"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/notes":{"post":{"operationId":"inbox.contactCentreNote.create","summary":"Add an internal note the customer never sees.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_note","x-rivier-graphql":"Mutation.inboxContactCentreNoteCreate","x-rivier-sdk":"desk.conversations.note","x-rivier-cli":"desk note","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","minLength":1,"maxLength":100},"text":{"type":"string","minLength":1,"maxLength":4000}},"required":["agentId","text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/release":{"post":{"operationId":"inbox.contactCentreConversation.release","summary":"Put a conversation back in its queue.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreConversationRelease","x-rivier-sdk":"desk.conversations.release","x-rivier-cli":"desk release","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/reply":{"post":{"operationId":"inbox.contactCentreReply.create","summary":"Reply to the customer on the conversation's channel as the agent it is with: a mail, a text, a WhatsApp message (a template when the 24-hour window is closed), a requested call back, or a web chat message. Each goes through the channel's own checks, consent and plan allowance, and is refused with the reason and the next step.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_reply","x-rivier-graphql":"Mutation.inboxContactCentreReplyCreate","x-rivier-sdk":"desk.conversations.reply","x-rivier-cli":"desk reply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"text":{"type":"string","maxLength":4000,"default":"","description":"What to send. For a WhatsApp template the text may be empty: the template is filled in"},"templateId":{"type":"string","maxLength":100,"description":"A WhatsApp template, required when the 24-hour window is closed"},"variables":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"propertyNames":{"maxLength":40},"description":"Values for the template's placeholders, keyed 1, 2 and so on"},"purpose":{"type":"string","enum":["service","marketing"],"description":"Marketing needs the person's recorded agreement and waits out quiet hours"}},"required":["agentId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/tags":{"put":{"operationId":"inbox.contactCentreConversation.tag","summary":"Set a conversation's tags.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreConversationTag","x-rivier-sdk":"desk.conversations.tag","x-rivier-cli":"desk tag","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}},"required":["tags"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/conversations/{id}/timeline":{"get":{"operationId":"inbox.contactCentreTimeline.get","summary":"Everything with this customer in one list: messages, mail, calls, the contact's timeline, and the desk's replies and notes.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":300}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_timeline","x-rivier-graphql":"Query.inboxContactCentreTimelineGet","x-rivier-sdk":"desk.conversations.timeline","x-rivier-cli":"desk timeline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/customers/history":{"get":{"operationId":"inbox.contactCentreHistory.get","summary":"Calls, messages and mail with one customer, by contact id, number or email address, newest first.","tags":["inbox"],"parameters":[{"name":"contactId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"phone","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"email","in":"query","required":false,"schema":{"type":"string","maxLength":320}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":300}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_customer_history","x-rivier-graphql":"Query.inboxContactCentreHistoryGet","x-rivier-sdk":"desk.history","x-rivier-cli":"desk history","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/measure":{"post":{"operationId":"inbox.contactCentreMeasure.create","summary":"How a text is counted by the carrier: characters, encoding (GSM-7 or UCS-2) and the number of parts it becomes.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_cc_measure","x-rivier-graphql":"Mutation.inboxContactCentreMeasureCreate","x-rivier-sdk":"desk.measure","x-rivier-cli":"desk measure","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":4000}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/overview":{"get":{"operationId":"inbox.contactCentreOverview.get","summary":"The supervisor view: per queue, how many wait, the longest wait and how many are at risk or past their target; per agent, presence and load.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_overview","x-rivier-graphql":"Query.inboxContactCentreOverviewGet","x-rivier-sdk":"desk.overview","x-rivier-cli":"desk overview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/queues":{"get":{"operationId":"inbox.contactCentreQueue.list","summary":"Queues with the skills they need, the channels they take and their service targets.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxContactCentreQueueList","x-rivier-sdk":"desk.queues.list","x-rivier-cli":"desk queues","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.contactCentreQueue.create","summary":"Create a queue: skills needed, channels, first-response and resolution targets, and an optional AI agent that answers first.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreQueueCreate","x-rivier-sdk":"desk.queues.create","x-rivier-cli":"desk queue-add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"skills":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":30,"description":"Skills an agent needs to be given a conversation from this queue"},"channels":{"type":"array","items":{"type":"string","enum":["email","sms","whatsapp","voice","chat"]},"minItems":1,"maxItems":5},"firstResponseSeconds":{"type":"integer","minimum":60,"maximum":604800},"resolveSeconds":{"type":"integer","minimum":300,"maximum":2592000},"aiAgentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"An AI agent that answers first"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/queues/{id}":{"put":{"operationId":"inbox.contactCentreQueue.update","summary":"Change a queue.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreQueueUpdate","x-rivier-sdk":"desk.queues.update","x-rivier-cli":"desk queue-set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"skills":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":30,"description":"Skills an agent needs to be given a conversation from this queue"},"channels":{"type":"array","items":{"type":"string","enum":["email","sms","whatsapp","voice","chat"]},"minItems":1,"maxItems":5},"firstResponseSeconds":{"type":"integer","minimum":60,"maximum":604800},"resolveSeconds":{"type":"integer","minimum":300,"maximum":2592000},"aiAgentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"An AI agent that answers first"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.contactCentreQueue.remove","summary":"Remove a queue with no open conversations.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxContactCentreQueueRemove","x-rivier-sdk":"desk.queues.remove","x-rivier-cli":"desk queue-remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contact-centre/traces":{"get":{"operationId":"inbox.contactCentreTrace.list","summary":"The per-agent trace: what each agent did and when, for people and AI agents alike. Filter by agent or conversation.","tags":["inbox"],"parameters":[{"name":"agentId","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"conversationId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_cc_traces","x-rivier-graphql":"Query.inboxContactCentreTraceList","x-rivier-sdk":"desk.traces","x-rivier-cli":"desk traces","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contacts/lookup":{"post":{"operationId":"contacts.person.lookup","summary":"Find or create the contact for a phone, address or handle.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsPersonLookup","x-rivier-sdk":"contacts.person.lookup","x-rivier-cli":"contacts person lookup","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["phone","email","messaging","chat","name"]},"value":{"type":"string","minLength":1,"maxLength":200}},"required":["kind","value"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contacts/{id}":{"get":{"operationId":"contacts.person.get","summary":"One contact with its identities.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsPersonGet","x-rivier-sdk":"contacts.person.get","x-rivier-cli":"contacts person get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/contacts/{id}/identities":{"post":{"operationId":"contacts.identity.attach","summary":"Attach another identity to a contact.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsIdentityAttach","x-rivier-sdk":"contacts.identity.attach","x-rivier-cli":"contacts identity attach","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["phone","email","messaging","chat","name"]},"value":{"type":"string","minLength":1,"maxLength":200}},"required":["kind","value"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/content-access/{entryId}":{"get":{"operationId":"content.access.get","summary":"Who may read a page and how much of it everyone sees.","tags":["content"],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.access.get","x-rivier-cli":"content access get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"content.access.set","summary":"Set who may read a page: free, members, paid (named tiers), metered (free reads per month) or preview (the first blocks).","tags":["content"],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.access.set","x-rivier-cli":"content access set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["free","members","paid","metered","preview"]},"tierIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"teaserBlocks":{"type":"integer","minimum":0,"maximum":50,"default":2},"meterFree":{"type":"integer","minimum":0,"maximum":100,"default":3}},"required":["mode"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/content/publish-due":{"post":{"operationId":"content.run.publishDue","summary":"Publish approved items that are due.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentRunPublishDue","x-rivier-sdk":"content.run.publishDue","x-rivier-cli":"content run publish due","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/content/run-plans":{"post":{"operationId":"content.run.plans","summary":"Run due content plans now.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentRunPlans","x-rivier-sdk":"content.run.plans","x-rivier-cli":"content run plans","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/conversations/{id}/timeline":{"get":{"operationId":"inbox.conversation.timeline","summary":"Everything said in a conversation across channels.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxConversationTimeline","x-rivier-sdk":"inbox.conversation.timeline","x-rivier-cli":"inbox conversation timeline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"timeline":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string"},"refTable":{"type":"string"},"refId":{"type":"string"},"at":{"type":"string"}},"required":["channel","refTable","refId","at"],"additionalProperties":false}}},"required":["timeline"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/creative/generations":{"get":{"operationId":"files.creative.list","summary":"Pictures and clips asked for, newest first, with their state: running, ready, refused or failed.","tags":["files"],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["image","video"]}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["running","ready","refused","failed"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_creative_generation_list","x-rivier-graphql":"Query.filesCreativeList","x-rivier-sdk":"files.creative.list","x-rivier-cli":"files creative list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"generations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["image","video"]},"state":{"type":"string","enum":["running","ready","refused","failed"]},"prompt":{"type":"string"},"sentPrompt":{"type":"string"},"purpose":{"type":["string","null"]},"aspect":{"type":["string","null"]},"seed":{"type":["number","null"]},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"message":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","state","prompt","sentPrompt","purpose","aspect","seed","assetId","message","createdBy","createdAt","updatedAt"],"additionalProperties":true}}},"required":["generations"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/creative/generations/{id}":{"get":{"operationId":"files.creative.get","summary":"One generation. A running clip is checked with the provider before the answer, and a finished one is stored in the asset library as a draft for review.","tags":["files"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_creative_generation_get","x-rivier-graphql":"Query.filesCreativeGet","x-rivier-sdk":"files.creative.get","x-rivier-cli":"files creative get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["image","video"]},"state":{"type":"string","enum":["running","ready","refused","failed"]},"prompt":{"type":"string"},"sentPrompt":{"type":"string"},"purpose":{"type":["string","null"]},"aspect":{"type":["string","null"]},"seed":{"type":["number","null"]},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"message":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","state","prompt","sentPrompt","purpose","aspect","seed","assetId","message","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/creative/images":{"post":{"operationId":"files.creative.image","summary":"Generate a picture from a description. The brand kit is applied, the plan allowance is checked first, and the result is saved in the asset library as an AI-generated draft waiting for review. Answers 409 not_configured when no picture model is connected, and 422 safety_refusal when the provider declines the description.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_creative_image_generate","x-rivier-graphql":"Mutation.filesCreativeImage","x-rivier-sdk":"files.creative.image","x-rivier-cli":"files creative image","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":2000,"description":"What the picture should show."},"aspect":{"type":"string","enum":["square","landscape","portrait","wide","tall"],"description":"The shape: square, landscape, portrait, wide or tall."},"seed":{"type":"integer","minimum":0,"maximum":4294967295},"purpose":{"type":"string","maxLength":80,"description":"Where it will be used, for example a campaign or a page; kept as a tag on the asset."},"modelId":{"type":"string","maxLength":80},"useBrandKit":{"type":"boolean","description":"Apply the project's brand colours and style to the description. On unless false."}},"required":["prompt"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["image","video"]},"state":{"type":"string","enum":["running","ready","refused","failed"]},"prompt":{"type":"string"},"sentPrompt":{"type":"string"},"purpose":{"type":["string","null"]},"aspect":{"type":["string","null"]},"seed":{"type":["number","null"]},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"message":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","state","prompt","sentPrompt","purpose","aspect","seed","assetId","message","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/creative/status":{"get":{"operationId":"files.creative.status","summary":"Whether picture and video generation are connected for this project, and whether the plan allowance has room for one more of each.","tags":["files"],"parameters":[],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_creative_status","x-rivier-graphql":"Query.filesCreativeStatus","x-rivier-sdk":"files.creative.status","x-rivier-cli":"files creative status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"object","properties":{"connected":{"type":"boolean"},"model":{"type":["string","null"]},"allowed":{"type":"boolean"},"reason":{"type":"string"}},"required":["connected","model","allowed"],"additionalProperties":false},"video":{"type":"object","properties":{"connected":{"type":"boolean"},"model":{"type":["string","null"]},"allowed":{"type":"boolean"},"reason":{"type":"string"}},"required":["connected","model","allowed"],"additionalProperties":false}},"required":["image","video"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/creative/videos":{"post":{"operationId":"files.creative.video","summary":"Start a short clip from a description. A clip takes minutes: the answer is a running generation; read it until it is ready, and the clip is then in the asset library as an AI-generated draft waiting for review.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_creative_video_generate","x-rivier-graphql":"Mutation.filesCreativeVideo","x-rivier-sdk":"files.creative.video","x-rivier-cli":"files creative video","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":2000,"description":"What the clip should show."},"purpose":{"type":"string","maxLength":80},"modelId":{"type":"string","maxLength":80},"useBrandKit":{"type":"boolean"}},"required":["prompt"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["image","video"]},"state":{"type":"string","enum":["running","ready","refused","failed"]},"prompt":{"type":"string"},"sentPrompt":{"type":"string"},"purpose":{"type":["string","null"]},"aspect":{"type":["string","null"]},"seed":{"type":["number","null"]},"assetId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"message":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","state","prompt","sentPrompt","purpose","aspect","seed","assetId","message","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/credit-notes/{id}/issue":{"post":{"operationId":"shop.creditNote.issue","summary":"Issue a credit note: it is numbered and reduces what the invoice is owed.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.creditNote.issue","x-rivier-cli":"shop credit note issue","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/credit-notes/{id}/reject":{"post":{"operationId":"shop.creditNote.reject","summary":"Reject a credit note request.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.creditNote.reject","x-rivier-cli":"shop credit note reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/campaigns/{id}":{"post":{"operationId":"campaigns.approval.approve","summary":"A person approves exactly this version of a campaign.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:admin","x-rivier-sdk":"campaigns.approval.approve","x-rivier-cli":"campaigns approval approve","x-rivier-events":["campaigns.campaign.approved"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/campaigns/{id}/decline":{"post":{"operationId":"campaigns.approval.decline","summary":"A person sends a campaign back with the reason.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:admin","x-rivier-sdk":"campaigns.approval.decline","x-rivier-cli":"campaigns approval decline","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":3,"maxLength":500}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/flows/{id}":{"post":{"operationId":"campaigns.approval.flow","summary":"A person approves a flow.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:admin","x-rivier-sdk":"campaigns.approval.flow","x-rivier-cli":"campaigns approval flow","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/outreach":{"get":{"operationId":"campaigns.approval.outreachList","summary":"Outreach messages waiting for a person to approve, with the wording the team member wrote.","tags":["campaigns"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["pending","approved","rejected","sent"]}},{"name":"sequenceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsApprovalOutreachList","x-rivier-sdk":"campaigns.approval.outreachList","x-rivier-cli":"campaigns approval outreach list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}},"required":["items"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/outreach/{id}/approve":{"post":{"operationId":"campaigns.approval.outreachApprove","summary":"A person approves an outreach message, optionally with their own subject and wording.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:admin","x-rivier-sdk":"campaigns.approval.outreachApprove","x-rivier-cli":"campaigns approval outreach approve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":5000},"reason":{"type":"string","minLength":3,"maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/outreach/{id}/reject":{"post":{"operationId":"campaigns.approval.outreachReject","summary":"A person turns an outreach message down with the reason; the person leaves the sequence.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:admin","x-rivier-sdk":"campaigns.approval.outreachReject","x-rivier-cli":"campaigns approval outreach reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":5000},"reason":{"type":"string","minLength":3,"maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/approvals/sequences/{id}":{"post":{"operationId":"campaigns.approval.sequence","summary":"A person approves a sequence.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:admin","x-rivier-sdk":"campaigns.approval.sequence","x-rivier-cli":"campaigns approval sequence","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/archive/{kind}":{"get":{"operationId":"contacts.archive.list","summary":"Archived records of a kind, to restore from.","tags":["contacts"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["company","deal","note","task","segment","form","template","campaign","flow"]}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsArchiveList","x-rivier-sdk":"contacts.archive.list","x-rivier-cli":"contacts archive list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/archive/{kind}/{id}":{"post":{"operationId":"contacts.archive.archive","summary":"Take a record out of the lists. Nothing is lost; it can be restored. A person's decision.","tags":["contacts"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["company","deal","note","task","segment","form","template","campaign","flow"]}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsArchiveArchive","x-rivier-sdk":"contacts.archive.archive","x-rivier-cli":"contacts archive archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/bulk":{"post":{"operationId":"contacts.bulk.run","summary":"Change many contacts at once: tag, record consent on the ledger, add to a list, share with the organisation, archive, or move to another project. Starts as a dry run that changes nothing; set dryRun to false to apply. Consent changes need the consent permission; moves are a person's decision.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsBulkRun","x-rivier-sdk":"contacts.bulk.run","x-rivier-cli":"contacts bulk run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"select":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":1000},"segmentId":{"type":"string","format":"uuid"},"tag":{"type":"string","minLength":1,"maxLength":40},"search":{"type":"string","maxLength":200}},"additionalProperties":false},"action":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"tag_add"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":10}},"required":["type","tags"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"tag_remove"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"minItems":1,"maxItems":10}},"required":["type","tags"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"consent"},"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"purpose":{"type":"string","enum":["marketing","service","transactional"],"default":"marketing"},"state":{"type":"string","enum":["granted","withdrawn","denied","pending"]},"source":{"type":"string","minLength":1,"maxLength":120},"proof":{"type":"object","additionalProperties":{}}},"required":["type","channel","state","source"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"list_add"},"list":{"type":"string","minLength":1,"maxLength":60}},"required":["type","list"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"list_remove"},"list":{"type":"string","minLength":1,"maxLength":60}},"required":["type","list"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"share"},"shared":{"type":"boolean"}},"required":["type","shared"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"archive"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"move_to_project"},"toProject":{"type":"string","format":"uuid"},"consent":{"type":"string","enum":["rerequest","carry"],"default":"rerequest"}},"required":["type","toProject"],"additionalProperties":false}]},"dryRun":{"type":"boolean","default":true}},"required":["select","action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/bulk/import/preview":{"post":{"operationId":"contacts.bulkImport.preview","summary":"See what a CSV import would do without importing it (always a dry run). The import itself needs a key with the contacts:admin scope.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsBulkImportPreview","x-rivier-sdk":"contacts.bulkImport.preview","x-rivier-cli":"contacts bulk import preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1,"maxLength":20000000},"mapping":{"type":"object","additionalProperties":{"type":"string","maxLength":60},"propertyNames":{"maxLength":120}},"onExisting":{"type":"string","enum":["skip","fill","overwrite"]}},"required":["csv"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/bulk/recipients":{"post":{"operationId":"contacts.bulkRecipients.compile","summary":"Compile a multi-select of segments, lists, tags and individual contacts, less exclusions, into one audience rule and count it live: matched, able to receive, and without consent.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsBulkRecipientsCompile","x-rivier-sdk":"contacts.bulkRecipients.compile","x-rivier-cli":"contacts bulk recipients compile","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"segmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"lists":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":20},"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20},"excludeSegmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10},"channel":{"type":"string","enum":["email","sms","whatsapp"],"default":"email"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns":{"get":{"operationId":"campaigns.campaign.list","summary":"Campaigns and newsletters.","tags":["campaigns"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"state","in":"query","required":false,"schema":{"type":"string","maxLength":20}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsCampaignList","x-rivier-sdk":"campaigns.campaign.list","x-rivier-cli":"campaigns campaign list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.campaign.create","summary":"Create a campaign as a draft.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignCreate","x-rivier-sdk":"campaigns.campaign.create","x-rivier-cli":"campaigns campaign create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"kind":{"type":"string","enum":["broadcast","newsletter"],"default":"broadcast"},"channel":{"type":"string","enum":["email","sms","whatsapp"],"default":"email"},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"audience":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":20},"excludeSegmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10}},"additionalProperties":false},"content":{"type":"object","properties":{"subject":{"type":"string","maxLength":200,"default":""},"preheader":{"type":"string","maxLength":200},"templateId":{"type":"string","format":"uuid"},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000},"whatsapp":{"type":"object","properties":{"templateId":{"type":"string","minLength":1,"maxLength":80},"variables":{"type":"object","additionalProperties":{"type":"string","maxLength":1000}}},"required":["templateId"],"additionalProperties":false},"cms":{"type":"object","properties":{"type":{"type":"string","maxLength":40},"entryIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"limit":{"type":"integer","minimum":1,"maximum":20},"locale":{"type":"string","maxLength":20}},"additionalProperties":false},"ai":{"type":"object","properties":{"generated":{"type":"boolean"},"model":{"type":"string","maxLength":120},"runId":{"type":"string","maxLength":120},"disclosureLine":{"type":"string","maxLength":300}},"required":["generated"],"additionalProperties":false}},"additionalProperties":false},"from":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"replyTo":{"type":"string","maxLength":320}},"additionalProperties":false},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,9}$"},"subject":{"type":"string","maxLength":200},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000}},"required":["id"],"additionalProperties":false},"minItems":1,"maxItems":4},"ab":{"type":"object","properties":{"testPercent":{"type":"integer","minimum":5,"maximum":50,"default":20},"metric":{"type":"string","enum":["clicks","delivered"],"default":"clicks"},"waitHours":{"type":"number","minimum":1,"maximum":72,"default":4}},"additionalProperties":false},"schedule":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"timezone":{"type":"string","maxLength":60}},"additionalProperties":false},"throttle":{"type":"object","properties":{"perHour":{"type":"integer","minimum":1,"maximum":1000000}},"additionalProperties":false},"recurrence":{"type":"object","properties":{"every":{"type":"string","enum":["day","week","month"]},"at":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"weekday":{"type":"integer","minimum":0,"maximum":6},"dayOfMonth":{"type":"integer","minimum":1,"maximum":28},"timezone":{"type":"string","maxLength":60,"default":"UTC"},"until":{"type":"string","format":"date-time"}},"required":["every","at"],"additionalProperties":false},"tracking":{"type":"object","properties":{"clicks":{"type":"boolean","default":true},"opens":{"type":"boolean","default":false}},"additionalProperties":false}},"required":["name","audience","content"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}":{"get":{"operationId":"campaigns.campaign.get","summary":"One campaign.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsCampaignGet","x-rivier-sdk":"campaigns.campaign.get","x-rivier-cli":"campaigns campaign get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"campaigns.campaign.update","summary":"Change a campaign. Any change takes an approval away.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignUpdate","x-rivier-sdk":"campaigns.campaign.update","x-rivier-cli":"campaigns campaign update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"kind":{"type":"string","enum":["broadcast","newsletter"],"default":"broadcast"},"channel":{"type":"string","enum":["email","sms","whatsapp"],"default":"email"},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"audience":{"type":"object","properties":{"segmentId":{"type":"string","format":"uuid"},"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":20},"excludeSegmentIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":10}},"additionalProperties":false},"content":{"type":"object","properties":{"subject":{"type":"string","maxLength":200,"default":""},"preheader":{"type":"string","maxLength":200},"templateId":{"type":"string","format":"uuid"},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000},"whatsapp":{"type":"object","properties":{"templateId":{"type":"string","minLength":1,"maxLength":80},"variables":{"type":"object","additionalProperties":{"type":"string","maxLength":1000}}},"required":["templateId"],"additionalProperties":false},"cms":{"type":"object","properties":{"type":{"type":"string","maxLength":40},"entryIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"limit":{"type":"integer","minimum":1,"maximum":20},"locale":{"type":"string","maxLength":20}},"additionalProperties":false},"ai":{"type":"object","properties":{"generated":{"type":"boolean"},"model":{"type":"string","maxLength":120},"runId":{"type":"string","maxLength":120},"disclosureLine":{"type":"string","maxLength":300}},"required":["generated"],"additionalProperties":false}},"additionalProperties":false},"from":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"replyTo":{"type":"string","maxLength":320}},"additionalProperties":false},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]{0,9}$"},"subject":{"type":"string","maxLength":200},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000}},"required":["id"],"additionalProperties":false},"minItems":1,"maxItems":4},"ab":{"type":"object","properties":{"testPercent":{"type":"integer","minimum":5,"maximum":50,"default":20},"metric":{"type":"string","enum":["clicks","delivered"],"default":"clicks"},"waitHours":{"type":"number","minimum":1,"maximum":72,"default":4}},"additionalProperties":false},"schedule":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"timezone":{"type":"string","maxLength":60}},"additionalProperties":false},"throttle":{"type":"object","properties":{"perHour":{"type":"integer","minimum":1,"maximum":1000000}},"additionalProperties":false},"recurrence":{"type":"object","properties":{"every":{"type":"string","enum":["day","week","month"]},"at":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"weekday":{"type":"integer","minimum":0,"maximum":6},"dayOfMonth":{"type":"integer","minimum":1,"maximum":28},"timezone":{"type":"string","maxLength":60,"default":"UTC"},"until":{"type":"string","format":"date-time"}},"required":["every","at"],"additionalProperties":false},"tracking":{"type":"object","properties":{"clicks":{"type":"boolean","default":true},"opens":{"type":"boolean","default":false}},"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/check":{"get":{"operationId":"campaigns.campaign.check","summary":"Everything that must be true before a send: identity, footer, content, audience, rule packs.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsCampaignCheck","x-rivier-sdk":"campaigns.campaign.check","x-rivier-cli":"campaigns campaign check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/control":{"post":{"operationId":"campaigns.campaign.control","summary":"Pause, resume or cancel.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignControl","x-rivier-sdk":"campaigns.campaign.control","x-rivier-cli":"campaigns campaign control","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["pause","resume","cancel"]},"reason":{"type":"string","maxLength":300}},"required":["action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/draft-copy":{"post":{"operationId":"campaigns.campaign.draft","summary":"Have a model write the copy for a brief; it lands as an AI-written draft for review.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignDraft","x-rivier-sdk":"campaigns.campaign.draft","x-rivier-cli":"campaigns campaign draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":5,"maxLength":2000},"tone":{"type":"string","maxLength":100}},"required":["brief"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/preview":{"get":{"operationId":"campaigns.campaign.preview","summary":"The message as one real recipient would receive it.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"contactId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsCampaignPreview","x-rivier-sdk":"campaigns.campaign.preview","x-rivier-cli":"campaigns campaign preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/report":{"get":{"operationId":"campaigns.campaign.report","summary":"Delivered, bounced, complained, unsubscribed, clicked, by version of the message and by run.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsCampaignReport","x-rivier-sdk":"campaigns.campaign.report","x-rivier-cli":"campaigns campaign report","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/send":{"post":{"operationId":"campaigns.campaign.send","summary":"Send now, or at a time. Needs a person's approval of this version unless the autonomy settings allow it for an audience this small.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignSend","x-rivier-sdk":"campaigns.campaign.send","x-rivier-cli":"campaigns campaign send","x-rivier-events":["campaigns.campaign.sent"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"at":{"type":"string","format":"date-time"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/submit":{"post":{"operationId":"campaigns.campaign.submit","summary":"Submit a draft for review.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignSubmit","x-rivier-sdk":"campaigns.campaign.submit","x-rivier-cli":"campaigns campaign submit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/campaigns/{id}/test":{"post":{"operationId":"campaigns.campaign.test","summary":"Send a test to one of the project's own addresses.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsCampaignTest","x-rivier-sdk":"campaigns.campaign.test","x-rivier-cli":"campaigns campaign test","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","format":"email"}},"required":["to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/chat":{"get":{"operationId":"contacts.chat.get","summary":"The chat widget: the inbox it uses, wording, opening hours, hand-off, rating, transcript and notice; and the embed.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsChatGet","x-rivier-sdk":"contacts.chat.get","x-rivier-cli":"contacts chat get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.chat.save","summary":"Set up or change the chat widget. A person's setting.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.chat.save","x-rivier-cli":"contacts chat save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inboxId":{"type":"string","format":"uuid"},"title":{"type":"string","maxLength":80,"default":"Chat with us"},"agentName":{"type":"string","maxLength":60,"default":"Assistant"},"greeting":{"type":"string","maxLength":300,"default":"Hi. How can we help?"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#1f4fd8"},"position":{"type":"string","enum":["right","left"],"default":"right"},"email":{"type":"string","enum":["ask","required","never"],"default":"ask"},"disclosure":{"type":"string","maxLength":300,"default":"You are chatting with an AI assistant. A person can join at any time."},"hours":{"anyOf":[{"type":"object","properties":{"timezone":{"type":"string","maxLength":60},"days":{"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":0,"maximum":6},"open":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"close":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["day","open","close"],"additionalProperties":false},"maxItems":14}},"required":["timezone","days"],"additionalProperties":false},{"type":"null"}],"default":null},"awayMessage":{"type":"string","maxLength":300,"default":"We are away right now. Leave a message and we will answer when we are back."},"handoff":{"type":"object","properties":{"enabled":{"type":"boolean","default":true},"label":{"type":"string","maxLength":40,"default":"Talk to a person"}},"additionalProperties":false,"default":{}},"csat":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}},"additionalProperties":false,"default":{}},"transcript":{"type":"object","properties":{"offer":{"type":"boolean","default":true}},"additionalProperties":false,"default":{}},"notice":{"type":"string","maxLength":300,"default":"Your messages are saved so that we can answer you."},"privacyUrl":{"type":"string","format":"uri","maxLength":300},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/companies":{"get":{"operationId":"contacts.company.list","summary":"Companies.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsCompanyList","x-rivier-sdk":"contacts.company.list","x-rivier-cli":"contacts company list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.company.create","summary":"Add a company.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsCompanyCreate","x-rivier-sdk":"contacts.company.create","x-rivier-cli":"contacts company create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"domain":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9.-]*\\.[a-z]{2,}$","maxLength":200},{"type":"null"}]},"website":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]},"industry":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"size":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"country":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"owner":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"custom":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"propertyNames":{"pattern":"^[a-z][a-z0-9_]{0,39}$"}}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/companies/{id}":{"get":{"operationId":"contacts.company.get","summary":"A company and its people.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsCompanyGet","x-rivier-sdk":"contacts.company.get","x-rivier-cli":"contacts company get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"contacts.company.update","summary":"Change a company.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsCompanyUpdate","x-rivier-sdk":"contacts.company.update","x-rivier-cli":"contacts company update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"domain":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9.-]*\\.[a-z]{2,}$","maxLength":200},{"type":"null"}]},"website":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]},"industry":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"size":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"country":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"owner":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"custom":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"propertyNames":{"pattern":"^[a-z][a-z0-9_]{0,39}$"}}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/consent-records":{"get":{"operationId":"contacts.search.consent","summary":"Consent decisions as they stand, by channel, purpose and state, for the people matching some words.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","whatsapp","phone"]}},{"name":"purpose","in":"query","required":false,"schema":{"type":"string","maxLength":30}},{"name":"state","in":"query","required":false,"schema":{"type":"string","maxLength":20}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSearchConsent","x-rivier-sdk":"contacts.search.consent","x-rivier-cli":"contacts search consent","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/consent-widget":{"get":{"operationId":"contacts.consentWidget.get","summary":"The cookie and consent widget: the optional categories in use, the cookie and storage list, the analytics ceiling, copy, design and the embed. Defaults when nothing is saved.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsConsentWidgetGet","x-rivier-sdk":"contacts.consentWidget.get","x-rivier-cli":"contacts consent widget get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.consentWidget.save","summary":"Set up or change the cookie and consent widget. Visitors are asked again after a change. A person's setting.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.consentWidget.save","x-rivier-cli":"contacts consent widget save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ownerMode":{"type":"string","enum":["M0","M1","M2"],"default":"M1"},"childAudience":{"type":"boolean","default":false},"categories":{"type":"array","items":{"type":"string","enum":["preferences","analytics","marketing","notifications"]},"maxItems":4,"default":[]},"cookies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"category":{"type":"string","enum":["necessary","preferences","analytics","marketing","notifications"]},"purpose":{"type":"string","minLength":3,"maxLength":200},"duration":{"type":"string","minLength":1,"maxLength":60},"provider":{"type":"string","maxLength":100}},"required":["name","category","purpose","duration"],"additionalProperties":false},"maxItems":100,"default":[]},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"},"copy":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"body":{"type":"string","maxLength":600},"categoryText":{"type":"object","additionalProperties":{"type":"string","maxLength":200},"propertyNames":{"enum":["preferences","analytics","marketing","notifications"]}}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2}(-[A-Za-z]{2})?$"}},"design":{"type":"object","properties":{"theme":{"type":"string","enum":["auto","light","dark"],"default":"auto"},"position":{"type":"string","enum":["bar","card"],"default":"bar"},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"},"radius":{"type":"integer","minimum":0,"maximum":32}},"additionalProperties":false,"default":{}},"googleConsentMode":{"type":"boolean","default":false},"expiryDays":{"type":"integer","minimum":30,"maximum":395,"default":180},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"policyUrl":{"type":"string","format":"uri","maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/consent-widget/by-region":{"post":{"operationId":"contacts.consentWidget.byRegion","summary":"What a visitor from each region gets under the given banner settings: whether the banner asks first, what is on before a choice and with a browser privacy signal, the analytics level before and after agreeing, and which regions the project serves. Saves nothing.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsConsentWidgetByRegion","x-rivier-sdk":"contacts.consentWidget.byRegion","x-rivier-cli":"contacts consent widget by region","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ownerMode":{"type":"string","enum":["M0","M1","M2"],"default":"M1"},"childAudience":{"type":"boolean","default":false},"categories":{"type":"array","items":{"type":"string","enum":["preferences","analytics","marketing","notifications"]},"maxItems":4,"default":[]},"cookies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"category":{"type":"string","enum":["necessary","preferences","analytics","marketing","notifications"]},"purpose":{"type":"string","minLength":3,"maxLength":200},"duration":{"type":"string","minLength":1,"maxLength":60},"provider":{"type":"string","maxLength":100}},"required":["name","category","purpose","duration"],"additionalProperties":false},"maxItems":100,"default":[]},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"},"copy":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"body":{"type":"string","maxLength":600},"categoryText":{"type":"object","additionalProperties":{"type":"string","maxLength":200},"propertyNames":{"enum":["preferences","analytics","marketing","notifications"]}}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2}(-[A-Za-z]{2})?$"}},"design":{"type":"object","properties":{"theme":{"type":"string","enum":["auto","light","dark"],"default":"auto"},"position":{"type":"string","enum":["bar","card"],"default":"bar"},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"},"radius":{"type":"integer","minimum":0,"maximum":32}},"additionalProperties":false,"default":{}},"googleConsentMode":{"type":"boolean","default":false},"expiryDays":{"type":"integer","minimum":30,"maximum":395,"default":180},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"policyUrl":{"type":"string","format":"uri","maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/consent-widget/stats":{"get":{"operationId":"contacts.consentWidget.stats","summary":"How the banner is doing: times shown, customise opened, decisions, accept all and reject all, by day.","tags":["contacts"],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":365}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsConsentWidgetStats","x-rivier-sdk":"contacts.consentWidget.stats","x-rivier-cli":"contacts consent widget stats","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/contacts":{"get":{"operationId":"contacts.contact.list","summary":"Find and list contacts: search text, a saved segment, a tag or rules.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"segmentId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"total","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsContactList","x-rivier-sdk":"contacts.contact.list","x-rivier-cli":"contacts contact list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"companyId":{"type":["string","null"]},"owner":{"type":["string","null"]},"lifecycle":{"type":"string"},"source":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"suppressed":{"type":"array","items":{"type":"string"}},"lastActivityAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","firstName","lastName","email","phone","companyId","owner","lifecycle","source","tags","suppressed","lastActivityAt","createdAt","updatedAt"],"additionalProperties":true}},"next":{"type":["string","null"]},"total":{"type":"number"}},"required":["items","next"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.contact.create","summary":"Add a contact, or update the one that already has this email or number.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsContactCreate","x-rivier-sdk":"contacts.contact.create","x-rivier-cli":"contacts contact create","x-rivier-events":["contacts.contact.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"firstName":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"identities":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","pattern":"^(email|phone|whatsapp|handle:[a-z0-9_.-]{1,30}|external:[a-z0-9_.-]{1,30})$"},"value":{"type":"string","minLength":1,"maxLength":320},"primary":{"type":"boolean"},"verified":{"type":"boolean"}},"required":["kind","value"],"additionalProperties":false},"maxItems":20},"companyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"company":{"type":"string","maxLength":200,"description":"A company name or domain; found or created"},"owner":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"lifecycle":{"type":"string","enum":["subscriber","lead","customer","partner","other"]},"source":{"type":"string","maxLength":80},"language":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"country":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":50},"custom":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"propertyNames":{"pattern":"^[a-z][a-z0-9_]{0,39}$"}}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/contacts/lookup":{"get":{"operationId":"contacts.contact.lookup","summary":"The contact with this email, phone or handle.","tags":["contacts"],"parameters":[{"name":"kind","in":"query","required":true,"schema":{"type":"string","maxLength":40}},{"name":"value","in":"query","required":true,"schema":{"type":"string","maxLength":320}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsContactLookup","x-rivier-sdk":"contacts.contact.lookup","x-rivier-cli":"contacts contact lookup","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/contacts/{id}":{"get":{"operationId":"contacts.contact.get","summary":"One contact.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsContactGet","x-rivier-sdk":"contacts.contact.get","x-rivier-cli":"contacts contact get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"firstName":{"type":["string","null"]},"lastName":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"companyId":{"type":["string","null"]},"owner":{"type":["string","null"]},"lifecycle":{"type":"string"},"source":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"suppressed":{"type":"array","items":{"type":"string"}},"lastActivityAt":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","firstName","lastName","email","phone","companyId","owner","lifecycle","source","tags","suppressed","lastActivityAt","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"contacts.contact.update","summary":"Change a contact: fields, tags, custom fields, identities.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsContactUpdate","x-rivier-sdk":"contacts.contact.update","x-rivier-cli":"contacts contact update","x-rivier-events":["contacts.contact.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"firstName":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"email":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"identities":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","pattern":"^(email|phone|whatsapp|handle:[a-z0-9_.-]{1,30}|external:[a-z0-9_.-]{1,30})$"},"value":{"type":"string","minLength":1,"maxLength":320},"primary":{"type":"boolean"},"verified":{"type":"boolean"}},"required":["kind","value"],"additionalProperties":false},"maxItems":20},"companyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"company":{"type":"string","maxLength":200,"description":"A company name or domain; found or created"},"owner":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"lifecycle":{"type":"string","enum":["subscriber","lead","customer","partner","other"]},"source":{"type":"string","maxLength":80},"language":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"country":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":50},"custom":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"propertyNames":{"pattern":"^[a-z][a-z0-9_]{0,39}$"}},"removeTags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":50},"removeIdentities":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","pattern":"^(email|phone|whatsapp|handle:[a-z0-9_.-]{1,30}|external:[a-z0-9_.-]{1,30})$"},"value":{"type":"string","maxLength":320}},"required":["kind","value"],"additionalProperties":false},"maxItems":20},"expectRev":{"type":"integer","minimum":1}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/contacts/{id}/consent":{"post":{"operationId":"contacts.consent.record","summary":"Record a consent decision with its proof (the words, the source, the policy version).","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsConsentRecord","x-rivier-sdk":"contacts.consent.record","x-rivier-cli":"contacts consent record","x-rivier-events":["contacts.consent.recorded"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"state":{"type":"string","enum":["granted","withdrawn","denied","pending"]},"source":{"type":"string","minLength":1,"maxLength":120},"policyVersion":{"type":"string","maxLength":40},"ip":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":300},"proof":{"type":"object","additionalProperties":{}},"at":{"type":"string","format":"date-time"}},"required":["channel","state","source"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"contacts.consent.ledger","summary":"Every consent decision for this person, oldest first, with its proof.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsConsentLedger","x-rivier-sdk":"contacts.consent.ledger","x-rivier-cli":"contacts consent ledger","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/contacts/{id}/share":{"post":{"operationId":"contacts.contact.share","summary":"Share a contact with the other projects of the organisation, or stop sharing.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsContactShare","x-rivier-sdk":"contacts.contact.share","x-rivier-cli":"contacts contact share","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"shared":{"type":"boolean"}},"required":["shared"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/contacts/{id}/timeline":{"get":{"operationId":"contacts.contact.timeline","summary":"What happened with this person across email, phone, text, chat, orders, bookings and payments, newest first.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"before","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"kinds","in":"query","required":false,"schema":{"type":"string","maxLength":200}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsContactTimeline","x-rivier-sdk":"contacts.contact.timeline","x-rivier-cli":"contacts contact timeline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/deals":{"get":{"operationId":"contacts.deal.list","summary":"Deals.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"pipelineId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"stage","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"contactId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsDealList","x-rivier-sdk":"contacts.deal.list","x-rivier-cli":"contacts deal list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.deal.create","summary":"Open a deal.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsDealCreate","x-rivier-sdk":"contacts.deal.create","x-rivier-cli":"contacts deal create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"pipelineId":{"type":"string","format":"uuid"},"stage":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"amountMinor":{"type":"integer","minimum":0,"maximum":1000000000000},"currency":{"type":"string","minLength":3,"maxLength":3},"contactId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"companyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"owner":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"closeDate":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"custom":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"propertyNames":{"pattern":"^[a-z][a-z0-9_]{0,39}$"}}},"required":["name","pipelineId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/deals/{id}/move":{"post":{"operationId":"contacts.deal.move","summary":"Move a deal to another stage.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsDealMove","x-rivier-sdk":"contacts.deal.move","x-rivier-cli":"contacts deal move","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stage":{"type":"string","maxLength":40}},"required":["stage"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/duplicates":{"get":{"operationId":"contacts.duplicate.list","summary":"People who are probably the same.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsDuplicateList","x-rivier-sdk":"contacts.duplicate.list","x-rivier-cli":"contacts duplicate list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/duplicates/scan":{"post":{"operationId":"contacts.duplicate.scan","summary":"Look through the contacts for duplicates and propose merges.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsDuplicateScan","x-rivier-sdk":"contacts.duplicate.scan","x-rivier-cli":"contacts duplicate scan","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/duplicates/{id}/dismiss":{"post":{"operationId":"contacts.duplicate.dismiss","summary":"Say two people are not the same.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsDuplicateDismiss","x-rivier-sdk":"contacts.duplicate.dismiss","x-rivier-cli":"contacts duplicate dismiss","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/erase/{id}":{"post":{"operationId":"contacts.person.erase","summary":"Erase a person: record, history, notes and tasks go; their address stays suppressed as a one-way hash.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.person.erase","x-rivier-cli":"contacts person erase","x-rivier-events":["contacts.person.erased"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirm":{"type":"string","format":"uuid"}},"required":["confirm"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/events":{"post":{"operationId":"contacts.event.ingest","summary":"Tell the contact store something happened with a person (an order, a booking, a payment, a chat); the person is found or made.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsEventIngest","x-rivier-sdk":"contacts.event.ingest","x-rivier-cli":"contacts event ingest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"at":{"type":"string","format":"date-time"},"kind":{"type":"string","pattern":"^[a-z_]+(\\.[a-z_]+){0,3}$","maxLength":60},"channel":{"type":"string","enum":["email","sms","whatsapp","phone","chat","shop","booking","payment","form","note","task","deal","system"]},"direction":{"type":"string","enum":["in","out","internal"],"default":"internal"},"summary":{"type":"string","maxLength":500,"default":""},"refKind":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"refId":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"data":{"type":"object","additionalProperties":{}},"activity":{"type":"boolean"},"identity":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"value":{"type":"string","maxLength":320},"name":{"type":"string","maxLength":200},"country":{"type":"string","minLength":2,"maxLength":2}},"required":["kind","value"],"additionalProperties":false},"source":{"type":"string","maxLength":60},"orders":{"type":"object","properties":{"count":{"type":"integer"},"totalMinor":{"type":"integer"}},"required":["count","totalMinor"],"additionalProperties":false},"lifecycle":{"type":"string","enum":["subscriber","lead","customer","partner","other"]}},"required":["kind","channel","identity"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/export":{"post":{"operationId":"contacts.export.run","summary":"Export contacts as CSV.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.export.run","x-rivier-cli":"contacts export run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]},"segmentId":{"type":"string","format":"uuid"},"tag":{"type":"string","maxLength":40},"max":{"type":"integer","minimum":1,"maximum":100000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/export/person/{id}":{"post":{"operationId":"contacts.person.export","summary":"Everything held about one person, to hand to them.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsPersonExport","x-rivier-sdk":"contacts.person.export","x-rivier-cli":"contacts person export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/flows":{"get":{"operationId":"campaigns.flow.list","summary":"Triggered flows.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsFlowList","x-rivier-sdk":"campaigns.flow.list","x-rivier-cli":"campaigns flow list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.flow.create","summary":"Create a flow: a trigger and steps (wait, email, tag, condition).","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsFlowCreate","x-rivier-sdk":"campaigns.flow.create","x-rivier-cli":"campaigns flow create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"trigger":{"type":"object","properties":{"event":{"type":"string","pattern":"^[a-z_]+(\\.[a-z_]+){0,2}$","maxLength":60},"match":{"type":"object","properties":{"tag":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$"},"formId":{"type":"string","format":"uuid"},"source":{"type":"string","maxLength":80}},"additionalProperties":false},"inactiveDays":{"type":"integer","minimum":7,"maximum":1095},"segmentId":{"type":"string","format":"uuid"}},"required":["event"],"additionalProperties":false},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"kind":{"type":"string","enum":["marketing","service"],"default":"marketing"},"steps":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"wait"},"hours":{"type":"number","minimum":0,"maximum":8760},"days":{"type":"number","minimum":0,"maximum":365}},"required":["id","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"email"},"subject":{"type":"string","minLength":1,"maxLength":200},"preheader":{"type":"string","maxLength":200},"templateId":{"type":"string","format":"uuid"},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000}},"required":["id","type","subject"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"sms"},"body":{"type":"string","minLength":1,"maxLength":640}},"required":["id","type","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"tag"},"add":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":10},"remove":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":10}},"required":["id","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"condition"},"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]},"onFalse":{"type":"string","enum":["exit","skip"],"default":"exit"}},"required":["id","type","rules"],"additionalProperties":false}]},"minItems":1,"maxItems":30},"reenrollAfterDays":{"anyOf":[{"type":"integer","minimum":1,"maximum":3650},{"type":"null"}]},"exitOn":{"type":"array","items":{"type":"string","pattern":"^[a-z_]+(\\.[a-z_]+){0,2}$"},"maxItems":10}},"required":["name","trigger","steps"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/flows/{id}":{"get":{"operationId":"campaigns.flow.get","summary":"One flow.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsFlowGet","x-rivier-sdk":"campaigns.flow.get","x-rivier-cli":"campaigns flow get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"campaigns.flow.update","summary":"Change a flow. A running flow is paused and needs approving again.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsFlowUpdate","x-rivier-sdk":"campaigns.flow.update","x-rivier-cli":"campaigns flow update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"trigger":{"type":"object","properties":{"event":{"type":"string","pattern":"^[a-z_]+(\\.[a-z_]+){0,2}$","maxLength":60},"match":{"type":"object","properties":{"tag":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$"},"formId":{"type":"string","format":"uuid"},"source":{"type":"string","maxLength":80}},"additionalProperties":false},"inactiveDays":{"type":"integer","minimum":7,"maximum":1095},"segmentId":{"type":"string","format":"uuid"}},"required":["event"],"additionalProperties":false},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"kind":{"type":"string","enum":["marketing","service"],"default":"marketing"},"steps":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"wait"},"hours":{"type":"number","minimum":0,"maximum":8760},"days":{"type":"number","minimum":0,"maximum":365}},"required":["id","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"email"},"subject":{"type":"string","minLength":1,"maxLength":200},"preheader":{"type":"string","maxLength":200},"templateId":{"type":"string","format":"uuid"},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000}},"required":["id","type","subject"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"sms"},"body":{"type":"string","minLength":1,"maxLength":640}},"required":["id","type","body"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"tag"},"add":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":10},"remove":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":10}},"required":["id","type"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"condition"},"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]},"onFalse":{"type":"string","enum":["exit","skip"],"default":"exit"}},"required":["id","type","rules"],"additionalProperties":false}]},"minItems":1,"maxItems":30},"reenrollAfterDays":{"anyOf":[{"type":"integer","minimum":1,"maximum":3650},{"type":"null"}]},"exitOn":{"type":"array","items":{"type":"string","pattern":"^[a-z_]+(\\.[a-z_]+){0,2}$"},"maxItems":10}},"required":["name","trigger","steps"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/flows/{id}/activate":{"post":{"operationId":"campaigns.flow.activate","summary":"Switch a flow on. It then sends by itself, so a person has approved it.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsFlowActivate","x-rivier-sdk":"campaigns.flow.activate","x-rivier-cli":"campaigns flow activate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/flows/{id}/enrollments":{"get":{"operationId":"campaigns.flow.enrollments","summary":"Who is in a flow and where.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsFlowEnrollments","x-rivier-sdk":"campaigns.flow.enrollments","x-rivier-cli":"campaigns flow enrollments","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/flows/{id}/pause":{"post":{"operationId":"campaigns.flow.pause","summary":"Pause a flow; people already in it wait.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsFlowPause","x-rivier-sdk":"campaigns.flow.pause","x-rivier-cli":"campaigns flow pause","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/forms":{"get":{"operationId":"contacts.form.list","summary":"Signup forms.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsFormList","x-rivier-sdk":"contacts.form.list","x-rivier-cli":"contacts form list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.form.create","summary":"Create a signup form: fields, the consent words, double opt-in. Returns the hosted address and the embed code.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsFormCreate","x-rivier-sdk":"contacts.form.create","x-rivier-cli":"contacts form create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["signup","lead","preference","contact","support","enquiry","comment"],"default":"signup"},"title":{"type":"string","maxLength":200},"intro":{"type":"string","maxLength":1000},"submitLabel":{"type":"string","maxLength":40},"fields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"label":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["text","email","phone","textarea","select","checkbox","hidden"]},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":40},"maps":{"type":"string","pattern":"^(name|firstName|lastName|email|phone|country|language|company|custom\\.[a-z][a-z0-9_]{0,39})$"}},"required":["key","label","type"],"additionalProperties":false},"minItems":1,"maxItems":30},"consents":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"text":{"type":"string","minLength":10,"maxLength":600},"required":{"type":"boolean"}},"required":["channel","text"],"additionalProperties":false},"maxItems":6,"default":[]},"optIn":{"type":"string","enum":["double","single"],"default":"double"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":20},"lifecycle":{"type":"string","enum":["subscriber","lead","customer","partner","other"]},"policyVersion":{"type":"string","maxLength":40},"policyUrl":{"type":"string","format":"uri","maxLength":300},"successMessage":{"type":"string","maxLength":300},"redirectUrl":{"type":"string","format":"uri","maxLength":300},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"leadMagnet":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri","maxLength":500},"label":{"type":"string","maxLength":80}},"additionalProperties":false},"widget":{"type":"string","enum":["email_signup","newsletter","waitlist","contact","lead_form"]},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"},"copy":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"intro":{"type":"string","maxLength":1000},"submitLabel":{"type":"string","maxLength":40},"successMessage":{"type":"string","maxLength":300},"consents":{"type":"array","items":{"type":"string","minLength":10,"maxLength":600},"maxItems":6},"fields":{"type":"object","additionalProperties":{"type":"string","maxLength":120}}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2}(-[A-Za-z]{2})?$"}},"design":{"type":"object","properties":{"theme":{"type":"string","enum":["auto","light","dark"],"default":"auto"},"size":{"type":"string","enum":["compact","regular","large"],"default":"regular"},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"},"radius":{"type":"integer","minimum":0,"maximum":32},"font":{"type":"string","enum":["inherit","system"],"default":"inherit"}},"additionalProperties":false},"destination":{"type":"object","properties":{"inboxId":{"type":"string","format":"uuid"}},"additionalProperties":false},"route":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","maxLength":60},"contains":{"type":"string","maxLength":120},"language":{"type":"string","maxLength":20},"inboxId":{"type":"string","format":"uuid"}},"required":["inboxId"],"additionalProperties":false},"maxItems":10},"autoConfirm":{"type":"boolean","default":true},"guard":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}},"additionalProperties":false},"active":{"type":"boolean","default":true},"page":{"type":"object","properties":{"headline":{"type":"string","maxLength":200},"body":{"type":"string","maxLength":4000},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"}},"additionalProperties":false}},"required":["name","fields"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/forms/{id}":{"get":{"operationId":"contacts.form.get","summary":"One form.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsFormGet","x-rivier-sdk":"contacts.form.get","x-rivier-cli":"contacts form get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.form.update","summary":"Change a form.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsFormUpdate","x-rivier-sdk":"contacts.form.update","x-rivier-cli":"contacts form update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["signup","lead","preference","contact","support","enquiry","comment"],"default":"signup"},"title":{"type":"string","maxLength":200},"intro":{"type":"string","maxLength":1000},"submitLabel":{"type":"string","maxLength":40},"fields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"label":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["text","email","phone","textarea","select","checkbox","hidden"]},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":40},"maps":{"type":"string","pattern":"^(name|firstName|lastName|email|phone|country|language|company|custom\\.[a-z][a-z0-9_]{0,39})$"}},"required":["key","label","type"],"additionalProperties":false},"minItems":1,"maxItems":30},"consents":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"marketing"},"text":{"type":"string","minLength":10,"maxLength":600},"required":{"type":"boolean"}},"required":["channel","text"],"additionalProperties":false},"maxItems":6,"default":[]},"optIn":{"type":"string","enum":["double","single"],"default":"double"},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40,"pattern":"^[\\p{L}\\p{N}][\\p{L}\\p{N} _.:/-]*$"},"maxItems":20},"lifecycle":{"type":"string","enum":["subscriber","lead","customer","partner","other"]},"policyVersion":{"type":"string","maxLength":40},"policyUrl":{"type":"string","format":"uri","maxLength":300},"successMessage":{"type":"string","maxLength":300},"redirectUrl":{"type":"string","format":"uri","maxLength":300},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"leadMagnet":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"url":{"type":"string","format":"uri","maxLength":500},"label":{"type":"string","maxLength":80}},"additionalProperties":false},"widget":{"type":"string","enum":["email_signup","newsletter","waitlist","contact","lead_form"]},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"},"copy":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"intro":{"type":"string","maxLength":1000},"submitLabel":{"type":"string","maxLength":40},"successMessage":{"type":"string","maxLength":300},"consents":{"type":"array","items":{"type":"string","minLength":10,"maxLength":600},"maxItems":6},"fields":{"type":"object","additionalProperties":{"type":"string","maxLength":120}}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2}(-[A-Za-z]{2})?$"}},"design":{"type":"object","properties":{"theme":{"type":"string","enum":["auto","light","dark"],"default":"auto"},"size":{"type":"string","enum":["compact","regular","large"],"default":"regular"},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"},"radius":{"type":"integer","minimum":0,"maximum":32},"font":{"type":"string","enum":["inherit","system"],"default":"inherit"}},"additionalProperties":false},"destination":{"type":"object","properties":{"inboxId":{"type":"string","format":"uuid"}},"additionalProperties":false},"route":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","maxLength":60},"contains":{"type":"string","maxLength":120},"language":{"type":"string","maxLength":20},"inboxId":{"type":"string","format":"uuid"}},"required":["inboxId"],"additionalProperties":false},"maxItems":10},"autoConfirm":{"type":"boolean","default":true},"guard":{"type":"object","properties":{"enabled":{"type":"boolean","default":true}},"additionalProperties":false},"active":{"type":"boolean","default":true},"page":{"type":"object","properties":{"headline":{"type":"string","maxLength":200},"body":{"type":"string","maxLength":4000},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"}},"additionalProperties":false}},"required":["name","fields"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"contacts.form.delete","summary":"Delete a form; its address stops answering.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsFormDelete","x-rivier-sdk":"contacts.form.delete","x-rivier-cli":"contacts form delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/forms/{id}/embed":{"get":{"operationId":"contacts.widget.embed","summary":"The embed options of a widget: one-line script (shadow DOM, no layout shift), iframe, and the hosted page on the project's domain.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsWidgetEmbed","x-rivier-sdk":"contacts.widget.embed","x-rivier-cli":"contacts widget embed","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/forms/{id}/stats":{"get":{"operationId":"contacts.widget.stats","summary":"Views, starts, submits, what the guard held, what was let in, confirmations and the conversion of a widget over the last days (default 30).","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":365}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsWidgetStats","x-rivier-sdk":"contacts.widget.stats","x-rivier-cli":"contacts widget stats","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/forms/{id}/waitlist":{"get":{"operationId":"contacts.widget.waitlist","summary":"The queue of an early access or waiting list: each person's place (moved up five for each friend who joined with their link), friends brought, and who was let in.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsWidgetWaitlist","x-rivier-sdk":"contacts.widget.waitlist","x-rivier-cli":"contacts widget waitlist","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/forms/{id}/waitlist/invite":{"post":{"operationId":"contacts.widget.waitlistInvite","summary":"Let the next people of a waiting list in: they leave the queue and get the tag invited, so a campaign can write to them. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.widget.waitlistInvite","x-rivier-cli":"contacts widget waitlist invite","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":500}},"required":["count"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/history":{"get":{"operationId":"contacts.history.list","summary":"What changed, by whom and when: every audited change names the records it touched. Ask with a record id to see that record's history.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"entityId","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"action","in":"query","required":false,"schema":{"type":"string","maxLength":60}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsHistoryList","x-rivier-sdk":"contacts.history.list","x-rivier-cli":"contacts history list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/hubspot":{"get":{"operationId":"contacts.hubspot.status","summary":"Whether the HubSpot sync is on and connected, when it last ran and what it did.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-sdk":"contacts.hubspot.status","x-rivier-cli":"contacts hubspot status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/hubspot/sync":{"post":{"operationId":"contacts.hubspot.sync","summary":"Run the HubSpot sync now: changes both ways, matched by email; consent never moves as a grant.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.hubspot.sync","x-rivier-cli":"contacts hubspot sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/import":{"post":{"operationId":"contacts.import.run","summary":"Import contacts from a CSV file. A dry run first reports what would happen; nobody becomes subscribed by being in a file unless the importer states the basis.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsImportRun","x-rivier-sdk":"contacts.import.run","x-rivier-cli":"contacts import run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1,"maxLength":20000000},"mapping":{"type":"object","additionalProperties":{"type":"string","maxLength":60},"propertyNames":{"maxLength":120}},"dryRun":{"type":"boolean","default":true},"onExisting":{"type":"string","enum":["skip","fill","overwrite"],"default":"fill"},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10},"source":{"type":"string","maxLength":80,"default":"import"},"country":{"type":"string","minLength":2,"maxLength":2},"consent":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","phone"],"default":"email"},"purpose":{"type":"string","default":"marketing"},"basis":{"type":"string","minLength":10,"maxLength":500},"collectedAt":{"type":"string","maxLength":40},"policyVersion":{"type":"string","maxLength":40}},"required":["basis"],"additionalProperties":false}},"required":["csv"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/live":{"get":{"operationId":"contacts.live.status","summary":"Whether real mail may go out for this project: the checks (sender name, postal address, sending domain verified) and who put it live.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsLiveStatus","x-rivier-sdk":"contacts.live.status","x-rivier-cli":"contacts live status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.live.enable","summary":"Put the project live for real recipients. An owner's or admin's decision, only when the checks pass; until then only test addresses receive anything.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.live.enable","x-rivier-cli":"contacts live enable","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/live/disable":{"post":{"operationId":"contacts.live.disable","summary":"Back to test and hold mode.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.live.disable","x-rivier-cli":"contacts live disable","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/maps":{"get":{"operationId":"contacts.map.list","summary":"The maps of this project: places, load mode, design and the embed.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMapList","x-rivier-sdk":"contacts.map.list","x-rivier-cli":"contacts map list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.map.create","summary":"Make a map: a list of places (name, address, hours, phone, tags). Addresses without coordinates are looked up once and remembered.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMapCreate","x-rivier-sdk":"contacts.map.create","x-rivier-cli":"contacts map create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"title":{"type":"string","maxLength":160},"loadMode":{"type":"string","enum":["consent","click","always"],"default":"consent"},"locations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,40}$"},"name":{"type":"string","minLength":1,"maxLength":160},"address":{"type":"string","minLength":3,"maxLength":300},"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"phone":{"type":"string","maxLength":40},"url":{"type":"string","format":"uri","maxLength":300},"hours":{"type":"string","maxLength":300},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10}},"required":["id","name","address"],"additionalProperties":false},"minItems":1,"maxItems":500},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"},"labels":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":160},"search":{"type":"string","maxLength":60},"loadMap":{"type":"string","maxLength":60},"directions":{"type":"string","maxLength":60},"allTags":{"type":"string","maxLength":60},"noResults":{"type":"string","maxLength":100}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2}(-[A-Za-z]{2})?$"}},"design":{"type":"object","properties":{"theme":{"type":"string","enum":["auto","light","dark"],"default":"auto"},"size":{"type":"string","enum":["compact","regular","large"],"default":"regular"},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"}},"additionalProperties":false,"default":{}},"cluster":{"type":"boolean","default":true},"locator":{"type":"boolean","default":true},"zoom":{"type":"number","minimum":1,"maximum":18,"default":13},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20}},"required":["name","locations"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/maps/geocode":{"post":{"operationId":"contacts.map.geocode","summary":"Check an address while setting a map up: the place found (or none) and whether a real map service answered.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMapGeocode","x-rivier-sdk":"contacts.map.geocode","x-rivier-cli":"contacts map geocode","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3,"maxLength":300},"language":{"type":"string","maxLength":10}},"required":["address"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/maps/{id}":{"get":{"operationId":"contacts.map.get","summary":"One map.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMapGet","x-rivier-sdk":"contacts.map.get","x-rivier-cli":"contacts map get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.map.update","summary":"Change a map.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMapUpdate","x-rivier-sdk":"contacts.map.update","x-rivier-cli":"contacts map update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"title":{"type":"string","maxLength":160},"loadMode":{"type":"string","enum":["consent","click","always"],"default":"consent"},"locations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,40}$"},"name":{"type":"string","minLength":1,"maxLength":160},"address":{"type":"string","minLength":3,"maxLength":300},"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"phone":{"type":"string","maxLength":40},"url":{"type":"string","format":"uri","maxLength":300},"hours":{"type":"string","maxLength":300},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10}},"required":["id","name","address"],"additionalProperties":false},"minItems":1,"maxItems":500},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"},"labels":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":160},"search":{"type":"string","maxLength":60},"loadMap":{"type":"string","maxLength":60},"directions":{"type":"string","maxLength":60},"allTags":{"type":"string","maxLength":60},"noResults":{"type":"string","maxLength":100}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2}(-[A-Za-z]{2})?$"}},"design":{"type":"object","properties":{"theme":{"type":"string","enum":["auto","light","dark"],"default":"auto"},"size":{"type":"string","enum":["compact","regular","large"],"default":"regular"},"accent":{"type":"string","pattern":"^#[0-9a-f]{6}$"}},"additionalProperties":false,"default":{}},"cluster":{"type":"boolean","default":true},"locator":{"type":"boolean","default":true},"zoom":{"type":"number","minimum":1,"maximum":18,"default":13},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20}},"required":["name","locations"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"contacts.map.delete","summary":"Delete a map; its address stops answering.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMapDelete","x-rivier-sdk":"contacts.map.delete","x-rivier-cli":"contacts map delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing-approval/{id}":{"post":{"operationId":"contacts.marketing.state","summary":"Approve, start, close or cancel a plan. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.marketing.state","x-rivier-cli":"contacts marketing state","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"type":"string","enum":["approved","running","cancelled","done"]}},"required":["state"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/calendar":{"get":{"operationId":"contacts.marketing.calendar","summary":"Planned items with the reason for each, and the project's other scheduled campaigns marked as unplanned.","tags":["contacts"],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMarketingCalendar","x-rivier-sdk":"contacts.marketing.calendar","x-rivier-cli":"contacts marketing calendar","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/learnings":{"get":{"operationId":"contacts.marketing.learnings","summary":"What closed plans taught, newest first.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMarketingLearnings","x-rivier-sdk":"contacts.marketing.learnings","x-rivier-cli":"contacts marketing learnings","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/plans":{"get":{"operationId":"contacts.marketing.planList","summary":"Marketing plans: goal, metric, window and how many drafts each has.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["draft","approved","running","done","cancelled"]}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMarketingPlanList","x-rivier-sdk":"contacts.marketing.planList","x-rivier-cli":"contacts marketing plan list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.marketing.planCreate","summary":"Make a marketing plan: the outcome wanted, the measure, the window, the channels, the words to avoid, the hypothesis and the rule for deciding. Nothing is sent or spent.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMarketingPlanCreate","x-rivier-sdk":"contacts.marketing.planCreate","x-rivier-cli":"contacts marketing plan create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"goal":{"type":"object","properties":{"outcome":{"type":"string","minLength":5,"maxLength":300},"metric":{"type":"string","enum":["signups","clicks","orders","bookings","revenue","replies"]},"target":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"default":null},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["outcome","metric","from","to"],"additionalProperties":false},"constraints":{"type":"object","properties":{"channels":{"type":"array","items":{"type":"string","enum":["email","sms","social","page","gbp","ads"]},"minItems":1,"maxItems":6},"monthlyBudgetMinor":{"type":"integer","minimum":0,"default":0},"segmentId":{"type":"string","format":"uuid"},"doNotSay":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30,"default":[]},"capacityNote":{"type":"string","maxLength":300}},"required":["channels"],"additionalProperties":false},"hypothesis":{"type":"string","minLength":5,"maxLength":400},"decisionRule":{"type":"string","minLength":5,"maxLength":400}},"required":["name","goal","constraints","hypothesis","decisionRule"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/plans/{id}":{"get":{"operationId":"contacts.marketing.planGet","summary":"One plan with its drafts, their checks and the context it was made in.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMarketingPlanGet","x-rivier-sdk":"contacts.marketing.planGet","x-rivier-cli":"contacts marketing plan get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/plans/{id}/campaign-draft":{"post":{"operationId":"contacts.marketing.campaignDraft","summary":"Draft an email or text campaign for a plan in the project's voice; it is an ordinary draft campaign that a person reviews and approves.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMarketingCampaignDraft","x-rivier-sdk":"contacts.marketing.campaignDraft","x-rivier-cli":"contacts marketing campaign draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":5,"maxLength":1200},"name":{"type":"string","maxLength":160},"scheduledFor":{"type":"string","maxLength":40},"reason":{"type":"string","maxLength":300},"channel":{"type":"string","enum":["email","sms"],"default":"email"}},"required":["brief"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/plans/{id}/content-draft":{"post":{"operationId":"contacts.marketing.contentDraft","summary":"Draft a social post, a page block or a business-profile post for a plan; kept as a marked AI draft, published by a person.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMarketingContentDraft","x-rivier-sdk":"contacts.marketing.contentDraft","x-rivier-cli":"contacts marketing content draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":5,"maxLength":1200},"name":{"type":"string","maxLength":160},"scheduledFor":{"type":"string","maxLength":40},"reason":{"type":"string","maxLength":300},"channel":{"type":"string","enum":["social","page","gbp"]}},"required":["brief","channel"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/plans/{id}/finish":{"post":{"operationId":"contacts.marketing.finish","summary":"Close a plan with the lessons learned; the next plan starts from them.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMarketingFinish","x-rivier-sdk":"contacts.marketing.finish","x-rivier-cli":"contacts marketing finish","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"learnings":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":10,"default":[]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/plans/{id}/results":{"get":{"operationId":"contacts.marketing.results","summary":"What happened against the plan's goal, with what that does and does not show said in plain words.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsMarketingResults","x-rivier-sdk":"contacts.marketing.results","x-rivier-cli":"contacts marketing results","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/marketing/propose":{"post":{"operationId":"contacts.marketing.propose","summary":"The advisor's dialogue: what the person said (and the earlier turns) becomes a proposed plan and the questions still open. Nothing is saved; the person confirms by creating the plan.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsMarketingPropose","x-rivier-sdk":"contacts.marketing.propose","x-rivier-cli":"contacts marketing propose","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","minLength":2,"maxLength":2000},"history":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["person","advisor"]},"text":{"type":"string","maxLength":2000}},"required":["role","text"],"additionalProperties":false},"maxItems":30}},"required":["message"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/merge":{"post":{"operationId":"contacts.contact.merge","summary":"Merge one contact into another; history, identities and tags move over.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsContactMerge","x-rivier-sdk":"contacts.contact.merge","x-rivier-cli":"contacts contact merge","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"winnerId":{"type":"string","format":"uuid"},"loserId":{"type":"string","format":"uuid"}},"required":["winnerId","loserId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/notes":{"get":{"operationId":"contacts.note.list","summary":"Notes on a contact or company.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"contactId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"companyId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsNoteList","x-rivier-sdk":"contacts.note.list","x-rivier-cli":"contacts note list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.note.create","summary":"Add a note.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsNoteCreate","x-rivier-sdk":"contacts.note.create","x-rivier-cli":"contacts note create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000},"contactId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"companyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"dealId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"private":{"type":"boolean"}},"required":["body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/organisation/contacts":{"get":{"operationId":"contacts.organisation.list","summary":"Contacts the organisation's other projects have shared.","tags":["contacts"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsOrganisationList","x-rivier-sdk":"contacts.organisation.list","x-rivier-cli":"contacts organisation list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/organisation/contacts/adopt":{"post":{"operationId":"contacts.organisation.adopt","summary":"Copy a shared contact into this project (without its consent).","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsOrganisationAdopt","x-rivier-sdk":"contacts.organisation.adopt","x-rivier-cli":"contacts organisation adopt","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromProject":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"}},"required":["fromProject","contactId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/pipelines":{"get":{"operationId":"contacts.pipeline.list","summary":"Deal pipelines and their stages.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsPipelineList","x-rivier-sdk":"contacts.pipeline.list","x-rivier-cli":"contacts pipeline list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.pipeline.create","summary":"Define a pipeline.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsPipelineCreate","x-rivier-sdk":"contacts.pipeline.create","x-rivier-cli":"contacts pipeline create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"name":{"type":"string","minLength":1,"maxLength":60},"probability":{"type":"number","minimum":0,"maximum":100},"kind":{"type":"string","enum":["open","won","lost"]}},"required":["id","name"],"additionalProperties":false},"minItems":2,"maxItems":20},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["name","stages"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/pipelines/{id}/board":{"get":{"operationId":"contacts.pipeline.board","summary":"Each stage of a pipeline with its deals and totals.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsPipelineBoard","x-rivier-sdk":"contacts.pipeline.board","x-rivier-cli":"contacts pipeline board","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/restore/{kind}/{id}":{"post":{"operationId":"contacts.archive.restore","summary":"Put an archived record back.","tags":["contacts"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["company","deal","note","task","segment","form","template","campaign","flow"]}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsArchiveRestore","x-rivier-sdk":"contacts.archive.restore","x-rivier-cli":"contacts archive restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews":{"get":{"operationId":"contacts.reviews.list","summary":"Reviews and ratings: the queue (held and waiting) by default, or any state, kind or subject.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["published","pending","held","rejected","removed"]}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["review","rating"]}},{"name":"subjectKind","in":"query","required":false,"schema":{"type":"string","enum":["product","service","stay","booking","support","article","agent","business"]}},{"name":"subjectId","in":"query","required":false,"schema":{"type":"string","maxLength":120}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsReviewsList","x-rivier-sdk":"contacts.reviews.list","x-rivier-cli":"contacts reviews list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/aggregate":{"get":{"operationId":"contacts.reviews.aggregate","summary":"Average (weighted for recency and verification), simple average, distribution, trend by month, verified count and the NPS or thumbs share for a subject or the whole project.","tags":["contacts"],"parameters":[{"name":"subjectKind","in":"query","required":false,"schema":{"type":"string","enum":["product","service","stay","booking","support","article","agent","business"]}},{"name":"subjectId","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"scale","in":"query","required":false,"schema":{"type":"string","enum":["stars","thumbs","nps"]}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsReviewsAggregate","x-rivier-sdk":"contacts.reviews.aggregate","x-rivier-cli":"contacts reviews aggregate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/settings":{"get":{"operationId":"contacts.reviews.settingsGet","summary":"Reviews and ratings settings: moderation, review requests, incentive notice, destination inbox.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsReviewsSettingsGet","x-rivier-sdk":"contacts.reviews.settingsGet","x-rivier-cli":"contacts reviews settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.reviews.settingsSave","summary":"Set up or change reviews and ratings. A person's setting.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.reviews.settingsSave","x-rivier-cli":"contacts reviews settings save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"moderation":{"type":"string","enum":["auto_verified","hold_all","hold_flagged"],"default":"hold_flagged"},"requests":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"onlyConsented":{"type":"boolean","default":true}},"additionalProperties":false,"default":{}},"incentive":{"type":"object","properties":{"offered":{"type":"boolean","default":false},"text":{"type":"string","maxLength":200}},"additionalProperties":false,"default":{}},"destination":{"type":"object","properties":{"inboxId":{"type":"string","format":"uuid"}},"additionalProperties":false},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"publishNotice":{"type":"string","maxLength":300,"default":"Your review will be shown with your first name and the first letter of your last name."},"defaultLanguage":{"type":"string","pattern":"^[a-z]{2}(-[A-Za-z]{2})?$","default":"en"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/{id}/approve":{"post":{"operationId":"contacts.reviews.approve","summary":"Publish a held or waiting review; its thread leaves the Held folder. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.reviews.approve","x-rivier-cli":"contacts reviews approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/{id}/draft-reply":{"post":{"operationId":"contacts.reviews.draftReply","summary":"Draft a reply with the writing assistant; marked as AI-written, kept private until a person publishes it.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsReviewsDraftReply","x-rivier-sdk":"contacts.reviews.draftReply","x-rivier-cli":"contacts reviews draft reply","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/{id}/reject":{"post":{"operationId":"contacts.reviews.reject","summary":"Reject a review; its words are not shown and its held thread is deleted. Optionally block the sender. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.reviews.reject","x-rivier-cli":"contacts reviews reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"blockSender":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/{id}/remove":{"post":{"operationId":"contacts.reviews.remove","summary":"Take a published review down. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.reviews.remove","x-rivier-cli":"contacts reviews remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/reviews/{id}/reply":{"post":{"operationId":"contacts.reviews.reply","summary":"Reply to a review in public. Written by a person (a draft can be used as the starting text).","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.reviews.reply","x-rivier-cli":"contacts reviews reply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":1500}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/search":{"get":{"operationId":"contacts.search.documents","summary":"Search segments, forms, deals, notes, tasks, companies, templates, campaigns, flows or pipelines by the words in them.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"kind","in":"query","required":true,"schema":{"type":"string","enum":["segment","form","deal","note","task","company","template","campaign","flow","pipeline"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"state","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSearchDocuments","x-rivier-sdk":"contacts.search.documents","x-rivier-cli":"contacts search documents","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/segments":{"get":{"operationId":"contacts.segment.list","summary":"Saved segments (live rules).","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSegmentList","x-rivier-sdk":"contacts.segment.list","x-rivier-cli":"contacts segment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.segment.create","summary":"Save a segment: a rule over contacts that is evaluated each time it is used.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsSegmentCreate","x-rivier-sdk":"contacts.segment.create","x-rivier-cli":"contacts segment create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":500},"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]}},"required":["name","rules"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/segments/preview":{"post":{"operationId":"contacts.segment.preview","summary":"How many people match a rule or segment, and a few of them.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSegmentPreview","x-rivier-sdk":"contacts.segment.preview","x-rivier-cli":"contacts segment preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]},"segmentId":{"type":"string","format":"uuid"},"tag":{"type":"string","maxLength":40}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/segments/{id}":{"patch":{"operationId":"contacts.segment.update","summary":"Change a segment.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsSegmentUpdate","x-rivier-sdk":"contacts.segment.update","x-rivier-cli":"contacts segment update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":500},"rules":{"anyOf":[{"type":"object","properties":{"all":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["all"],"additionalProperties":false},{"type":"object","properties":{"any":{"type":"array","items":{},"minItems":1,"maxItems":50}},"required":["any"],"additionalProperties":false},{"type":"object","properties":{"not":{}},"required":["not"],"additionalProperties":false},{"type":"object","properties":{"f":{"type":"string","pattern":"^(email|name|phone|source|lifecycle|country|language|owner|company|tag|created_at|updated_at|last_activity_at|orders_count|orders_total|open_deals|segment|custom\\.[a-z][a-z0-9_]{0,39}|consent\\.(email|sms|whatsapp|phone)(\\.[a-z][a-z0-9_]{0,29})?|suppressed\\.(email|sms|whatsapp|phone))$"},"op":{"type":"string","enum":["eq","ne","contains","starts","in","nin","gt","gte","lt","lte","exists","within_days","older_than_days"]},"v":{}},"required":["f","op"],"additionalProperties":false}]}},"required":["name","rules"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"contacts.segment.delete","summary":"Delete a segment that no campaign or flow uses.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsSegmentDelete","x-rivier-sdk":"contacts.segment.delete","x-rivier-cli":"contacts segment delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences":{"get":{"operationId":"campaigns.sequence.list","summary":"Outreach sequences: a short series of messages to prospects, written by a team member and approved by a person.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsSequenceList","x-rivier-sdk":"campaigns.sequence.list","x-rivier-cli":"campaigns sequence list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}},"required":["items"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.sequence.create","summary":"Create a sequence: who it is for, a team member, and steps (email, text, WhatsApp, call) with the days to wait before each. The team member writes each message from the step's brief.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsSequenceCreate","x-rivier-sdk":"campaigns.sequence.create","x-rivier-cli":"campaigns sequence create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"agentId":{"type":"string","minLength":1,"maxLength":120},"audience":{"type":"string","minLength":3,"maxLength":300},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"outreach"},"steps":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"email"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0}},"required":["id","type","brief"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"sms"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0}},"required":["id","type","brief"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"whatsapp"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0},"templateId":{"type":"string","format":"uuid"}},"required":["id","type","brief"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"call"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0}},"required":["id","type","brief"],"additionalProperties":false}]},"minItems":1,"maxItems":12},"window":{"type":"object","properties":{"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7},"minItems":1,"maxItems":7,"default":[1,2,3,4,5]},"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"09:00"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"17:00"},"timezone":{"type":"string","maxLength":60}},"additionalProperties":false,"default":{"days":[1,2,3,4,5],"from":"09:00","to":"17:00"}},"limits":{"type":"object","properties":{"perDay":{"type":"integer","minimum":1,"maximum":5000,"default":50},"perDomainPerDay":{"type":"integer","minimum":1,"maximum":500,"default":3}},"additionalProperties":false,"default":{"perDay":50,"perDomainPerDay":3}},"approval":{"type":"string","enum":["person","rule"],"default":"person"}},"required":["name","audience","steps"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences/{id}":{"get":{"operationId":"campaigns.sequence.get","summary":"One sequence.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsSequenceGet","x-rivier-sdk":"campaigns.sequence.get","x-rivier-cli":"campaigns sequence get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"campaigns.sequence.update","summary":"Change a sequence. A running sequence is paused and needs approving again.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsSequenceUpdate","x-rivier-sdk":"campaigns.sequence.update","x-rivier-cli":"campaigns sequence update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"agentId":{"type":"string","minLength":1,"maxLength":120},"audience":{"type":"string","minLength":3,"maxLength":300},"purpose":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"outreach"},"steps":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"email"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0}},"required":["id","type","brief"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"sms"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0}},"required":["id","type","brief"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"whatsapp"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0},"templateId":{"type":"string","format":"uuid"}},"required":["id","type","brief"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"type":{"type":"string","const":"call"},"brief":{"type":"string","minLength":8,"maxLength":1500},"waitDays":{"type":"integer","minimum":0,"maximum":120,"default":0}},"required":["id","type","brief"],"additionalProperties":false}]},"minItems":1,"maxItems":12},"window":{"type":"object","properties":{"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7},"minItems":1,"maxItems":7,"default":[1,2,3,4,5]},"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"09:00"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"17:00"},"timezone":{"type":"string","maxLength":60}},"additionalProperties":false,"default":{"days":[1,2,3,4,5],"from":"09:00","to":"17:00"}},"limits":{"type":"object","properties":{"perDay":{"type":"integer","minimum":1,"maximum":5000,"default":50},"perDomainPerDay":{"type":"integer","minimum":1,"maximum":500,"default":3}},"additionalProperties":false,"default":{"perDay":50,"perDomainPerDay":3}},"approval":{"type":"string","enum":["person","rule"],"default":"person"}},"required":["name","audience","steps"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences/{id}/activate":{"post":{"operationId":"campaigns.sequence.activate","summary":"Switch a sequence on. A person has approved it first; each message then waits for approval unless the sequence sends by rule.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsSequenceActivate","x-rivier-sdk":"campaigns.sequence.activate","x-rivier-cli":"campaigns sequence activate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences/{id}/enroll":{"post":{"operationId":"campaigns.sequence.enroll","summary":"Add prospects to a sequence. Anyone who is suppressed, erased, without an address for the first step, or without a recorded basis for being written to is skipped, with the reason.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsSequenceEnroll","x-rivier-sdk":"campaigns.sequence.enroll","x-rivier-cli":"campaigns sequence enroll","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contactIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":500}},"required":["contactIds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"enrolled":{"type":"array","items":{"type":"string","format":"uuid"}},"skipped":{"type":"array","items":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"reason":{"type":"string"}},"required":["contactId","reason"],"additionalProperties":false}}},"required":["enrolled","skipped"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences/{id}/enrollments":{"get":{"operationId":"campaigns.sequence.enrollments","summary":"Who is in a sequence, where each person is, and why a person left it.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsSequenceEnrollments","x-rivier-sdk":"campaigns.sequence.enrollments","x-rivier-cli":"campaigns sequence enrollments","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}},"required":["items"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences/{id}/pause":{"post":{"operationId":"campaigns.sequence.pause","summary":"Pause a sequence; people already in it wait.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsSequencePause","x-rivier-sdk":"campaigns.sequence.pause","x-rivier-cli":"campaigns sequence pause","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"state":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}}},"required":["id","state","data"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/sequences/{id}/results":{"get":{"operationId":"campaigns.sequence.results","summary":"Results of a sequence: sent, delivered, opened, clicked, replied, booked, bounced, unsubscribed, complained.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsSequenceResults","x-rivier-sdk":"campaigns.sequence.results","x-rivier-cli":"campaigns sequence results","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"number"}}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/settings":{"get":{"operationId":"contacts.settings.get","summary":"Sender identity, footer address, opt-in policy, custom fields, grants and limits.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSettingsGet","x-rivier-sdk":"contacts.settings.get","x-rivier-cli":"contacts settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.settings.save","summary":"Change the settings. The autonomy of agents and campaigns is a person's to change.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.settings.save","x-rivier-cli":"contacts settings save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"senderName":{"type":"string","maxLength":100},"senderAddress":{"type":"string","maxLength":300,"description":"The postal address that goes in every marketing email footer"},"fromEmail":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"replyTo":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"sendingDomain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"widgetDomain":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"doubleOptIn":{"type":"boolean"},"policyVersion":{"type":"string","maxLength":40},"policyUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]},"defaultCountry":{"anyOf":[{"type":"string","minLength":2,"maxLength":2},{"type":"null"}]},"customFields":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,39}$"},"label":{"type":"string","maxLength":80},"type":{"type":"string","enum":["text","number","boolean","date","select"]},"options":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":40},"sensitive":{"type":"boolean"}},"required":["key","label","type"],"additionalProperties":false},"maxItems":60},"autonomy":{"type":"object","properties":{"campaigns":{"type":"string","enum":["human_review","assisted","autonomous"]},"autoSendCap":{"type":"integer","minimum":0,"maximum":1000000},"agentDefault":{"type":"object","properties":{"read":{"type":"boolean","default":true},"write":{"type":"boolean","default":false},"send":{"type":"boolean","default":false},"view":{"type":"string","enum":["basic","full"],"default":"basic"},"maxExport":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"additionalProperties":false},"agents":{"type":"object","additionalProperties":{"type":"object","properties":{"read":{"type":"boolean","default":true},"write":{"type":"boolean","default":false},"send":{"type":"boolean","default":false},"view":{"type":"string","enum":["basic","full"],"default":"basic"},"maxExport":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"additionalProperties":false},"propertyNames":{"maxLength":80}}},"additionalProperties":false},"limits":{"type":"object","properties":{"perHour":{"type":"integer","minimum":1},"perDay":{"type":"integer","minimum":1}},"additionalProperties":false},"trackOpens":{"type":"boolean"},"trackClicks":{"type":"boolean"},"testMode":{"type":"boolean"},"testRecipients":{"type":"array","items":{"type":"string","maxLength":320},"maxItems":20},"sms":{"type":"object","properties":{"numberId":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"quietFrom":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"quietTo":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"timezone":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"maxSegments":{"type":"integer","minimum":1,"maximum":6}},"additionalProperties":false},"hubspot":{"type":"object","properties":{"enabled":{"type":"boolean"},"connectionId":{"type":"string","maxLength":80},"direction":{"type":"string","enum":["pull","push","both"],"default":"both"}},"required":["enabled"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions":{"get":{"operationId":"contacts.submission.list","summary":"What the forms received: held entries (state held or unconfirmed), accepted and turned away, with sender, form, page, reasons and a preview.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["held","unconfirmed","accepted","rejected"]}},{"name":"formId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSubmissionList","x-rivier-sdk":"contacts.submission.list","x-rivier-cli":"contacts submission list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions/bulk":{"post":{"operationId":"contacts.submission.bulk","summary":"Accept or reject many held submissions at once (up to a hundred), optionally allowing or blocking each sender. Each result is reported; one failure does not stop the rest.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.submission.bulk","x-rivier-cli":"contacts submission bulk","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100},"action":{"type":"string","enum":["accept","reject"]},"allowSender":{"type":"boolean"},"blockSender":{"type":"boolean"}},"required":["ids","action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions/senders":{"get":{"operationId":"contacts.submission.senders","summary":"Senders the owner allowed or blocked.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSubmissionSenders","x-rivier-sdk":"contacts.submission.senders","x-rivier-cli":"contacts submission senders","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.submission.sender","summary":"Allow or block a sender (by email address) for the guard.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.submission.sender","x-rivier-cli":"contacts submission sender","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":320},"rule":{"type":"string","enum":["allow","block"]}},"required":["email","rule"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions/summary":{"get":{"operationId":"contacts.submission.summary","summary":"One blunt count: the real people the guard held this month, the spam it kept out, and what waits for a decision.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSubmissionSummary","x-rivier-sdk":"contacts.submission.summary","x-rivier-cli":"contacts submission summary","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions/{id}":{"get":{"operationId":"contacts.submission.get","summary":"One submission with every field.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSubmissionGet","x-rivier-sdk":"contacts.submission.get","x-rivier-cli":"contacts submission get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions/{id}/accept":{"post":{"operationId":"contacts.submission.accept","summary":"Let a held submission in: the person is made or found, the consent they ticked is recorded, the thread moves from Held to the inbox. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.submission.accept","x-rivier-cli":"contacts submission accept","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allowSender":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submissions/{id}/reject":{"post":{"operationId":"contacts.submission.reject","summary":"Reject a held submission: its words are deleted and the thread leaves the Held folder. A person's decision.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.submission.reject","x-rivier-cli":"contacts submission reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"blockSender":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/submit/{id}":{"post":{"operationId":"forms.submission.create","summary":"Submit a signup form from a website with a publishable key.","tags":["forms"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"forms:write","x-rivier-graphql":"Mutation.formsSubmissionCreate","x-rivier-sdk":"forms.submission.create","x-rivier-cli":"forms submission create","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/suppressions":{"get":{"operationId":"contacts.suppression.list","summary":"Addresses and numbers that must not be written to.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","whatsapp","phone"]}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSuppressionList","x-rivier-sdk":"contacts.suppression.list","x-rivier-cli":"contacts suppression list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.suppression.add","summary":"Stop writing to an address or number.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsSuppressionAdd","x-rivier-sdk":"contacts.suppression.add","x-rivier-cli":"contacts suppression add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"value":{"type":"string","minLength":3,"maxLength":320},"reason":{"type":"string","enum":["unsubscribed","manual","stop","invalid"],"default":"manual"}},"required":["channel","value"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/suppressions/remove":{"post":{"operationId":"contacts.suppression.remove","summary":"Lift a suppression, with the reason it is lifted.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsSuppressionRemove","x-rivier-sdk":"contacts.suppression.remove","x-rivier-cli":"contacts suppression remove","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp","phone"]},"value":{"type":"string","minLength":3,"maxLength":320},"reason":{"type":"string","minLength":3,"maxLength":300}},"required":["channel","value","reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/tasks":{"get":{"operationId":"contacts.task.list","summary":"Tasks.","tags":["contacts"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"contactId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","done"]}},{"name":"dueBefore","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"assignee","in":"query","required":false,"schema":{"type":"string","maxLength":200}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsTaskList","x-rivier-sdk":"contacts.task.list","x-rivier-cli":"contacts task list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.task.create","summary":"Add a task.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsTaskCreate","x-rivier-sdk":"contacts.task.create","x-rivier-cli":"contacts task create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":300},"notes":{"type":"string","maxLength":4000},"contactId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"companyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"dealId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"assignee":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"dueAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["title"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/tasks/{id}/complete":{"post":{"operationId":"contacts.task.complete","summary":"Mark a task done (or open again).","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsTaskComplete","x-rivier-sdk":"contacts.task.complete","x-rivier-cli":"contacts task complete","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"done":{"type":"boolean","default":true}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/templates":{"get":{"operationId":"campaigns.template.list","summary":"Email templates.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsTemplateList","x-rivier-sdk":"campaigns.template.list","x-rivier-cli":"campaigns template list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.template.create","summary":"Save an email template.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsTemplateCreate","x-rivier-sdk":"campaigns.template.create","x-rivier-cli":"campaigns template create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":120},"subject":{"type":"string","maxLength":200},"html":{"type":"string","maxLength":500000},"text":{"type":"string","maxLength":100000}},"required":["name","html"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/crm/widgets":{"get":{"operationId":"contacts.widget.catalogue","summary":"Every widget Rivier offers, with its manifest: what is built here, what other parts of the product own and register, and what is planned.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsWidgetCatalogue","x-rivier-sdk":"contacts.widget.catalogue","x-rivier-cli":"contacts widget catalogue","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.widget.create","summary":"Make a widget from a template (email signup, newsletter, waiting list, contact, lead form): a form with its words in seven languages, ready to embed. Returns the three embed options.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsWidgetCreate","x-rivier-sdk":"contacts.widget.create","x-rivier-cli":"contacts widget create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["email_signup","newsletter","waitlist","contact","lead_form"]},"name":{"type":"string","maxLength":120},"overrides":{"type":"object","additionalProperties":{}}},"required":["type"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts":{"get":{"operationId":"contacts.customerAccount.list","summary":"The people who have an account to sign in to the project's sites: when they joined and last signed in, whether blocked, and how many devices and passkeys they have. Addresses are the customer's own sign-in addresses.","tags":["contacts"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["active","blocked"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"after","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"contacts:read","x-rivier-mcp":"rivier_customer_accounts","x-rivier-graphql":"Query.contactsCustomerAccountList","x-rivier-sdk":"contacts.customerAccount.list","x-rivier-cli":"contacts customer account list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/activity":{"get":{"operationId":"contacts.customerSignIn.list","summary":"Recent sign-in activity on the project's sites: codes asked for, sign-ins, failures, blocks and rate limits, with a masked address, the device and a coarse network. Never a code, a token or a full address.","tags":["contacts"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"outcome","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z_]{3,30}$"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"contacts:read","x-rivier-mcp":"rivier_customer_sign_in_activity","x-rivier-graphql":"Query.contactsCustomerSignInList","x-rivier-sdk":"contacts.customerSignIn.list","x-rivier-cli":"contacts customer sign in list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/auth/code":{"post":{"operationId":"contacts.customerAuth.code","summary":"Send a customer a sign-in code, from the project's own server (a platform on its own domain). The same rules as the hosted form: sign-up as the project allows, limits per address and per network (pass the customer's ip).","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.customerAuth.code","x-rivier-cli":"contacts customer auth code","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"email":{"type":"string","format":"email","maxLength":254},"locale":{"type":"string","maxLength":12},"name":{"type":"string","maxLength":120},"ip":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":200}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/auth/password":{"post":{"operationId":"contacts.customerAuth.password","summary":"Sign a customer in with their address and password, when the project allows passwords. Every failure gets the same answer; tries are limited per address and per network.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.customerAuth.password","x-rivier-cli":"contacts customer auth password","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"email":{"type":"string","format":"email","maxLength":254},"password":{"type":"string","minLength":1,"maxLength":200},"ip":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":200}},"required":["email","password"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/auth/session":{"post":{"operationId":"contacts.customerAuth.session","summary":"Who a session belongs to. Send the access token, or the refresh token when it has run out; a refresh answers new tokens (the old refresh token then stops working).","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.customerAuth.session","x-rivier-cli":"contacts customer auth session","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"access":{"type":"string","maxLength":2000},"refresh":{"type":"string","maxLength":200},"ip":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/auth/sign-out":{"post":{"operationId":"contacts.customerAuth.signOut","summary":"End a session the project's server holds.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.customerAuth.signOut","x-rivier-cli":"contacts customer auth sign out","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"access":{"type":"string","maxLength":2000},"refresh":{"type":"string","maxLength":200},"ip":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/auth/verify":{"post":{"operationId":"contacts.customerAuth.verify","summary":"Check the code a customer typed and start a session the project's server holds: an access token (minutes) and a refresh token. Every wrong code gets the same answer.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.customerAuth.verify","x-rivier-cli":"contacts customer auth verify","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"email":{"type":"string","format":"email","maxLength":254},"code":{"type":"string","pattern":"^\\d{8}$"},"ip":{"type":"string","maxLength":64},"userAgent":{"type":"string","maxLength":200}},"required":["email","code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/oidc/clients":{"get":{"operationId":"contacts.customerOidc.list","summary":"The sites on other domains that may sign customers in with this site (OpenID Connect): each client's id, name and redirect addresses. Never a secret.","tags":["contacts"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsCustomerOidcList","x-rivier-sdk":"contacts.customerOidc.list","x-rivier-cli":"contacts customer oidc list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.customerOidc.create","summary":"Let a site on another domain sign customers in with this site. Its secret is in this answer only; a public client (an app or a page with no server) has none and must use PKCE.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsCustomerOidcCreate","x-rivier-sdk":"contacts.customerOidc.create","x-rivier-cli":"contacts customer oidc create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":80},"redirectUris":{"type":"array","items":{"type":"string","maxLength":500},"minItems":1,"maxItems":10},"public":{"type":"boolean"}},"required":["name","redirectUris"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/oidc/clients/{id}":{"put":{"operationId":"contacts.customerOidc.update","summary":"Rename a client or change its redirect addresses.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":60}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsCustomerOidcUpdate","x-rivier-sdk":"contacts.customerOidc.update","x-rivier-cli":"contacts customer oidc update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":80},"redirectUris":{"type":"array","items":{"type":"string","maxLength":500},"minItems":1,"maxItems":10}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/oidc/clients/{id}/revoke":{"post":{"operationId":"contacts.customerOidc.revoke","summary":"Stop a client: its sign-ins and tokens end at once.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":60}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsCustomerOidcRevoke","x-rivier-sdk":"contacts.customerOidc.revoke","x-rivier-cli":"contacts customer oidc revoke","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","minLength":1,"maxLength":80}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/settings":{"get":{"operationId":"contacts.customerSettings.get","summary":"How customers sign in to a site: open sign-up or existing accounts only, passkeys on or off, how long a session lasts.","tags":["contacts"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsCustomerSettingsGet","x-rivier-sdk":"contacts.customerSettings.get","x-rivier-cli":"contacts customer settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.customerSettings.update","summary":"Change how customers sign in to a site. A person's decision; an agent is refused.","tags":["contacts"],"parameters":[{"name":"project","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsCustomerSettingsUpdate","x-rivier-sdk":"contacts.customerSettings.update","x-rivier-cli":"contacts customer settings update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signUp":{"type":"string","enum":["open","existing_only"]},"passkeys":{"type":"boolean"},"sessionDays":{"type":"integer","minimum":1,"maximum":90},"absoluteDays":{"type":"integer","minimum":1,"maximum":365},"passwords":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/summary":{"get":{"operationId":"contacts.customerSummary.get","summary":"A count for the home page: accounts, new this week, how many signed in this week, how many use a passkey, how many are blocked and how many attempts were turned away.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-mcp":"rivier_customer_accounts_summary","x-rivier-graphql":"Query.contactsCustomerSummaryGet","x-rivier-sdk":"contacts.customerSummary.get","x-rivier-cli":"contacts customer summary get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/test-link":{"post":{"operationId":"contacts.customerAccount.testLink","summary":"Send a sign-in code and link to an address as a test. In test mode the mail goes only to the project's test addresses.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-graphql":"Mutation.contactsCustomerAccountTestLink","x-rivier-sdk":"contacts.customerAccount.testLink","x-rivier-cli":"contacts customer account test link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"project":{"type":"string","minLength":1,"maxLength":80}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/{id}/block":{"post":{"operationId":"contacts.customerAccount.block","summary":"Block a customer account: every session ends and sign-in stops, without saying why to the customer. A person's decision; an agent needs a person's approval for this exact call.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":40}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsCustomerAccountBlock","x-rivier-sdk":"contacts.customerAccount.block","x-rivier-cli":"contacts customer account block","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/{id}/delete":{"post":{"operationId":"contacts.customerAccount.remove","summary":"Delete a customer account: sessions and passkeys end and the address is freed. The person's orders, bookings and invoices stay (they are the business's records); their data-subject request is the compliance center's. Needs a person's approval.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":40}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsCustomerAccountRemove","x-rivier-sdk":"contacts.customerAccount.remove","x-rivier-cli":"contacts customer account remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/customer-accounts/{id}/unblock":{"post":{"operationId":"contacts.customerAccount.unblock","summary":"Let a blocked customer account sign in again.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":40}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsCustomerAccountUnblock","x-rivier-sdk":"contacts.customerAccount.unblock","x-rivier-cli":"contacts customer account unblock","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources":{"get":{"operationId":"hosting.dataSource.list","summary":"The databases linked to this project, read-only.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.dataSource.list","x-rivier-cli":"hosting data source list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}},"required":["sources"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.dataSource.link","summary":"Link a Furcate database by id; the database service checks the read role was made for this project.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.link","x-rivier-cli":"hosting data source link","x-rivier-events":["hosting.dataSource.linked"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"databaseId":{"type":"string","maxLength":64},"label":{"type":"string","maxLength":120},"roleName":{"type":"string","maxLength":63}},"required":["databaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/metrics":{"get":{"operationId":"hosting.metric.list","summary":"The project's named metrics: each one's approved version (what it counts, from where, approved by whom) and whether a change waits for approval.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_metrics","x-rivier-graphql":"Query.hostingMetricList","x-rivier-sdk":"hosting.metric.list","x-rivier-cli":"hosting metric list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"metrics":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["metrics"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/metrics/{name}":{"get":{"operationId":"hosting.metric.versions","summary":"Every version of one metric, with who wrote and who approved it.","tags":["hosting"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingMetricVersions","x-rivier-sdk":"hosting.metric.versions","x-rivier-cli":"hosting metric versions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["versions"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"hosting.metric.draft","summary":"Write a metric once: what is counted (count, sum, average...), from which allowed table, with which conditions, by which dimensions and time column. A change makes a new draft; the approved version stays in use until a person approves the new one. The definition is tried over the whole table before it is kept.","tags":["hosting"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingMetricDraft","x-rivier-sdk":"hosting.metric.draft","x-rivier-cli":"hosting metric draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":1000,"default":"","description":"What the figure means, in words a reader of a report understands"},"sourceId":{"type":"string","format":"uuid","description":"The linked database"},"table":{"type":"string","pattern":"^[a-z_][a-z0-9_]*\\.[a-z_][a-z0-9_]*$","description":"schema.table on the source's allow-list"},"measure":{"type":"object","properties":{"fn":{"type":"string","enum":["count","count_distinct","sum","avg","min","max"]},"column":{"type":"string","pattern":"^[a-z_][a-z0-9_]{0,62}$"}},"required":["fn"],"additionalProperties":false},"where":{"type":"array","items":{"type":"object","properties":{"column":{"type":"string","pattern":"^[a-z_][a-z0-9_]{0,62}$"},"op":{"type":"string","enum":["eq","ne","lt","lte","gt","gte"],"default":"eq"},"value":{"anyOf":[{"type":"string","maxLength":200},{"type":"number"}]}},"required":["column","value"],"additionalProperties":false},"maxItems":8,"default":[],"description":"Conditions that are part of the definition, such as status = paid"},"dimensions":{"type":"array","items":{"type":"string","pattern":"^[a-z_][a-z0-9_]{0,62}$"},"maxItems":10,"default":[],"description":"Columns a reader may break the figure down by"},"timeColumn":{"type":"string","pattern":"^[a-z_][a-z0-9_]{0,62}$","description":"The date or time column a period applies to"},"unit":{"type":"string","enum":["count","currency","percent","duration","number"],"default":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$"}},"required":["label","sourceId","table","measure"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.metric.retire","summary":"Stop a metric being read; its versions stay on record.","tags":["hosting"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingMetricRetire","x-rivier-sdk":"hosting.metric.retire","x-rivier-cli":"hosting metric retire","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"retired":{"type":"number"}},"required":["retired"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/metrics/{name}/approve":{"post":{"operationId":"hosting.metric.approve","summary":"A person who manages the project approves the waiting draft; it becomes the version every screen, report and assistant reads.","tags":["hosting"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingMetricApprove","x-rivier-sdk":"hosting.metric.approve","x-rivier-cli":"hosting metric approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/metrics/{name}/value":{"post":{"operationId":"hosting.metric.value","summary":"The figure of a named metric, as its approved version defines it: over a period, by day, week, month, quarter or year, broken down by its allowed dimensions, computed over the whole table.","tags":["hosting"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_metric_value","x-rivier-graphql":"Query.hostingMetricValue","x-rivier-sdk":"hosting.metric.value","x-rivier-cli":"hosting metric value","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","maxLength":40,"description":"Start of the period (inclusive), a date or ISO time"},"to":{"type":"string","maxLength":40,"description":"End of the period (exclusive)"},"grain":{"type":"string","enum":["day","week","month","quarter","year"]},"by":{"type":"array","items":{"type":"string","pattern":"^[a-z_][a-z0-9_]{0,62}$"},"maxItems":3,"default":[],"description":"Dimensions to break the figure down by"},"version":{"type":"integer","minimum":1,"description":"A version other than the approved one; drafts are read by the project's own people only"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}":{"get":{"operationId":"hosting.dataSource.get","summary":"One link with its last snapshot (names, types, row estimates; never rows).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.dataSource.get","x-rivier-cli":"hosting data source get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.dataSource.unlink","summary":"Remove a link; nothing stays readable.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.unlink","x-rivier-cli":"hosting data source unlink","x-rivier-events":["hosting.dataSource.unlinked"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/aggregate":{"post":{"operationId":"hosting.dataSource.aggregate","summary":"Counted and summed figures over a whole allowed table, computed by the database: one to five measures, up to three groupings, a time grain, conditions. A personal column may be counted, not grouped by or shown; a restricted one is used nowhere.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.dataSource.aggregate","x-rivier-cli":"hosting data source aggregate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"table":{"type":"string"},"measures":{"type":"array","items":{"type":"object","properties":{"fn":{"type":"string"},"column":{"type":"string"}},"required":["fn"],"additionalProperties":false},"minItems":1}},"required":["table","measures"],"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/allow":{"put":{"operationId":"hosting.dataSource.allow","summary":"Choose the tables the project may read (only tables the operator granted).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.allow","x-rivier-cli":"hosting data source allow","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"string","maxLength":130},"maxItems":200},"confirmSensitive":{"type":"boolean"}},"required":["tables"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/ingest":{"post":{"operationId":"hosting.dataSource.ingest","summary":"Copy up to 100 rows of an allowed table into memory, on purpose.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.ingest","x-rivier-cli":"hosting data source ingest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"table":{"type":"string"},"columns":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["table","columns"],"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/mappings":{"get":{"operationId":"hosting.dataSource.mappings","summary":"Proposed mappings of tables to contacts, products, orders and content.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.dataSource.mappings","x-rivier-cli":"hosting data source mappings","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/mappings/{mid}":{"post":{"operationId":"hosting.dataSource.decideMapping","summary":"Accept or reject a proposed mapping.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"mid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.decideMapping","x-rivier-cli":"hosting data source decide mapping","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["accept","reject"]}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/read":{"post":{"operationId":"hosting.dataSource.read","summary":"A plan by default; with execute, up to 500 masked rows of one allowed table.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.read","x-rivier-cli":"hosting data source read","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"table":{"type":"string"},"columns":{"type":"array","items":{"type":"string"},"minItems":1},"execute":{"type":"boolean"}},"required":["table","columns"],"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/refresh":{"post":{"operationId":"hosting.dataSource.refresh","summary":"Take a fresh snapshot and check the link is still reachable.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.refresh","x-rivier-cli":"hosting data source refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/shares":{"post":{"operationId":"hosting.dataSource.share","summary":"Put one fixed read of an allowed table behind an address for 7, 30 or 90 days. Done by a person; no personal or restricted column.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.share","x-rivier-cli":"hosting data source share","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"table":{"type":"string"},"columns":{"type":"array","items":{"type":"string"},"minItems":1},"days":{"type":"number"}},"required":["title","table","columns"],"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/shares/{sid}":{"delete":{"operationId":"hosting.dataSource.unshare","summary":"Remove a shared address; it shows nothing from then on.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.unshare","x-rivier-cli":"hosting data source unshare","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/datasources/{id}/write-rules":{"put":{"operationId":"hosting.dataSource.writeRules","summary":"Per-table write rules; nothing writes without one and an approval.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.dataSource.writeRules","x-rivier-cli":"hosting data source write rules","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"table":{"type":"string"},"ops":{"type":"array","items":{"type":"string","enum":["insert","update"]}},"columns":{"type":"array","items":{"type":"string"}}},"required":["table","ops","columns"],"additionalProperties":false},"maxItems":50}},"required":["rules"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"databaseId":{"type":"string"},"roleName":{"type":"string"},"label":{"type":"string"},"status":{"type":"string"}},"required":["id","databaseId","roleName","label","status"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/analytics":{"get":{"operationId":"domains.deliverabilityAnalytics.get","summary":"Sending, delivery, bounce, complaint, open and click numbers by day, recipient provider and transport, with plain flags for rates over the project's lines and for providers where opens or deferrals look wrong.","tags":["domains"],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","maxLength":253}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":180}}],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_analytics","x-rivier-graphql":"Query.domainsDeliverabilityAnalyticsGet","x-rivier-sdk":"domains.deliverabilityAnalytics.get","x-rivier-cli":"domains deliverability analytics get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/blocklists":{"get":{"operationId":"domains.deliverabilityBlocklist.list","summary":"The blocklist zones watched, the suggested ones not yet adopted, and the last answers.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_blocklists","x-rivier-graphql":"Query.domainsDeliverabilityBlocklistList","x-rivier-sdk":"domains.deliverabilityBlocklist.list","x-rivier-cli":"domains deliverability blocklist list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"domains.deliverabilityBlocklist.save","summary":"Watch a blocklist zone, or change how it counts (operator).","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityBlocklistSave","x-rivier-sdk":"domains.deliverabilityBlocklist.save","x-rivier-cli":"domains deliverability blocklist save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"zone":{"type":"string","minLength":3,"maxLength":253},"kind":{"type":"string","enum":["ip","domain"]},"severity":{"type":"string","enum":["block","warn"]},"enabled":{"type":"boolean"},"note":{"type":"string","maxLength":200}},"required":["zone","kind","severity","enabled"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/blocklists/scan":{"post":{"operationId":"domains.deliverabilityBlocklist.scan","summary":"Query every watched zone for every active sending IP now (operator). DNS queries only.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityBlocklistScan","x-rivier-sdk":"domains.deliverabilityBlocklist.scan","x-rivier-cli":"domains deliverability blocklist scan","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"not":{}},{"type":"object","properties":{},"additionalProperties":true}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/blocklists/{zone}":{"delete":{"operationId":"domains.deliverabilityBlocklist.remove","summary":"Stop watching a blocklist zone (operator).","tags":["domains"],"parameters":[{"name":"zone","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityBlocklistRemove","x-rivier-sdk":"domains.deliverabilityBlocklist.remove","x-rivier-cli":"domains deliverability blocklist remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains":{"get":{"operationId":"domains.deliverabilityDomain.list","summary":"Every domain with its deliverability set-up: whether the own MTA is allowed and how many checks fail.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_domains","x-rivier-graphql":"Query.domainsDeliverabilityDomainList","x-rivier-sdk":"domains.deliverabilityDomain.list","x-rivier-cli":"domains deliverability domain list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["domains"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/fixes":{"get":{"operationId":"domains.deliverabilityFix.list","summary":"Open and past fix proposals for a domain.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_fixes","x-rivier-graphql":"Query.domainsDeliverabilityFixList","x-rivier-sdk":"domains.deliverabilityFix.list","x-rivier-cli":"domains deliverability fix list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"fixes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["fixes"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/fixes/propose":{"post":{"operationId":"domains.deliverabilityFix.propose","summary":"Propose a fix for every failing check, as the exact records or instructions. Changes nothing.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_deliv_propose","x-rivier-graphql":"Mutation.domainsDeliverabilityFixPropose","x-rivier-sdk":"domains.deliverabilityFix.propose","x-rivier-cli":"domains deliverability fix propose","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"not":{}},{"type":"object","properties":{},"additionalProperties":true}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"fixes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["fixes"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/fixes/{id}/apply":{"post":{"operationId":"domains.deliverabilityFix.apply","summary":"A person approves a DNS fix: the records are written through the Domains connector after a zone dump, then the domain is checked again.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityFixApply","x-rivier-sdk":"domains.deliverabilityFix.apply","x-rivier-cli":"domains deliverability fix apply","x-rivier-events":["domains.deliverabilityFix.applied"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/fixes/{id}/reject":{"post":{"operationId":"domains.deliverabilityFix.reject","summary":"Reject a fix proposal.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityFixReject","x-rivier-sdk":"domains.deliverabilityFix.reject","x-rivier-cli":"domains deliverability fix reject","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/gate":{"get":{"operationId":"domains.deliverabilityGate.get","summary":"Whether the own MTA may carry this domain's mail now, each check passed or failed in words. The relay is always allowed.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_gate","x-rivier-graphql":"Query.domainsDeliverabilityGateGet","x-rivier-sdk":"domains.deliverabilityGate.get","x-rivier-cli":"domains deliverability gate get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/own-mta":{"post":{"operationId":"domains.deliverabilityOwnMta.set","summary":"A person switches the own MTA on or off for a domain. On is refused unless every check passes.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityOwnMtaSet","x-rivier-sdk":"domains.deliverabilityOwnMta.set","x-rivier-cli":"domains deliverability own mta set","x-rivier-events":["domains.deliverabilityOwnMta.changed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"on":{"type":"boolean"}},"required":["on"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/readiness":{"get":{"operationId":"domains.deliverabilityReadiness.get","summary":"One readiness report for a domain: SPF, DKIM, DMARC, MTA-STS, MX, return-path, BIMI, reverse DNS, blocklists, warmup, reputation and the own-MTA gate, with the next steps in words.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}},{"name":"refresh","in":"query","required":false,"schema":{"type":"string","maxLength":5}}],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_readiness","x-rivier-graphql":"Query.domainsDeliverabilityReadinessGet","x-rivier-sdk":"domains.deliverabilityReadiness.get","x-rivier-cli":"domains deliverability readiness get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/setup":{"post":{"operationId":"domains.deliverabilityDomain.setup","summary":"Set the DKIM selector, return-path host, IP pool and warmup plan of a domain. Changing the pool or selector switches the own MTA off until it is approved again.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_deliv_setup","x-rivier-graphql":"Mutation.domainsDeliverabilityDomainSetup","x-rivier-sdk":"domains.deliverabilityDomain.setup","x-rivier-cli":"domains deliverability domain setup","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"poolId":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"warmupPlanId":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"warmupStart":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"warmupPaused":{"type":"boolean"},"selector":{"anyOf":[{"type":"string","maxLength":63},{"type":"null"}]},"returnPathHost":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/signals":{"post":{"operationId":"domains.deliverabilitySignal.add","summary":"Record a reading from outside (Gmail Postmaster reputation, Microsoft SNDS colour, a seed test result) so it shows beside the sending numbers.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_deliv_signal","x-rivier-graphql":"Mutation.domainsDeliverabilitySignalAdd","x-rivier-sdk":"domains.deliverabilitySignal.add","x-rivier-cli":"domains deliverability signal add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","minLength":1,"maxLength":40},"metric":{"type":"string","minLength":1,"maxLength":60},"value":{"type":"number"},"detail":{"type":"string","maxLength":300},"at":{"type":"string","format":"date-time"}},"required":["source","metric","value"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/domains/{d}/warmup":{"get":{"operationId":"domains.deliverabilityWarmup.schedule","summary":"The warmup plan laid onto the calendar for a domain: each day's date and volume caps.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}},{"name":"planId","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"start","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_warmup","x-rivier-graphql":"Query.domainsDeliverabilityWarmupSchedule","x-rivier-sdk":"domains.deliverabilityWarmup.schedule","x-rivier-cli":"domains deliverability warmup schedule","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/events":{"post":{"operationId":"domains.deliverabilityEvent.ingest","summary":"Report a delivery event (sent, delivered, deferred, bounced, complained, opened, clicked, unsubscribed). Counted per domain, day and recipient provider; hard bounces and complaints suppress the address; repeated soft bounces suppress by the project's rule.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityEventIngest","x-rivier-sdk":"domains.deliverabilityEvent.ingest","x-rivier-cli":"domains deliverability event ingest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":253},"state":{"type":"string","enum":["sent","delivered","deferred","bounced","complained","opened","clicked","unsubscribed"]},"transport":{"type":"string","minLength":1,"maxLength":40},"to":{"type":"string","maxLength":320},"code":{"type":"string","maxLength":40},"bounceType":{"type":"string","enum":["hard","soft"]},"at":{"type":"string","format":"date-time"},"ref":{"type":"string","maxLength":200},"ip":{"type":"string","maxLength":45}},"required":["domain","state","transport"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/ips":{"post":{"operationId":"domains.deliverabilityIp.save","summary":"Add or change a sending IP: pool, expected reverse DNS name, status, warmup plan and start date (operator).","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityIpSave","x-rivier-sdk":"domains.deliverabilityIp.save","x-rivier-cli":"domains deliverability ip save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ip":{"type":"string","minLength":7,"maxLength":15},"poolId":{"type":"string","minLength":1,"maxLength":80},"ptrExpected":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]},"status":{"type":"string","enum":["active","paused","retired"]},"warmupPlanId":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"warmupStart":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]}},"required":["ip","poolId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/ips/{ip}":{"delete":{"operationId":"domains.deliverabilityIp.remove","summary":"Remove a sending IP (operator).","tags":["domains"],"parameters":[{"name":"ip","in":"path","required":true,"schema":{"type":"string","minLength":7,"maxLength":15}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityIpRemove","x-rivier-sdk":"domains.deliverabilityIp.remove","x-rivier-cli":"domains deliverability ip remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/pools":{"get":{"operationId":"domains.deliverabilityPool.list","summary":"IP pools and their IPs (the operator sees all, a project sees the pool assigned to its domains).","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_pools","x-rivier-graphql":"Query.domainsDeliverabilityPoolList","x-rivier-sdk":"domains.deliverabilityPool.list","x-rivier-cli":"domains deliverability pool list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["pools"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"domains.deliverabilityPool.save","summary":"Create or change an IP pool (operator).","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityPoolSave","x-rivier-sdk":"domains.deliverabilityPool.save","x-rivier-cli":"domains deliverability pool save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","minLength":1,"maxLength":80},"tier":{"type":"string","enum":["shared","dedicated"]},"heloHost":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]},"note":{"type":"string","maxLength":300}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/pools/{id}":{"delete":{"operationId":"domains.deliverabilityPool.remove","summary":"Remove an empty IP pool (operator).","tags":["domains"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityPoolRemove","x-rivier-sdk":"domains.deliverabilityPool.remove","x-rivier-cli":"domains deliverability pool remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/rules":{"get":{"operationId":"domains.deliverabilityRules.get","summary":"The project's lines: soft-bounce escalation, complaint and bounce rates that warn or pause, minimum sample.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_rules","x-rivier-graphql":"Query.domainsDeliverabilityRulesGet","x-rivier-sdk":"domains.deliverabilityRules.get","x-rivier-cli":"domains deliverability rules get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"domains.deliverabilityRules.set","summary":"Change the project's deliverability lines (owner or manager).","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_deliv_rules_set","x-rivier-graphql":"Mutation.domainsDeliverabilityRulesSet","x-rivier-sdk":"domains.deliverabilityRules.set","x-rivier-cli":"domains deliverability rules set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"softBounceLimit":{"type":"integer","minimum":1},"softBounceWindowDays":{"type":"integer","minimum":1},"complaintRateWarn":{"type":"number","minimum":0,"maximum":1},"complaintRatePause":{"type":"number","minimum":0,"maximum":1},"bounceRateWarn":{"type":"number","minimum":0,"maximum":1},"bouncePause":{"type":"number","minimum":0,"maximum":1},"minSample":{"type":"integer","minimum":0},"reportMaxAgeSeconds":{"type":"integer","minimum":0},"blocklistMaxAgeSeconds":{"type":"integer","minimum":0}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/suppressions/import":{"post":{"operationId":"domains.deliverabilitySuppression.import","summary":"Add many addresses to the do-not-send list at once (bounced, complained, manual, invalid). Dry run counts without changing. Listing and lifting are under /crm/suppressions.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_deliv_suppress_import","x-rivier-graphql":"Mutation.domainsDeliverabilitySuppressionImport","x-rivier-sdk":"domains.deliverabilitySuppression.import","x-rivier-cli":"domains deliverability suppression import","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"addresses":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"minItems":1,"maxItems":5000},"reason":{"type":"string","enum":["bounced","complained","manual","invalid"],"default":"manual"},"dryRun":{"type":"boolean"}},"required":["addresses"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/warmup-plans":{"get":{"operationId":"domains.deliverabilityPlan.list","summary":"Warmup plans: the stage tables of volume per day per domain and per IP.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_deliv_plans","x-rivier-graphql":"Query.domainsDeliverabilityPlanList","x-rivier-sdk":"domains.deliverabilityPlan.list","x-rivier-cli":"domains deliverability plan list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"plans":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["plans"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"domains.deliverabilityPlan.save","summary":"Create or change a warmup plan (operator). The volumes are the operator's numbers.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityPlanSave","x-rivier-sdk":"domains.deliverabilityPlan.save","x-rivier-cli":"domains deliverability plan save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"name":{"type":"string","minLength":1,"maxLength":80},"stages":{"type":"array","items":{"type":"object","properties":{"day":{"type":"integer","minimum":1},"domainVolume":{"type":"integer","minimum":0},"ipVolume":{"type":"integer","minimum":0}},"required":["day","domainVolume","ipVolume"],"additionalProperties":false},"minItems":1,"maxItems":120},"afterLast":{"type":"string","enum":["hold","unlimited"]},"note":{"type":"string","maxLength":300}},"required":["name","stages"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/deliverability/warmup-plans/{id}":{"delete":{"operationId":"domains.deliverabilityPlan.remove","summary":"Remove a warmup plan (operator).","tags":["domains"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"domains:write","x-rivier-graphql":"Mutation.domainsDeliverabilityPlanRemove","x-rivier-sdk":"domains.deliverabilityPlan.remove","x-rivier-cli":"domains deliverability plan remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/documents":{"post":{"operationId":"content.document.create","summary":"Make a document in the drive: a title, and the editor's content if there is some already.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_document_create","x-rivier-graphql":"Mutation.contentDocumentCreate","x-rivier-sdk":"content.document.create","x-rivier-cli":"content document create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"doc":{"type":"object","properties":{},"additionalProperties":true}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/documents/{id}":{"get":{"operationId":"content.document.get","summary":"A document: its title, its content as the editor's tree, and the version it is at.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_document_get","x-rivier-graphql":"Query.contentDocumentGet","x-rivier-sdk":"content.document.get","x-rivier-cli":"content document get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"content.document.save","summary":"Save a document, naming the version the change started from. If someone saved a newer one meanwhile, the save is refused with theirs.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_document_save","x-rivier-graphql":"Mutation.contentDocumentSave","x-rivier-sdk":"content.document.save","x-rivier-cli":"content document save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"doc":{"type":"object","properties":{},"additionalProperties":true},"title":{"type":"string","maxLength":200},"baseVersionId":{"type":"string"}},"required":["doc","baseVersionId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/documents/{id}/comments":{"get":{"operationId":"content.document.comments","summary":"Comments on a document, with replies and whether each was resolved.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_document_comments","x-rivier-graphql":"Query.contentDocumentComments","x-rivier-sdk":"content.document.comments","x-rivier-cli":"content document comments","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["comments"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.document.comment","summary":"Comment on a passage of a document (the quoted words), or reply to a comment.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_document_comment","x-rivier-graphql":"Mutation.contentDocumentComment","x-rivier-sdk":"content.document.comment","x-rivier-cli":"content document comment","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","maxLength":4000},"quote":{"type":"string","maxLength":500},"parentId":{"type":"string","format":"uuid"}},"required":["body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["comments"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/documents/{id}/comments/{commentId}/resolve":{"post":{"operationId":"content.document.resolveComment","summary":"Resolve a comment and its replies, or open it again.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"commentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-mcp":"rivier_document_resolve_comment","x-rivier-graphql":"Mutation.contentDocumentResolveComment","x-rivier-sdk":"content.document.resolveComment","x-rivier-cli":"content document resolve comment","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resolved":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["comments"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/documents/{id}/export":{"get":{"operationId":"content.document.export","summary":"A document as HTML, Markdown or PDF.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["html","md","pdf"]}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.document.export","x-rivier-cli":"content document export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/documents/{id}/live-ticket":{"post":{"operationId":"content.document.liveTicket","summary":"A ticket, good for five minutes, to write a document together with others at its live address. Only a person with a write role may change the text there; others follow along.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentDocumentLiveTicket","x-rivier-sdk":"content.document.liveTicket","x-rivier-cli":"content document live ticket","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"canWrite":{"type":"boolean"},"who":{"type":"string"}},"required":["url","canWrite","who"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/events":{"get":{"operationId":"keys.events.list","summary":"Events from a cursor, limited to the modules the key can read.","tags":["keys"],"parameters":[{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}},{"name":"type","in":"query","required":false,"schema":{"type":"string","maxLength":80}}],"x-rivier-scope":"keys:read","x-rivier-graphql":"Query.keysEventsList","x-rivier-sdk":"keys.events.list","x-rivier-cli":"keys events list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"seq":{"type":"number"},"type":{"type":"string"},"created":{"type":"string"},"source":{"type":"string"},"mode":{"type":"string","enum":["live","test"]},"data":{}},"required":["id","seq","type","created","source","mode"],"additionalProperties":false}},"next":{"type":"number"}},"required":["events","next"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/events/catalogue":{"get":{"operationId":"keys.events.catalogue","summary":"Every event type, and the operation that raises it.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-graphql":"Query.keysEventsCatalogue","x-rivier-sdk":"keys.events.catalogue","x-rivier-cli":"keys events catalogue","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"module":{"type":"string"},"operations":{"type":"array","items":{"type":"string"}}},"required":["type","module","operations"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/events/stream":{"get":{"operationId":"keys.events.stream","summary":"A server-sent stream of events; reconnect with Last-Event-ID to resume.","tags":["keys"],"parameters":[{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"x-rivier-scope":"keys:read","x-rivier-sdk":"keys.events.stream","x-rivier-cli":"keys events stream","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/galleries/suggest":{"post":{"operationId":"files.media.suggest","summary":"A suggested alt text, caption and tags for a stored picture, marked as made by AI. Nothing is saved.","tags":["files"],"parameters":[],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_personas_media_suggest","x-rivier-graphql":"Mutation.filesMediaSuggest","x-rivier-sdk":"files.media.suggest","x-rivier-cli":"files media suggest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"locale":{"type":"string","minLength":2,"maxLength":12}},"required":["assetId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/galleries/{ownerKind}/{ownerId}":{"get":{"operationId":"files.gallery.get","summary":"The ordered pictures and files of a product, room type, service, property, unit, amenity, rate plan or content entry, with caption, alt text, focal point and whether each can show on the site.","tags":["files"],"parameters":[{"name":"ownerKind","in":"path","required":true,"schema":{"type":"string","enum":["product","property","area","unit","amenity","rate_plan","extra","poi","policy","entry"]}},{"name":"ownerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_personas_media_gallery_get","x-rivier-graphql":"Query.filesGalleryGet","x-rivier-sdk":"files.gallery.get","x-rivier-cli":"files gallery get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["items"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"files.gallery.set","summary":"Replace the gallery of an item with this ordered list of library files.","tags":["files"],"parameters":[{"name":"ownerKind","in":"path","required":true,"schema":{"type":"string","enum":["product","property","area","unit","amenity","rate_plan","extra","poi","policy","entry"]}},{"name":"ownerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"files:write","x-rivier-mcp":"rivier_personas_media_gallery_set","x-rivier-graphql":"Mutation.filesGallerySet","x-rivier-sdk":"files.gallery.set","x-rivier-cli":"files gallery set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true},"maxItems":60}},"required":["items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["items"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/answer-loss":{"get":{"operationId":"analytics.geo.answerLoss","summary":"Where answers cite competitors instead.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsGeoAnswerLoss","x-rivier-sdk":"analytics.geo.answerLoss","x-rivier-cli":"analytics geo answer loss","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/audit":{"post":{"operationId":"analytics.geo.audit","summary":"Score a page's readiness for AI search.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-mcp":"rivier_geo_audit","x-rivier-graphql":"Mutation.analyticsGeoAudit","x-rivier-sdk":"analytics.geo.audit","x-rivier-cli":"analytics geo audit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/citation-verification":{"get":{"operationId":"analytics.geo.citations","summary":"Whether cited claims are verified.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsGeoCitations","x-rivier-sdk":"analytics.geo.citations","x-rivier-cli":"analytics geo citations","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/connectors":{"get":{"operationId":"analytics.connector.list","summary":"Crawler-capture connections.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsConnectorList","x-rivier-sdk":"analytics.connector.list","x-rivier-cli":"analytics connector list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/connectors/cloudflare":{"post":{"operationId":"analytics.connector.connect","summary":"Connect Cloudflare for crawler capture.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsConnectorConnect","x-rivier-sdk":"analytics.connector.connect","x-rivier-cli":"analytics connector connect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/connectors/cloudflare/authorize":{"get":{"operationId":"analytics.connector.authorize","summary":"Begin connecting Cloudflare by sign-in.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsConnectorAuthorize","x-rivier-sdk":"analytics.connector.authorize","x-rivier-cli":"analytics connector authorize","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/connectors/{id}":{"delete":{"operationId":"analytics.connector.remove","summary":"Remove a crawler-capture connection.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsConnectorRemove","x-rivier-sdk":"analytics.connector.remove","x-rivier-cli":"analytics connector remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/discovery/submit":{"post":{"operationId":"analytics.geo.submit","summary":"Submit a site for discovery.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsGeoSubmit","x-rivier-sdk":"analytics.geo.submit","x-rivier-cli":"analytics geo submit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/forecast":{"get":{"operationId":"analytics.geo.forecast","summary":"Forecast of AI traffic.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsGeoForecast","x-rivier-sdk":"analytics.geo.forecast","x-rivier-cli":"analytics geo forecast","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/geography":{"get":{"operationId":"analytics.geo.geography","summary":"Where AI traffic comes from.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsGeoGeography","x-rivier-sdk":"analytics.geo.geography","x-rivier-cli":"analytics geo geography","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/geography.csv":{"get":{"operationId":"analytics.geo.geographyCsv","summary":"The geography as CSV.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-sdk":"analytics.geo.geographyCsv","x-rivier-cli":"analytics geo geography csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/metadata":{"post":{"operationId":"analytics.geo.metadata","summary":"Generate metadata for AI discovery.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsGeoMetadata","x-rivier-sdk":"analytics.geo.metadata","x-rivier-cli":"analytics geo metadata","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/recommendations":{"get":{"operationId":"analytics.geo.recommendations","summary":"What to change to be cited more.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsGeoRecommendations","x-rivier-sdk":"analytics.geo.recommendations","x-rivier-cli":"analytics geo recommendations","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/simulate":{"post":{"operationId":"analytics.geo.simulate","summary":"Simulate how answer engines would see a page.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsGeoSimulate","x-rivier-sdk":"analytics.geo.simulate","x-rivier-cli":"analytics geo simulate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/telemetry":{"get":{"operationId":"analytics.telemetry.get","summary":"AI crawler visits to a site.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsTelemetryGet","x-rivier-sdk":"analytics.telemetry.get","x-rivier-cli":"analytics telemetry get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/telemetry.csv":{"get":{"operationId":"analytics.telemetry.csv","summary":"The visits as CSV.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-sdk":"analytics.telemetry.csv","x-rivier-cli":"analytics telemetry csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/geo/tracker":{"get":{"operationId":"analytics.geo.tracker","summary":"Tracked prompts and their standing.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsGeoTracker","x-rivier-sdk":"analytics.geo.tracker","x-rivier-cli":"analytics geo tracker","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/blocks":{"get":{"operationId":"hosting.block.list","summary":"The block registry: every block a page can be built from, with its props, slots, bindings, permissions, accessibility notes, tokens and an example.","tags":["hosting"],"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["layout","content","pms","widget"]}},{"name":"name","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_registry_list","x-rivier-graphql":"Query.hostingBlockList","x-rivier-sdk":"hosting.block.list","x-rivier-cli":"hosting block list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"blocks":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["blocks"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/brand-kit":{"get":{"operationId":"hosting.library.brandKit","summary":"The brand kit the library reads from the project's brand assets (colours, fonts and whether they have a web licence, voice words); null when there is none. The design call uses it without being given it.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_brand_kit","x-rivier-graphql":"Query.hostingLibraryBrandKit","x-rivier-sdk":"hosting.library.brandKit","x-rivier-cli":"hosting library brand kit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/design":{"post":{"operationId":"hosting.library.design","summary":"A complete, coherent design choice from a brief alone (every field optional): palette, type pairing, spacing and shape, sections, flow, closest template, and for apps shell, screens and component style; plus alternatives with a reason each. A brand kit (colours, fonts, voice) acts as constraints: the palette is built from the brand colours with every contrast correction reported, brand fonts without a web licence are replaced by the nearest open pairing. Deterministic and versioned (selectionVersion).","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_design_library_design","x-rivier-graphql":"Mutation.hostingLibraryDesign","x-rivier-sdk":"hosting.library.design","x-rivier-cli":"hosting library design","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1500},"surface":{"type":"string","enum":["website","app","both"]},"siteType":{"type":"string","maxLength":40},"appType":{"type":"string","enum":["customer-portal","guest-app","member-area","staff-dashboard","booking-app","shop-app","internal-tool","community-app"]},"businessType":{"type":"string","maxLength":40},"purpose":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"mood":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"density":{"type":"string","enum":["airy","balanced","compact"]},"languages":{"type":"array","items":{"type":"string","maxLength":12},"maxItems":12},"rtl":{"type":"boolean"},"a11y":{"type":"string","enum":["AA","AAA"]},"brand":{"type":"object","properties":{"draft":{"type":"boolean"},"name":{"type":"string","maxLength":60},"colors":{"type":"array","items":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"minItems":1,"maxItems":6},"fonts":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":60},"role":{"type":"string","enum":["heading","body","both"]},"style":{"type":"string","enum":["sans","serif","mono","display"]},"webLicence":{"anyOf":[{"type":"boolean"},{"type":"string","const":"unknown"}]}},"required":["family","webLicence"],"additionalProperties":false},"maxItems":4},"imagery":{"type":"string","maxLength":200},"voice":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"logoText":{"type":"string","maxLength":40}},"required":["colors"],"additionalProperties":false},"useStoredBrand":{"type":"boolean"},"dark":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/entries":{"get":{"operationId":"hosting.library.search","summary":"Search the design library: palettes, type pairings, section patterns, flows, spacing sets, tones, designs, templates and app shells and screens. Tag filters (including surface: website or app) plus a plain-words query; says whether the ranking used meaning or words only.","tags":["hosting"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"siteType","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"businessType","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"purpose","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"mood","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"density","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"layout","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"colourFamily","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"a11y","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"performance","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"device","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"scripts","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"languages","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"surface","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"appType","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"platform","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"category","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"visibility","in":"query","required":false,"schema":{"type":"string","maxLength":400}},{"name":"rtl","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":5000}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","enum":["en","de","es","fr","ja","ar","sv","dv"]}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_search","x-rivier-graphql":"Query.hostingLibrarySearch","x-rivier-sdk":"hosting.library.search","x-rivier-cli":"hosting library search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/entries/{entry}":{"get":{"operationId":"hosting.library.get","summary":"One entry in full, with its checks, provenance, usage and changelog. With ?version, that exact version, whatever its state.","tags":["hosting"],"parameters":[{"name":"entry","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"}},{"name":"version","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_get","x-rivier-graphql":"Query.hostingLibraryGet","x-rivier-sdk":"hosting.library.get","x-rivier-cli":"hosting library get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/entries/{entry}/similar":{"get":{"operationId":"hosting.library.similar","summary":"Entries like this one.","tags":["hosting"],"parameters":[{"name":"entry","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"}},{"name":"sameKind","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_similar","x-rivier-graphql":"Query.hostingLibrarySimilar","x-rivier-sdk":"hosting.library.similar","x-rivier-cli":"hosting library similar","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/extract-colours":{"post":{"operationId":"hosting.library.extractColours","summary":"Colours from a logo or a picture (sent as base64) and the readable palette built from them, with every contrast correction listed. Nothing is stored.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_extract_colours","x-rivier-graphql":"Query.hostingLibraryExtractColours","x-rivier-sdk":"hosting.library.extractColours","x-rivier-cli":"hosting library extract colours","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"type":"string","minLength":20,"maxLength":4200000,"description":"The image as base64 (PNG, JPEG, WebP or GIF, up to 3 MB)"},"name":{"type":"string","maxLength":60}},"required":["image"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/facets":{"get":{"operationId":"hosting.library.facets","summary":"How many entries carry each tag value, for the filter lists.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryFacets","x-rivier-sdk":"hosting.library.facets","x-rivier-cli":"hosting library facets","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/favourites":{"get":{"operationId":"hosting.libraryFavourite.list","summary":"The caller's favourite entries.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryFavouriteList","x-rivier-sdk":"hosting.libraryFavourite.list","x-rivier-cli":"hosting library favourite list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"favourites":{"type":"array","items":{"type":"string"}}},"required":["favourites"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/favourites/{entry}":{"put":{"operationId":"hosting.libraryFavourite.set","summary":"Mark or unmark a favourite.","tags":["hosting"],"parameters":[{"name":"entry","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryFavouriteSet","x-rivier-sdk":"hosting.libraryFavourite.set","x-rivier-cli":"hosting library favourite set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"on":{"type":"boolean"}},"required":["on"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/featured":{"get":{"operationId":"hosting.library.featured","summary":"The sets the library's maintainers have featured.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryFeatured","x-rivier-sdk":"hosting.library.featured","x-rivier-cli":"hosting library featured","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/palette/evaluate":{"post":{"operationId":"hosting.library.evaluatePalette","summary":"Judge a palette being edited (seven colours, or brand colours with overrides): every contrast and colour-blind check with its result, the colours as seen with each kind of colour blindness, and the smallest change that fixes what fails. Stores nothing.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_evaluate_palette","x-rivier-graphql":"Query.hostingLibraryEvaluatePalette","x-rivier-sdk":"hosting.library.evaluatePalette","x-rivier-cli":"hosting library evaluate palette","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"object","properties":{"colors":{"type":"array","items":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"minItems":1,"maxItems":6}},"required":["colors"],"additionalProperties":false},"colors":{"type":"object","additionalProperties":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"mode":{"type":"string","enum":["light","dark"],"default":"light"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/ratings/{entry}":{"put":{"operationId":"hosting.libraryRating.set","summary":"Rate an entry from 1 to 5; one rating per project, shown to the maintainers only as an average.","tags":["hosting"],"parameters":[{"name":"entry","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryRatingSet","x-rivier-sdk":"hosting.libraryRating.set","x-rivier-cli":"hosting library rating set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rating":{"type":"integer","minimum":1,"maximum":5}},"required":["rating"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/select":{"post":{"operationId":"hosting.library.select","summary":"Ranked picks per kind for a design brief, each with reasons; hard requirements remove entries first.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_select","x-rivier-graphql":"Query.hostingLibrarySelect","x-rivier-sdk":"hosting.library.select","x-rivier-cli":"hosting library select","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1500},"siteType":{"type":"string","maxLength":40},"businessType":{"type":"string","maxLength":40},"purpose":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"mood":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"density":{"type":"string","enum":["airy","balanced","compact"]},"languages":{"type":"array","items":{"type":"string","maxLength":12},"maxItems":12},"rtl":{"type":"boolean"},"a11y":{"type":"string","enum":["AA","AAA"]},"brandHex":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"kinds":{"type":"array","items":{"type":"string","enum":["template","design","section","flow","palette","type_pairing","token_set","icon_style","widget_style","tone","app_shell","screen","component_style"]},"maxItems":13},"perKind":{"type":"integer","minimum":1,"maximum":10}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/design-library/starter-kit":{"post":{"operationId":"hosting.library.starterKit","summary":"A first brand for someone with none: a text-mark logo, a palette and two open fonts. Always a draft.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_starter_kit","x-rivier-graphql":"Query.hostingLibraryStarterKit","x-rivier-sdk":"hosting.library.starterKit","x-rivier-cli":"hosting library starter kit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"mood":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":4},"businessType":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/exports":{"get":{"operationId":"hosting.export.list","summary":"The exports this project holds.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_exports_list","x-rivier-graphql":"Query.hostingExportList","x-rivier-sdk":"hosting.export.list","x-rivier-cli":"hosting export list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"exports":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"siteSlug":{"type":"string"},"reason":{"type":"string","enum":["owner","retention","erasure"]},"state":{"type":"string","enum":["ready","deleted"]},"parts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["records","database","storage"]},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"backupId":{"type":["string","null"]},"note":{"type":"string"}},"required":["name","bytes","sha256","backupId","note"],"additionalProperties":false}},"expiresAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","projectId","siteSlug","reason","state","parts","expiresAt","createdAt"],"additionalProperties":true}}},"required":["exports"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/exports/{eid}":{"get":{"operationId":"hosting.export.get","summary":"One export with its parts and checksums.","tags":["hosting"],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_export_get","x-rivier-graphql":"Query.hostingExportGet","x-rivier-sdk":"hosting.export.get","x-rivier-cli":"hosting export get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"siteSlug":{"type":"string"},"reason":{"type":"string","enum":["owner","retention","erasure"]},"state":{"type":"string","enum":["ready","deleted"]},"parts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["records","database","storage"]},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"backupId":{"type":["string","null"]},"note":{"type":"string"}},"required":["name","bytes","sha256","backupId","note"],"additionalProperties":false}},"expiresAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","projectId","siteSlug","reason","state","parts","expiresAt","createdAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/exports/{eid}/download":{"get":{"operationId":"hosting.export.download","summary":"Download one part of an export.","tags":["hosting"],"parameters":[{"name":"eid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"part","in":"query","required":true,"schema":{"type":"string","enum":["records","database"]}}],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.export.download","x-rivier-cli":"hosting export download","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites":{"get":{"operationId":"hosting.site.list","summary":"The sites this project hosts.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_sites_list","x-rivier-graphql":"Query.hostingSiteList","x-rivier-sdk":"hosting.site.list","x-rivier-cli":"hosting site list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string","enum":["static","next"]},"state":{"type":"string"},"host":{"type":"string"},"productionDeploymentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"retainedUntil":{"type":["string","null"]},"region":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","name","tier","state","host","productionDeploymentId","retainedUntil","createdAt","updatedAt"],"additionalProperties":false}}},"required":["sites"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.site.create","summary":"Create a site with a generated address under the platform domain.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_site_create","x-rivier-graphql":"Mutation.hostingSiteCreate","x-rivier-sdk":"hosting.site.create","x-rivier-cli":"hosting site create","x-rivier-events":["hosting.site.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","minLength":1,"maxLength":16},"tier":{"type":"string","enum":["static","next"]},"region":{"type":"string","minLength":2,"maxLength":24}},"required":["name","slug","tier"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string","enum":["static","next"]},"state":{"type":"string"},"host":{"type":"string"},"productionDeploymentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"retainedUntil":{"type":["string","null"]},"region":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","name","tier","state","host","productionDeploymentId","retainedUntil","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}":{"get":{"operationId":"hosting.site.get","summary":"One site.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_site_get","x-rivier-graphql":"Query.hostingSiteGet","x-rivier-sdk":"hosting.site.get","x-rivier-cli":"hosting site get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string","enum":["static","next"]},"state":{"type":"string"},"host":{"type":"string"},"productionDeploymentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"retainedUntil":{"type":["string","null"]},"region":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","name","tier","state","host","productionDeploymentId","retainedUntil","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.site.remove","summary":"Remove the site, its previews, its domains and its settings.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingSiteRemove","x-rivier-sdk":"hosting.site.remove","x-rivier-cli":"hosting site remove","x-rivier-events":["hosting.site.removed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/builds":{"get":{"operationId":"hosting.build.list","summary":"Builds of a site, newest first.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_builds_list","x-rivier-graphql":"Query.hostingBuildList","x-rivier-sdk":"hosting.build.list","x-rivier-cli":"hosting build list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"builds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","repo"]},"url":{"type":"string"},"ref":{"type":"string"},"bundleSha":{"type":"string"}},"required":["type"],"additionalProperties":false},"outDir":{"type":"string"},"install":{"type":"boolean"},"build":{"type":"boolean"},"preview":{"type":"boolean"},"state":{"type":"string","enum":["queued","running","succeeded","failed","timeout","cancelled"]},"log":{"type":"string"},"error":{"type":["string","null"]},"deploymentId":{"type":["string","null"]},"seconds":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","source","outDir","install","build","preview","state","log","error","deploymentId","seconds","createdAt","startedAt","finishedAt"],"additionalProperties":false}}},"required":["builds"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.build.start","summary":"Build a static site from an allow-listed repository. The build runs in a sandbox with no network and no secrets; the result is a preview to promote.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_build_start","x-rivier-graphql":"Mutation.hostingBuildStart","x-rivier-sdk":"hosting.build.start","x-rivier-cli":"hosting build start","x-rivier-events":["hosting.build.started"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"repo":{"type":"object","properties":{"url":{"type":"string","minLength":10,"maxLength":300},"ref":{"type":"string","maxLength":100}},"required":["url"],"additionalProperties":false},"outDir":{"type":"string","maxLength":130},"install":{"type":"boolean"},"build":{"type":"boolean"},"preview":{"type":"boolean"}},"required":["repo"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","repo"]},"url":{"type":"string"},"ref":{"type":"string"},"bundleSha":{"type":"string"}},"required":["type"],"additionalProperties":false},"outDir":{"type":"string"},"install":{"type":"boolean"},"build":{"type":"boolean"},"preview":{"type":"boolean"},"state":{"type":"string","enum":["queued","running","succeeded","failed","timeout","cancelled"]},"log":{"type":"string"},"error":{"type":["string","null"]},"deploymentId":{"type":["string","null"]},"seconds":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","source","outDir","install","build","preview","state","log","error","deploymentId","seconds","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/builds/upload":{"post":{"operationId":"hosting.build.upload","summary":"Build a static site from source sent as a gzip tar in the request body.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"outDir","in":"query","required":false,"schema":{"type":"string","maxLength":130}},{"name":"install","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"build","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"preview","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.build.upload","x-rivier-cli":"hosting build upload","x-rivier-events":["hosting.build.started"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","repo"]},"url":{"type":"string"},"ref":{"type":"string"},"bundleSha":{"type":"string"}},"required":["type"],"additionalProperties":false},"outDir":{"type":"string"},"install":{"type":"boolean"},"build":{"type":"boolean"},"preview":{"type":"boolean"},"state":{"type":"string","enum":["queued","running","succeeded","failed","timeout","cancelled"]},"log":{"type":"string"},"error":{"type":["string","null"]},"deploymentId":{"type":["string","null"]},"seconds":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","source","outDir","install","build","preview","state","log","error","deploymentId","seconds","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/builds/{bid}":{"get":{"operationId":"hosting.build.get","summary":"One build with its state, log and the deployment it made.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"bid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_build_get","x-rivier-graphql":"Query.hostingBuildGet","x-rivier-sdk":"hosting.build.get","x-rivier-cli":"hosting build get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","repo"]},"url":{"type":"string"},"ref":{"type":"string"},"bundleSha":{"type":"string"}},"required":["type"],"additionalProperties":false},"outDir":{"type":"string"},"install":{"type":"boolean"},"build":{"type":"boolean"},"preview":{"type":"boolean"},"state":{"type":"string","enum":["queued","running","succeeded","failed","timeout","cancelled"]},"log":{"type":"string"},"error":{"type":["string","null"]},"deploymentId":{"type":["string","null"]},"seconds":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","source","outDir","install","build","preview","state","log","error","deploymentId","seconds","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/builds/{bid}/cancel":{"post":{"operationId":"hosting.build.cancel","summary":"Cancel a build that has not started.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"bid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_build_cancel","x-rivier-graphql":"Mutation.hostingBuildCancel","x-rivier-sdk":"hosting.build.cancel","x-rivier-cli":"hosting build cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","repo"]},"url":{"type":"string"},"ref":{"type":"string"},"bundleSha":{"type":"string"}},"required":["type"],"additionalProperties":false},"outDir":{"type":"string"},"install":{"type":"boolean"},"build":{"type":"boolean"},"preview":{"type":"boolean"},"state":{"type":"string","enum":["queued","running","succeeded","failed","timeout","cancelled"]},"log":{"type":"string"},"error":{"type":["string","null"]},"deploymentId":{"type":["string","null"]},"seconds":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","source","outDir","install","build","preview","state","log","error","deploymentId","seconds","createdAt","startedAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/checks":{"get":{"operationId":"hosting.checks.get","summary":"The publish checks over the whole site: accessibility, performance, structured data, plan and consent (?deep=1 adds the real-browser accessibility and speed audit, cached per build).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"deep","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_site_checks","x-rivier-graphql":"Query.hostingChecksGet","x-rivier-sdk":"hosting.checks.get","x-rivier-cli":"hosting checks get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/checks/deep":{"post":{"operationId":"hosting.checks.deepStart","summary":"Start the real-browser checks without waiting; the answer is a job id.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingChecksDeepStart","x-rivier-sdk":"hosting.checks.deepStart","x-rivier-cli":"hosting checks deep start","security":[{"bearerAuth":[]}],"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/checks/deep/{job}":{"get":{"operationId":"hosting.checks.deepJob","summary":"State of a browser-check job (queued, running, done with the report, or failed).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"job","in":"path","required":true,"schema":{"type":"string","pattern":"^j[0-9a-f]{10}$"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingChecksDeepJob","x-rivier-sdk":"hosting.checks.deepJob","x-rivier-cli":"hosting checks deep job","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data":{"get":{"operationId":"hosting.data.get","summary":"Your data in plain words: whether it is backed up and when, where it is kept, how much of the plan it uses, and anything that needs you.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_data_status","x-rivier-graphql":"Query.hostingDataGet","x-rivier-sdk":"hosting.data.get","x-rivier-cli":"hosting data get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["none","protected","read_only","attention"]},"headline":{"type":"string"},"backup":{"anyOf":[{"type":"object","properties":{"frequency":{"type":"string","const":"daily"},"lastAt":{"type":["string","null"]},"points":{"type":"number"}},"required":["frequency","lastAt","points"],"additionalProperties":false},{"type":"null"}]},"where":{"type":["string","null"]},"usage":{"anyOf":[{"type":"object","properties":{"dataBytes":{"type":"number"},"dataLimitBytes":{"type":"number"},"filesBytes":{"type":"number"},"filesLimitBytes":{"type":"number"},"percent":{"type":"number"}},"required":["dataBytes","dataLimitBytes","filesBytes","filesLimitBytes","percent"],"additionalProperties":false},{"type":"null"}]},"restoreTest":{"anyOf":[{"type":"object","properties":{"at":{"type":"string"},"ok":{"type":"boolean"}},"required":["at","ok"],"additionalProperties":false},{"type":"null"}]},"waitingRestore":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"backupAt":{"type":["string","null"]}},"required":["id","backupAt"],"additionalProperties":false},{"type":"null"}]},"messages":{"type":"array","items":{"type":"string"}}},"required":["status","headline","backup","where","usage","restoreTest","waitingRestore","messages"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data/erase":{"post":{"operationId":"hosting.data.eraseRequest","summary":"First step of deleting my data: makes an export and answers a token good for 15 minutes. Nothing is removed.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_erase_request","x-rivier-graphql":"Mutation.hostingDataEraseRequest","x-rivier-sdk":"hosting.data.eraseRequest","x-rivier-cli":"hosting data erase request","x-rivier-events":["hosting.erase.requested"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scope":{"type":"string","enum":["data","site"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"expiresAt":{"type":"string"},"scope":{"type":"string","enum":["database","storage","data","site"]},"exportId":{"type":["string","null"]},"willRemove":{"type":"array","items":{"type":"string"}}},"required":["token","expiresAt","scope","exportId","willRemove"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.data.eraseConfirm","summary":"Second step: present the token. The site's stored data and backups are removed; the export stays 30 days.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":16,"maxLength":80}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingDataEraseConfirm","x-rivier-sdk":"hosting.data.eraseConfirm","x-rivier-cli":"hosting data erase confirm","x-rivier-events":["hosting.erased"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"erased":{"type":"string","enum":["database","storage","data","site"]},"exportId":{"type":"string"}},"required":["erased","exportId"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data/export":{"post":{"operationId":"hosting.data.export","summary":"Export my data: the site's records and a dump of what it stores, checked after writing. Kept 30 days.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_export_create","x-rivier-graphql":"Mutation.hostingDataExport","x-rivier-sdk":"hosting.data.export","x-rivier-cli":"hosting data export","x-rivier-events":["hosting.export.created"],"security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"siteSlug":{"type":"string"},"reason":{"type":"string","enum":["owner","retention","erasure"]},"state":{"type":"string","enum":["ready","deleted"]},"parts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","enum":["records","database","storage"]},"bytes":{"type":"number"},"sha256":{"type":["string","null"]},"backupId":{"type":["string","null"]},"note":{"type":"string"}},"required":["name","bytes","sha256","backupId","note"],"additionalProperties":false}},"expiresAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","projectId","siteSlug","reason","state","parts","expiresAt","createdAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data/restore":{"post":{"operationId":"hosting.data.restore","summary":"Prepare your data as it was at an earlier moment beside your current data. Nothing changes until you confirm.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_restore_prepare","x-rivier-graphql":"Mutation.hostingDataRestore","x-rivier-sdk":"hosting.data.restore","x-rivier-cli":"hosting data restore","x-rivier-events":["hosting.data.restorePrepared"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pointId":{"type":"string","format":"uuid"}},"required":["pointId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"restoreId":{"type":"string","format":"uuid"},"state":{"type":"string","const":"waiting_for_confirmation"},"summary":{"type":"string"}},"required":["restoreId","state","summary"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data/restore-points":{"get":{"operationId":"hosting.data.restorePoints","summary":"The earlier moments your data can be restored to.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_restore_points","x-rivier-graphql":"Query.hostingDataRestorePoints","x-rivier-sdk":"hosting.data.restorePoints","x-rivier-cli":"hosting data restore points","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"at":{"type":"string"}},"required":["id","at"],"additionalProperties":false}}},"required":["points"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data/restore/{rid}":{"delete":{"operationId":"hosting.data.restoreCancel","summary":"Cancel a prepared restore and discard the prepared copy.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingDataRestoreCancel","x-rivier-sdk":"hosting.data.restoreCancel","x-rivier-cli":"hosting data restore cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"cancelled":{"type":"boolean","const":true}},"required":["cancelled"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/data/restore/{rid}/confirm":{"post":{"operationId":"hosting.data.restoreConfirm","summary":"Switch the site to the restored data. What it had before is kept briefly.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_restore_confirm","x-rivier-graphql":"Mutation.hostingDataRestoreConfirm","x-rivier-sdk":"hosting.data.restoreConfirm","x-rivier-cli":"hosting data restore confirm","x-rivier-events":["hosting.data.restored"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"restoreId":{"type":"string","format":"uuid"},"state":{"type":"string","const":"restored"},"summary":{"type":"string"}},"required":["restoreId","state","summary"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/deployments":{"get":{"operationId":"hosting.deployment.list","summary":"Deployments of a site, newest first.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["production","preview"]}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_deployments_list","x-rivier-graphql":"Query.hostingDeploymentList","x-rivier-sdk":"hosting.deployment.list","x-rivier-cli":"hosting deployment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["production","preview"]},"state":{"type":"string"},"source":{"type":"string"},"ref":{"type":"string"},"bundleBytes":{"type":"number"},"url":{"type":["string","null"]},"release":{"type":["string","null"]},"promotedFrom":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"error":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","kind","state","source","ref","bundleBytes","url","release","promotedFrom","error","expiresAt","createdBy","createdAt","finishedAt"],"additionalProperties":false}}},"required":["deployments"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.deployment.create","summary":"Deploy the site from the request body: a gzip tar with index.html at its top. ?preview=1 makes a preview at its own address.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"preview","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"ref","in":"query","required":false,"schema":{"type":"string","maxLength":120}}],"x-rivier-scope":"hosting:write","x-rivier-sdk":"hosting.deployment.create","x-rivier-cli":"hosting deployment create","x-rivier-events":["hosting.deployment.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["production","preview"]},"state":{"type":"string"},"source":{"type":"string"},"ref":{"type":"string"},"bundleBytes":{"type":"number"},"url":{"type":["string","null"]},"release":{"type":["string","null"]},"promotedFrom":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"error":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","kind","state","source","ref","bundleBytes","url","release","promotedFrom","error","expiresAt","createdBy","createdAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/deployments/{dep}":{"get":{"operationId":"hosting.deployment.get","summary":"One deployment.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_deployment_get","x-rivier-graphql":"Query.hostingDeploymentGet","x-rivier-sdk":"hosting.deployment.get","x-rivier-cli":"hosting deployment get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["production","preview"]},"state":{"type":"string"},"source":{"type":"string"},"ref":{"type":"string"},"bundleBytes":{"type":"number"},"url":{"type":["string","null"]},"release":{"type":["string","null"]},"promotedFrom":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"error":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","kind","state","source","ref","bundleBytes","url","release","promotedFrom","error","expiresAt","createdBy","createdAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.deployment.remove","summary":"Delete a preview deployment.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingDeploymentRemove","x-rivier-sdk":"hosting.deployment.remove","x-rivier-cli":"hosting deployment remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/deployments/{dep}/promote":{"post":{"operationId":"hosting.deployment.promote","summary":"Make a preview the production site.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_deployment_promote","x-rivier-graphql":"Mutation.hostingDeploymentPromote","x-rivier-sdk":"hosting.deployment.promote","x-rivier-cli":"hosting deployment promote","x-rivier-events":["hosting.deployment.promoted"],"security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["production","preview"]},"state":{"type":"string"},"source":{"type":"string"},"ref":{"type":"string"},"bundleBytes":{"type":"number"},"url":{"type":["string","null"]},"release":{"type":["string","null"]},"promotedFrom":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"error":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","kind","state","source","ref","bundleBytes","url","release","promotedFrom","error","expiresAt","createdBy","createdAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/deployments/{dep}/rollback":{"post":{"operationId":"hosting.deployment.rollback","summary":"Serve an earlier production deployment again.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_deployment_rollback","x-rivier-graphql":"Mutation.hostingDeploymentRollback","x-rivier-sdk":"hosting.deployment.rollback","x-rivier-cli":"hosting deployment rollback","x-rivier-events":["hosting.deployment.rolledBack"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["production","preview"]},"state":{"type":"string"},"source":{"type":"string"},"ref":{"type":"string"},"bundleBytes":{"type":"number"},"url":{"type":["string","null"]},"release":{"type":["string","null"]},"promotedFrom":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"error":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"finishedAt":{"type":["string","null"]}},"required":["id","projectId","kind","state","source","ref","bundleBytes","url","release","promotedFrom","error","expiresAt","createdBy","createdAt","finishedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/deployments/{dep}/share":{"post":{"operationId":"hosting.preview.share","summary":"A link to a preview on its own address, signed and expiring, kept out of search results.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_preview_share","x-rivier-graphql":"Mutation.hostingPreviewShare","x-rivier-sdk":"hosting.preview.share","x-rivier-cli":"hosting preview share","x-rivier-events":["hosting.preview.shared"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ttlMinutes":{"type":"integer","minimum":1,"maximum":10080}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"expiresAt":{"type":"string"}},"required":["url","expiresAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.preview.revoke","summary":"Cancel every link already given out for a preview.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dep","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingPreviewRevoke","x-rivier-sdk":"hosting.preview.revoke","x-rivier-cli":"hosting preview revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"boolean","const":true}},"required":["revoked"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/applications":{"get":{"operationId":"hosting.libraryApply.list","summary":"What has been applied to the site from the library, newest first.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryApplyList","x-rivier-sdk":"hosting.libraryApply.list","x-rivier-cli":"hosting library apply list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"applications":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["applications"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/applications/{application}/undo":{"post":{"operationId":"hosting.libraryApply.undo","summary":"Put back what an applied entry replaced.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"application","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryApplyUndo","x-rivier-sdk":"hosting.libraryApply.undo","x-rivier-cli":"hosting library apply undo","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/apply":{"post":{"operationId":"hosting.libraryApply.apply","summary":"Apply an entry to the site. Needs a person with manager rights and approve: true; an assistant gets the preview and a request for approval (202). The site pins the version used and the change can be undone.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryApplyApply","x-rivier-sdk":"hosting.libraryApply.apply","x-rivier-cli":"hosting library apply apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"},"version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"},"mode":{"type":"string","enum":["light","dark"]},"parts":{"type":"array","items":{"type":"string","enum":["palette","typePairing","tokenSet"]},"maxItems":3},"pageId":{"type":"string","format":"uuid"},"position":{"anyOf":[{"type":"string","enum":["start","end"]},{"type":"integer","minimum":0,"maximum":200}]},"briefKey":{"type":"string","maxLength":200},"approve":{"type":"boolean"}},"required":["entryId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/brand/apply":{"post":{"operationId":"hosting.libraryBrand.apply","summary":"Apply the brand palette to the site with a person's approval; it can be undone.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryBrandApply","x-rivier-sdk":"hosting.libraryBrand.apply","x-rivier-cli":"hosting library brand apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"object","properties":{"draft":{"type":"boolean"},"name":{"type":"string","maxLength":60},"colors":{"type":"array","items":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"minItems":1,"maxItems":6},"fonts":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":60},"role":{"type":"string","enum":["heading","body","both"]},"style":{"type":"string","enum":["sans","serif","mono","display"]},"webLicence":{"anyOf":[{"type":"boolean"},{"type":"string","const":"unknown"}]}},"required":["family","webLicence"],"additionalProperties":false},"maxItems":4},"imagery":{"type":"string","maxLength":200},"voice":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"logoText":{"type":"string","maxLength":40}},"required":["colors"],"additionalProperties":false},"mode":{"type":"string","enum":["light","dark"]},"approve":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/brand/preview":{"post":{"operationId":"hosting.libraryBrand.preview","summary":"What applying a palette built from the brand colours (the stored brand kit when none is passed) would change on the site: before and after tokens, every contrast correction listed, the checks. Changes nothing.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_brand_preview","x-rivier-graphql":"Query.hostingLibraryBrandPreview","x-rivier-sdk":"hosting.libraryBrand.preview","x-rivier-cli":"hosting library brand preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"object","properties":{"draft":{"type":"boolean"},"name":{"type":"string","maxLength":60},"colors":{"type":"array","items":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"minItems":1,"maxItems":6},"fonts":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":60},"role":{"type":"string","enum":["heading","body","both"]},"style":{"type":"string","enum":["sans","serif","mono","display"]},"webLicence":{"anyOf":[{"type":"boolean"},{"type":"string","const":"unknown"}]}},"required":["family","webLicence"],"additionalProperties":false},"maxItems":4},"imagery":{"type":"string","maxLength":200},"voice":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":8},"logoText":{"type":"string","maxLength":40}},"required":["colors"],"additionalProperties":false},"mode":{"type":"string","enum":["light","dark"]},"approve":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/pins":{"get":{"operationId":"hosting.libraryPin.list","summary":"The library entries the site uses, at the versions it uses.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryPinList","x-rivier-sdk":"hosting.libraryPin.list","x-rivier-cli":"hosting library pin list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/presets":{"get":{"operationId":"hosting.libraryPreset.list","summary":"The project's private style presets (the theme and the library picks a site used), for reuse on its own sites. Never shown to other projects.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryPresetList","x-rivier-sdk":"hosting.libraryPreset.list","x-rivier-cli":"hosting library preset list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.libraryPreset.save","summary":"Keep this site's theme and library picks as a private preset of the project.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryPresetSave","x-rivier-sdk":"hosting.libraryPreset.save","x-rivier-cli":"hosting library preset save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/presets/{preset}":{"delete":{"operationId":"hosting.libraryPreset.remove","summary":"Remove a private preset.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"preset","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingLibraryPresetRemove","x-rivier-sdk":"hosting.libraryPreset.remove","x-rivier-cli":"hosting library preset remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/presets/{preset}/apply":{"post":{"operationId":"hosting.libraryPreset.apply","summary":"Apply a private preset to a site, with a person's approval; it can be undone.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"preset","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryPresetApply","x-rivier-sdk":"hosting.libraryPreset.apply","x-rivier-cli":"hosting library preset apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"approve":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/presets/{preset}/preview":{"post":{"operationId":"hosting.libraryPreset.preview","summary":"What applying a private preset to a site would change.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"preset","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryPresetPreview","x-rivier-sdk":"hosting.libraryPreset.preview","x-rivier-cli":"hosting library preset preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/preview":{"post":{"operationId":"hosting.libraryApply.preview","summary":"What applying an entry to the site would change: before and after, contrast checks, fonts needed, the versions that would be pinned. Changes nothing.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_design_library_apply_preview","x-rivier-graphql":"Query.hostingLibraryApplyPreview","x-rivier-sdk":"hosting.libraryApply.preview","x-rivier-cli":"hosting library apply preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"},"version":{"type":"string","pattern":"^\\d+\\.\\d+\\.\\d+$"},"mode":{"type":"string","enum":["light","dark"]},"parts":{"type":"array","items":{"type":"string","enum":["palette","typePairing","tokenSet"]},"maxItems":3},"pageId":{"type":"string","format":"uuid"},"position":{"anyOf":[{"type":"string","enum":["start","end"]},{"type":"integer","minimum":0,"maximum":200}]},"briefKey":{"type":"string","maxLength":200}},"required":["entryId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/upgrades":{"get":{"operationId":"hosting.libraryUpgrade.list","summary":"Pinned entries with a newer version, or deprecated or retired, with the changes and the suggested move. Nothing changes on its own.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingLibraryUpgradeList","x-rivier-sdk":"hosting.libraryUpgrade.list","x-rivier-cli":"hosting library upgrade list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/upgrades/{entry}/apply":{"post":{"operationId":"hosting.libraryUpgrade.apply","summary":"Apply the upgrade after a person approved the preview; it can be undone.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"entry","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryUpgradeApply","x-rivier-sdk":"hosting.libraryUpgrade.apply","x-rivier-cli":"hosting library upgrade apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"},"mode":{"type":"string","enum":["light","dark"]},"pageId":{"type":"string","format":"uuid"},"approve":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design-library/upgrades/{entry}/preview":{"post":{"operationId":"hosting.libraryUpgrade.preview","summary":"Preview moving a pinned entry to its latest version or its replacement.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"entry","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingLibraryUpgradePreview","x-rivier-sdk":"hosting.libraryUpgrade.preview","x-rivier-cli":"hosting library upgrade preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","pattern":"^[a-z][a-z0-9-]{2,60}$"},"mode":{"type":"string","enum":["light","dark"]},"pageId":{"type":"string","format":"uuid"},"approve":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design/alternatives":{"post":{"operationId":"hosting.designDirection.alternatives","summary":"Two or three clearly different looks for the built site (layouts and tokens), saved as directions flagged proposal with stable ids; nothing changes until a person restores one. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingDesignDirectionAlternatives","x-rivier-sdk":"hosting.designDirection.alternatives","x-rivier-cli":"hosting design direction alternatives","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":2,"maximum":3,"default":3},"message":{"type":"string","maxLength":600}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design/brief":{"get":{"operationId":"hosting.designBrief.get","summary":"The site's design brief: goals, audience, voice, sitemap, decisions, constraints and rejected options, with its stage and version history.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_design_brief_get","x-rivier-graphql":"Query.hostingDesignBriefGet","x-rivier-sdk":"hosting.designBrief.get","x-rivier-cli":"hosting design brief get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"hosting.designBrief.update","summary":"Edit the brief directly (goals, audience, voice, constraints, name, sitemap, navigation).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingDesignBriefUpdate","x-rivier-sdk":"hosting.designBrief.update","x-rivier-cli":"hosting design brief update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"goals":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":10},"audience":{"type":"string","maxLength":300},"voice":{"type":"string","maxLength":300},"constraints":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":30},"name":{"type":"string","maxLength":120},"summary":{"type":"string","maxLength":400},"languages":{"type":"array","items":{"type":"string","maxLength":20},"minItems":1,"maxItems":30},"navigation":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"path":{"type":"string","maxLength":120}},"required":["label","path"],"additionalProperties":false},"maxItems":12},"sitemap":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","maxLength":120},"title":{"type":"string","maxLength":200},"purpose":{"type":"string","maxLength":300},"description":{"type":"string","maxLength":320},"sections":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["hero","text","features","gallery","rooms","products","collection","faq","form","booking","cta","newsletter","testimonials","contact","account"]},"heading":{"type":"string","maxLength":120},"text":{"type":"string","maxLength":800},"items":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","maxLength":80},"text":{"type":"string","maxLength":300}},"required":["title"],"additionalProperties":false},"maxItems":12},"cta":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":300}},"required":["label","url"],"additionalProperties":false},"source":{"type":"string","enum":["cms","shop","stays"]},"contentType":{"type":"string","maxLength":40},"view":{"type":"string","enum":["sign-in","account","orders","bookings","stays","invoices","support","memberships","downloads","proofs","privacy"]}},"required":["kind"],"additionalProperties":false},"minItems":1,"maxItems":14}},"required":["path","title","purpose","sections"],"additionalProperties":false},"maxItems":40}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design/directions":{"get":{"operationId":"hosting.designDirection.list","summary":"Saved directions (snapshots of the brief, theme and pages) that can be restored.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_design_direction_list","x-rivier-graphql":"Query.hostingDesignDirectionList","x-rivier-sdk":"hosting.designDirection.list","x-rivier-cli":"hosting design direction list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"directions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["directions"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.designDirection.save","summary":"Save the current direction under a name so it can be restored later.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_design_direction_save","x-rivier-graphql":"Mutation.hostingDesignDirectionSave","x-rivier-sdk":"hosting.designDirection.save","x-rivier-cli":"hosting design direction save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"note":{"type":"string","maxLength":300}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design/directions/{dir}/restore":{"post":{"operationId":"hosting.designDirection.restore","summary":"Go back to a saved direction: brief, theme and page trees. The current state is saved first. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dir","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingDesignDirectionRestore","x-rivier-sdk":"hosting.designDirection.restore","x-rivier-cli":"hosting design direction restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/design/turn":{"post":{"operationId":"hosting.design.turn","summary":"One turn of designing the site by conversation: describe it, answer the (at most two) questions, refine the plan, approve it to build the pages, then refine at site, page or block scope. Changes go through the patch API, so locks, undo and approval of changes to live pages hold.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_design_turn","x-rivier-graphql":"Mutation.hostingDesignTurn","x-rivier-sdk":"hosting.design.turn","x-rivier-cli":"hosting design turn","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":4000},"answers":{"type":"object","additionalProperties":{"type":"string","maxLength":1000}},"scope":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"site"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"page"},"pageId":{"type":"string","format":"uuid"}},"required":["kind","pageId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"block"},"pageId":{"type":"string","format":"uuid"},"blockId":{"type":"string"}},"required":["kind","pageId","blockId"],"additionalProperties":false}]},"approvePlan":{"type":"boolean"},"turnId":{"type":"string","maxLength":80},"dryRun":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains":{"get":{"operationId":"hosting.domain.list","summary":"Custom domains of a site with their state, the reason in plain words and the one thing to do next.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_domains_list","x-rivier-graphql":"Query.hostingDomainList","x-rivier-sdk":"hosting.domain.list","x-rivier-cli":"hosting domain list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"object","properties":{"registeredUntil":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"host":{"type":"string"},"wildcard":{"type":"boolean"},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"state":{"type":"string","enum":["pending_dns","verifying","issuing","live","degraded","suspended"]},"reason":{"type":"string"},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"detail":{"type":"string"}},"required":["id","label","detail"],"additionalProperties":false},{"type":"null"}]},"certificate":{"type":"string","enum":["pending","issued","failed"]},"certExpiresAt":{"type":["string","null"]},"target":{"type":"string"},"canonical":{"type":"string","enum":["www","apex"]},"verifiedAt":{"type":["string","null"]},"liveAt":{"type":["string","null"]},"checkedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","projectId","host","wildcard","method","state","reason","next","certificate","certExpiresAt","target","canonical","verifiedAt","liveAt","checkedAt","createdAt"],"additionalProperties":false}}},"required":["domains"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.domain.add","summary":"Connect a name. Control is proven by the name pointing at the site; the certificate is obtained before the first visitor.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_domain_add","x-rivier-graphql":"Mutation.hostingDomainAdd","x-rivier-sdk":"hosting.domain.add","x-rivier-cli":"hosting domain add","x-rivier-events":["hosting.domain.added"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"host":{"type":"string","minLength":4,"maxLength":253},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"wildcard":{"type":"boolean"},"canonical":{"type":"string","enum":["www","apex"]}},"required":["host"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"registeredUntil":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"host":{"type":"string"},"wildcard":{"type":"boolean"},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"state":{"type":"string","enum":["pending_dns","verifying","issuing","live","degraded","suspended"]},"reason":{"type":"string"},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"detail":{"type":"string"}},"required":["id","label","detail"],"additionalProperties":false},{"type":"null"}]},"certificate":{"type":"string","enum":["pending","issued","failed"]},"certExpiresAt":{"type":["string","null"]},"target":{"type":"string"},"canonical":{"type":"string","enum":["www","apex"]},"verifiedAt":{"type":["string","null"]},"liveAt":{"type":["string","null"]},"checkedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","projectId","host","wildcard","method","state","reason","next","certificate","certExpiresAt","target","canonical","verifiedAt","liveAt","checkedAt","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/buy":{"post":{"operationId":"hosting.domain.buy","summary":"Buy the quoted name (a person only) and connect it.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingDomainBuy","x-rivier-sdk":"hosting.domain.buy","x-rivier-cli":"hosting domain buy","x-rivier-events":["hosting.domain.bought"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":16,"maxLength":80}},"required":["token"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"registeredUntil":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"host":{"type":"string"},"wildcard":{"type":"boolean"},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"state":{"type":"string","enum":["pending_dns","verifying","issuing","live","degraded","suspended"]},"reason":{"type":"string"},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"detail":{"type":"string"}},"required":["id","label","detail"],"additionalProperties":false},{"type":"null"}]},"certificate":{"type":"string","enum":["pending","issued","failed"]},"certExpiresAt":{"type":["string","null"]},"target":{"type":"string"},"canonical":{"type":"string","enum":["www","apex"]},"verifiedAt":{"type":["string","null"]},"liveAt":{"type":["string","null"]},"checkedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","projectId","host","wildcard","method","state","reason","next","certificate","certExpiresAt","target","canonical","verifiedAt","liveAt","checkedAt","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/options":{"get":{"operationId":"hosting.domain.options","summary":"The ways to connect a name, best first (buy it, let Rivier run the DNS, connect a DNS account, one click at the registrar, add the records yourself), each with exact steps and records.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"host","in":"query","required":true,"schema":{"type":"string","minLength":4,"maxLength":253}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_domain_options","x-rivier-graphql":"Query.hostingDomainOptions","x-rivier-sdk":"hosting.domain.options","x-rivier-cli":"hosting domain options","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"options":{"type":"array","items":{"type":"object","properties":{"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"label":{"type":"string"},"available":{"type":"boolean"},"why":{"type":"string"},"steps":{"type":"array","items":{"type":"string"}},"records":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"host":{"type":"string"},"answer":{"type":"string"}},"required":["type","host","answer"],"additionalProperties":false}}},"required":["method","label","available","why","steps","records"],"additionalProperties":false}}},"required":["options"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/quote":{"post":{"operationId":"hosting.domain.quote","summary":"Price a name to buy through Rivier. Nothing is bought.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_domain_quote","x-rivier-graphql":"Query.hostingDomainQuote","x-rivier-sdk":"hosting.domain.quote","x-rivier-cli":"hosting domain quote","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":253}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"available":{"type":"boolean"},"priceCents":{"type":"number"},"currency":{"type":"string"},"years":{"type":"number"},"token":{"type":["string","null"]},"test":{"type":"boolean"}},"required":["name","available","priceCents","currency","years","token","test"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/renew":{"post":{"operationId":"hosting.domain.renew","summary":"Renew the quoted name (a person only).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingDomainRenew","x-rivier-sdk":"hosting.domain.renew","x-rivier-cli":"hosting domain renew","x-rivier-events":["hosting.domain.renewed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":16,"maxLength":80}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"registeredUntil":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"host":{"type":"string"},"wildcard":{"type":"boolean"},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"state":{"type":"string","enum":["pending_dns","verifying","issuing","live","degraded","suspended"]},"reason":{"type":"string"},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"detail":{"type":"string"}},"required":["id","label","detail"],"additionalProperties":false},{"type":"null"}]},"certificate":{"type":"string","enum":["pending","issued","failed"]},"certExpiresAt":{"type":["string","null"]},"target":{"type":"string"},"canonical":{"type":"string","enum":["www","apex"]},"verifiedAt":{"type":["string","null"]},"liveAt":{"type":["string","null"]},"checkedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","projectId","host","wildcard","method","state","reason","next","certificate","certExpiresAt","target","canonical","verifiedAt","liveAt","checkedAt","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/{dom}":{"patch":{"operationId":"hosting.domain.update","summary":"Change which form of a name is the address people see (www or apex), or whether a delegated name serves its subdomains.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dom","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingDomainUpdate","x-rivier-sdk":"hosting.domain.update","x-rivier-cli":"hosting domain update","x-rivier-events":["hosting.domain.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"canonical":{"type":"string","enum":["www","apex"]},"wildcard":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"registeredUntil":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"host":{"type":"string"},"wildcard":{"type":"boolean"},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"state":{"type":"string","enum":["pending_dns","verifying","issuing","live","degraded","suspended"]},"reason":{"type":"string"},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"detail":{"type":"string"}},"required":["id","label","detail"],"additionalProperties":false},{"type":"null"}]},"certificate":{"type":"string","enum":["pending","issued","failed"]},"certExpiresAt":{"type":["string","null"]},"target":{"type":"string"},"canonical":{"type":"string","enum":["www","apex"]},"verifiedAt":{"type":["string","null"]},"liveAt":{"type":["string","null"]},"checkedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","projectId","host","wildcard","method","state","reason","next","certificate","certExpiresAt","target","canonical","verifiedAt","liveAt","checkedAt","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.domain.remove","summary":"Stop serving the site on a name and delete the DNS records Rivier wrote for it.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dom","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingDomainRemove","x-rivier-sdk":"hosting.domain.remove","x-rivier-cli":"hosting domain remove","x-rivier-events":["hosting.domain.removed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/{dom}/check":{"post":{"operationId":"hosting.domain.check","summary":"Look at the name now and move it along.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dom","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_domain_check","x-rivier-graphql":"Mutation.hostingDomainCheck","x-rivier-sdk":"hosting.domain.check","x-rivier-cli":"hosting domain check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"registeredUntil":{"type":["string","null"]},"id":{"type":"string","format":"uuid"},"projectId":{"type":"string"},"host":{"type":"string"},"wildcard":{"type":"boolean"},"method":{"type":"string","enum":["buy","delegation","connector","domain_connect","watch"]},"state":{"type":"string","enum":["pending_dns","verifying","issuing","live","degraded","suspended"]},"reason":{"type":"string"},"next":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"detail":{"type":"string"}},"required":["id","label","detail"],"additionalProperties":false},{"type":"null"}]},"certificate":{"type":"string","enum":["pending","issued","failed"]},"certExpiresAt":{"type":["string","null"]},"target":{"type":"string"},"canonical":{"type":"string","enum":["www","apex"]},"verifiedAt":{"type":["string","null"]},"liveAt":{"type":["string","null"]},"checkedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","projectId","host","wildcard","method","state","reason","next","certificate","certExpiresAt","target","canonical","verifiedAt","liveAt","checkedAt","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/domains/{dom}/renew/quote":{"post":{"operationId":"hosting.domain.renewQuote","summary":"The price to renew a name bought through Rivier for a year. Nothing is charged.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dom","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_domain_renew_quote","x-rivier-graphql":"Query.hostingDomainRenewQuote","x-rivier-sdk":"hosting.domain.renewQuote","x-rivier-cli":"hosting domain renew quote","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"years":{"type":"number","const":1},"priceCents":{"type":"number"},"currency":{"type":"string"},"registeredUntil":{"type":"string"},"token":{"type":"string"},"test":{"type":"boolean"}},"required":["name","years","priceCents","currency","registeredUntil","token","test"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/env":{"get":{"operationId":"hosting.env.list","summary":"The names of the variables set on a site. Values are never returned.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_env_names","x-rivier-graphql":"Query.hostingEnvList","x-rivier-sdk":"hosting.env.list","x-rivier-cli":"hosting env list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"scope":{"type":"string","enum":["production","preview","all"]},"updatedAt":{"type":"string"}},"required":["name","scope","updatedAt"],"additionalProperties":false}}},"required":["variables"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"hosting.env.set","summary":"Set a variable on a Next site. The value is sealed and delivered to the running site only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingEnvSet","x-rivier-sdk":"hosting.env.set","x-rivier-cli":"hosting env set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"value":{"type":"string","maxLength":8192},"scope":{"type":"string","enum":["production","preview","all"]}},"required":["name","value"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"scope":{"type":"string","enum":["production","preview","all"]}},"required":["name","scope"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/env/{name}":{"delete":{"operationId":"hosting.env.remove","summary":"Remove a variable.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","maxLength":64}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingEnvRemove","x-rivier-sdk":"hosting.env.remove","x-rivier-cli":"hosting env remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean"}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/events":{"get":{"operationId":"hosting.event.list","summary":"The site's record: deploys, domain and variable changes, health checks.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["deploy","build","health","domain","env","lifecycle","log"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_events_list","x-rivier-graphql":"Query.hostingEventList","x-rivier-sdk":"hosting.event.list","x-rivier-cli":"hosting event list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"projectId":{"type":"string","format":"uuid"},"at":{"type":"string"},"kind":{"type":"string"},"level":{"type":"string"},"message":{"type":"string"}},"required":["id","projectId","at","kind","level","message"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/experiments":{"get":{"operationId":"hosting.experiment.list","summary":"A/B tests of the site with their plans (goal, sample size, the rule for deciding) and readouts.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_experiments_list","x-rivier-graphql":"Query.hostingExperimentList","x-rivier-sdk":"hosting.experiment.list","x-rivier-cli":"hosting experiment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.experiment.create","summary":"Plan an A/B test of a page or a section: variants are patches, the goal is a click, a form submit or an event, and the baseline rate and the smallest change worth acting on fix how many page views each arm needs. It stays a draft until a person starts it.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_experiment_plan","x-rivier-graphql":"Mutation.hostingExperimentCreate","x-rivier-sdk":"hosting.experiment.create","x-rivier-cli":"hosting experiment create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"pageId":{"type":"string","maxLength":80},"hypothesis":{"type":"string","maxLength":400,"default":""},"variants":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"ops":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"op":{"type":"string","const":"set"},"block":{"type":"string"},"path":{"type":"string","minLength":1,"maxLength":200},"value":{},"origin":{"type":"string","enum":["human","ai","template"]}},"required":["op","block","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"unset"},"block":{"type":"string"},"path":{"type":"string","minLength":1,"maxLength":200},"origin":{"type":"string","enum":["human","ai","template"]}},"required":["op","block","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"insert"},"block":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,39}$"},"parent":{"type":["string","null"],"default":null},"slot":{"type":"string","maxLength":24,"default":"children"},"type":{"type":"string","minLength":1,"maxLength":40},"v":{"type":"string"},"props":{"type":"object","additionalProperties":{},"default":{}},"bindings":{"type":"object","additionalProperties":{},"default":{}},"origin":{"type":"string","enum":["human","ai","template"],"default":"human"},"locked":{"type":"boolean","default":false},"lockedProps":{"type":"array","items":{"type":"string"}}},"required":["id","type"],"additionalProperties":false},"index":{"type":"integer","minimum":0},"descendants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,39}$"},"parent":{"type":["string","null"],"default":null},"slot":{"type":"string","maxLength":24,"default":"children"},"type":{"type":"string","minLength":1,"maxLength":40},"v":{"type":"string"},"props":{"type":"object","additionalProperties":{},"default":{}},"bindings":{"type":"object","additionalProperties":{},"default":{}},"origin":{"type":"string","enum":["human","ai","template"],"default":"human"},"locked":{"type":"boolean","default":false},"lockedProps":{"type":"array","items":{"type":"string"}}},"required":["id","type"],"additionalProperties":false},"maxItems":200},"origin":{"type":"string","enum":["human","ai","template"]}},"required":["op","block"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove"},"block":{"type":"string"}},"required":["op","block"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"move"},"block":{"type":"string"},"parent":{"type":["string","null"]},"slot":{"type":"string","maxLength":24},"index":{"type":"integer","minimum":0}},"required":["op","block","parent"],"additionalProperties":false}]},"minItems":1,"maxItems":100}},"required":["name","ops"],"additionalProperties":false},"minItems":1,"maxItems":3},"goal":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"click"},"block":{"type":"string","maxLength":80}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"submit"},"block":{"type":"string","maxLength":80}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"event"},"name":{"type":"string","pattern":"^[a-z][a-z0-9_-]{1,39}$"}},"required":["kind","name"],"additionalProperties":false}]},"baselineRate":{"type":"number","minimum":0.001,"maximum":0.9},"minEffect":{"type":"number","minimum":0.02,"maximum":1,"default":0.2},"horizon":{"type":"integer","minimum":100,"maximum":1000000}},"required":["name","pageId","variants","goal","baselineRate"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/experiments/{exp}/promote":{"post":{"operationId":"hosting.experiment.promote","summary":"Make a variant the page (one patch to the working copy that can be undone; it goes live with the next approved release). Without a winner by the test's own rule a reason is required. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"exp","in":"path","required":true,"schema":{"type":"string","pattern":"^x[0-9a-f]{6}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingExperimentPromote","x-rivier-sdk":"hosting.experiment.promote","x-rivier-cli":"hosting experiment promote","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","maxLength":20},"reason":{"type":"string","maxLength":300}},"required":["variantId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/experiments/{exp}/readout":{"get":{"operationId":"hosting.experiment.readout","summary":"Counts per arm and, only once every arm reaches the planned number of page views, the comparison with the control and the decision the rule gives.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"exp","in":"path","required":true,"schema":{"type":"string","pattern":"^x[0-9a-f]{6}$"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_experiment_readout","x-rivier-graphql":"Query.hostingExperimentReadout","x-rivier-sdk":"hosting.experiment.readout","x-rivier-cli":"hosting experiment readout","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/experiments/{exp}/start":{"post":{"operationId":"hosting.experiment.start","summary":"Start a planned test; visitors see it from the next production release (which a person approves). A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"exp","in":"path","required":true,"schema":{"type":"string","pattern":"^x[0-9a-f]{6}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingExperimentStart","x-rivier-sdk":"hosting.experiment.start","x-rivier-cli":"hosting experiment start","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/experiments/{exp}/stop":{"post":{"operationId":"hosting.experiment.stop","summary":"Stop a test; the control is served from the next production release. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"exp","in":"path","required":true,"schema":{"type":"string","pattern":"^x[0-9a-f]{6}$"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingExperimentStop","x-rivier-sdk":"hosting.experiment.stop","x-rivier-cli":"hosting experiment stop","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/health":{"get":{"operationId":"hosting.health.get","summary":"Fetch the site now and report whether it answers.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_health","x-rivier-graphql":"Query.hostingHealthGet","x-rivier-sdk":"hosting.health.get","x-rivier-cli":"hosting health get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"up":{"type":"boolean"},"status":{"type":["number","null"]},"ms":{"type":"number"},"host":{"type":"string"},"checkedAt":{"type":"string"}},"required":["up","status","ms","host","checkedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/logs":{"get":{"operationId":"hosting.log.list","summary":"Recent runtime log lines of a Next site.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"lines","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_logs","x-rivier-graphql":"Query.hostingLogList","x-rivier-sdk":"hosting.log.list","x-rivier-cli":"hosting log list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"string"}}},"required":["lines"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/mail":{"get":{"operationId":"hosting.mail.get","summary":"Email in plain words: how many emails the site sent today against its daily limit, and for each live domain how many days of authentication reports have been seen and whether the DMARC policy can tighten.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"policy","in":"query","required":false,"schema":{"type":"string","enum":["none","quarantine","reject"]}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_mail_status","x-rivier-graphql":"Query.hostingMailGet","x-rivier-sdk":"hosting.mail.get","x-rivier-cli":"hosting mail get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sentToday":{"type":"number"},"dailyLimit":{"type":"number"},"summary":{"type":"string"},"domains":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"reports":{"type":"object","properties":{"days":{"type":"number"},"failPct":{"type":"number"},"pass":{"type":"number"},"fail":{"type":"number"}},"required":["days","failPct","pass","fail"],"additionalProperties":false},"proposal":{"type":"object","properties":{"ready":{"type":"boolean"},"next":{"type":["string","null"]},"reason":{"type":"string"}},"required":["ready","next","reason"],"additionalProperties":false}},"required":["domain","reports","proposal"],"additionalProperties":false}}},"required":["sentToday","dailyLimit","summary","domains"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages":{"get":{"operationId":"hosting.sitePage.list","summary":"The pages of a site.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_page_list","x-rivier-graphql":"Query.hostingSitePageList","x-rivier-sdk":"hosting.sitePage.list","x-rivier-cli":"hosting site page list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"pages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["pages"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.sitePage.create","summary":"Create a page at a path, optionally with its block tree.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_page_create","x-rivier-graphql":"Mutation.hostingSitePageCreate","x-rivier-sdk":"hosting.sitePage.create","x-rivier-cli":"hosting site page create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"object","properties":{"cover":{"anyOf":[{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"alt":{"type":"string","maxLength":300,"default":""}},"required":["assetId"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","maxLength":300,"default":""},"year":{"anyOf":[{"type":"integer","minimum":1900,"maximum":2200},{"type":"null"}]},"client":{"type":"string","maxLength":120,"default":""},"roles":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":12,"default":[]},"tags":{"type":"array","items":{"type":"string","pattern":"^[^,\\n]{1,40}$"},"maxItems":20,"default":[]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"url":{"type":"string","format":"uri","maxLength":300}},"required":["label","url"],"additionalProperties":false},"maxItems":10,"default":[]},"visibility":{"type":"string","enum":["draft","public","unlisted","expiring","password"]},"expiresAt":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"order":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"featured":{"type":"boolean"},"rights":{"anyOf":[{"type":"object","properties":{"creditText":{"type":"string","maxLength":200,"default":""},"copyrightNotice":{"type":"string","maxLength":200,"default":""},"licenseUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]},"acquireLicenseUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"password":{"type":"string","minLength":8,"maxLength":128}},"additionalProperties":false},"path":{"type":"string","maxLength":120},"title":{"type":"string","minLength":1,"maxLength":200},"locale":{"type":"string","maxLength":20},"group":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"seo":{"type":"object","additionalProperties":{}},"tree":{"type":"array","items":{"type":"object","additionalProperties":{}},"maxItems":500,"description":"The page content as a list of blocks."},"blocks":{"type":"array","items":{"type":"object","additionalProperties":{}},"maxItems":500,"description":"An alias of tree, accepted for callers that name the list blocks. Send one of the two."}},"required":["path","title"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages-order":{"put":{"operationId":"hosting.sitePage.order","summary":"Set the order and nesting of pages: the list gives each page its parent (null: top level) and its place among siblings by position. Refuses loops and parents in another language.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageOrder","x-rivier-sdk":"hosting.sitePage.order","x-rivier-cli":"hosting site page order","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["id","parentId"],"additionalProperties":false},"minItems":1,"maxItems":500}},"required":["pages"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages-path":{"get":{"operationId":"hosting.sitePage.pathCheck","summary":"Whether a path is free for a page (in a language) and why not when it is taken.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":120}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":20}},{"name":"except","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_path_check","x-rivier-graphql":"Query.hostingSitePagePathCheck","x-rivier-sdk":"hosting.sitePage.pathCheck","x-rivier-cli":"hosting site page path check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}":{"get":{"operationId":"hosting.sitePage.get","summary":"A page as a flat block tree with its version and its validation issues.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_page_tree_get","x-rivier-graphql":"Query.hostingSitePageGet","x-rivier-sdk":"hosting.sitePage.get","x-rivier-cli":"hosting site page get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"hosting.sitePage.update","summary":"Change a page's title, path (a page that was published leaves a 301 from the old path; a translation may take its own path), search settings or language group (not its blocks: use patch).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageUpdate","x-rivier-sdk":"hosting.sitePage.update","x-rivier-cli":"hosting site page update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"path":{"type":"string","minLength":1,"maxLength":120},"access":{"type":"object","properties":{"rule":{"type":"string","enum":["public","signed_in","tier","staff"]},"tierIds":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":20},"roles":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10}},"required":["rule"],"additionalProperties":false},"title":{"type":"string","minLength":1,"maxLength":200},"group":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"seo":{"type":"object","additionalProperties":{}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.sitePage.remove","summary":"Delete a page. A page that is live, has translations, sub-pages or links to it answers 409 with what is affected; repeat with ?confirm=1 (and ?translations=keep|delete when it has translations). Unapproved translations that are kept become staff-only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"confirm","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"translations","in":"query","required":false,"schema":{"type":"string","enum":["keep","delete"]}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingSitePageRemove","x-rivier-sdk":"hosting.sitePage.remove","x-rivier-cli":"hosting site page remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/canvas":{"get":{"operationId":"hosting.sitePage.canvas","summary":"What a visual editor needs for a page: every block with its place, author, locks, editable props (type, limits, options), slots (what they take, how many) and text values, plus the blocks that can be added. Pair it with the preview rendered with ?annotate=1, whose elements carry the same ids.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_canvas_get","x-rivier-graphql":"Query.hostingSitePageCanvas","x-rivier-sdk":"hosting.sitePage.canvas","x-rivier-cli":"hosting site page canvas","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/changes/{change}/decision":{"post":{"operationId":"hosting.sitePage.decide","summary":"Approve or send back an AI's proposed change to a published page.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"change","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageDecide","x-rivier-sdk":"hosting.sitePage.decide","x-rivier-cli":"hosting site page decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","changes"]},"comment":{"type":"string","maxLength":500},"resolve":{"type":"object","additionalProperties":{"type":"string","enum":["ours","theirs"]}}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/comments":{"get":{"operationId":"hosting.sitePage.comments","summary":"Notes left on a page or on one of its blocks (open ones; ?resolved=1 for all).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"resolved","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"blockId","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_comments_list","x-rivier-graphql":"Query.hostingSitePageComments","x-rivier-sdk":"hosting.sitePage.comments","x-rivier-cli":"hosting site page comments","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.sitePage.comment","summary":"Leave a note on a page or on one block, or reply to a note.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_comment_add","x-rivier-graphql":"Mutation.hostingSitePageComment","x-rivier-sdk":"hosting.sitePage.comment","x-rivier-cli":"hosting site page comment","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":2000},"blockId":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"replyTo":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["text"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/comments/{comment}/resolve":{"post":{"operationId":"hosting.sitePage.resolveComment","summary":"Mark a note done (or open it again).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"comment","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageResolveComment","x-rivier-sdk":"hosting.sitePage.resolveComment","x-rivier-cli":"hosting site page resolve comment","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resolved":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/gate-views":{"get":{"operationId":"hosting.project.gateViews","summary":"Who opened a password-protected project and when (a time and a hash of the network, newest first). A manager only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingProjectGateViews","x-rivier-sdk":"hosting.project.gateViews","x-rivier-cli":"hosting project gate views","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/history":{"get":{"operationId":"hosting.sitePage.history","summary":"The changes made to a page, newest first, with who, what and the diff.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingSitePageHistory","x-rivier-sdk":"hosting.sitePage.history","x-rivier-cli":"hosting site page history","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"changes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["changes"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/patch":{"post":{"operationId":"hosting.sitePage.patch","summary":"Apply operations (set, unset, insert, remove, move) to blocks by id against a version. Answers applied, preview, proposed (an AI edit of a live page), refused (locks), clash (choose ours or theirs per field) or invalid.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_page_patch","x-rivier-graphql":"Mutation.hostingSitePagePatch","x-rivier-sdk":"hosting.sitePage.patch","x-rivier-cli":"hosting site page patch","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ops":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"op":{"type":"string","const":"set"},"block":{"type":"string"},"path":{"type":"string","minLength":1,"maxLength":200},"value":{},"origin":{"type":"string","enum":["human","ai","template"]}},"required":["op","block","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"unset"},"block":{"type":"string"},"path":{"type":"string","minLength":1,"maxLength":200},"origin":{"type":"string","enum":["human","ai","template"]}},"required":["op","block","path"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"insert"},"block":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,39}$"},"parent":{"type":["string","null"],"default":null},"slot":{"type":"string","maxLength":24,"default":"children"},"type":{"type":"string","minLength":1,"maxLength":40},"v":{"type":"string"},"props":{"type":"object","additionalProperties":{},"default":{}},"bindings":{"type":"object","additionalProperties":{},"default":{}},"origin":{"type":"string","enum":["human","ai","template"],"default":"human"},"locked":{"type":"boolean","default":false},"lockedProps":{"type":"array","items":{"type":"string"}}},"required":["id","type"],"additionalProperties":false},"index":{"type":"integer","minimum":0},"descendants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,39}$"},"parent":{"type":["string","null"],"default":null},"slot":{"type":"string","maxLength":24,"default":"children"},"type":{"type":"string","minLength":1,"maxLength":40},"v":{"type":"string"},"props":{"type":"object","additionalProperties":{},"default":{}},"bindings":{"type":"object","additionalProperties":{},"default":{}},"origin":{"type":"string","enum":["human","ai","template"],"default":"human"},"locked":{"type":"boolean","default":false},"lockedProps":{"type":"array","items":{"type":"string"}}},"required":["id","type"],"additionalProperties":false},"maxItems":200},"origin":{"type":"string","enum":["human","ai","template"]}},"required":["op","block"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove"},"block":{"type":"string"}},"required":["op","block"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"move"},"block":{"type":"string"},"parent":{"type":["string","null"]},"slot":{"type":"string","maxLength":24},"index":{"type":"integer","minimum":0}},"required":["op","block","parent"],"additionalProperties":false}]},"minItems":1,"maxItems":200},"base":{"type":"integer","minimum":0},"note":{"type":"string","maxLength":300},"resolve":{"type":"object","additionalProperties":{"type":"string","enum":["ours","theirs"]}},"dryRun":{"type":"boolean"}},"required":["ops","base"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/presence":{"post":{"operationId":"hosting.sitePage.presence","summary":"A heartbeat while editing: who else is on the page and on which block, and the page's current version.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePagePresence","x-rivier-sdk":"hosting.sitePage.presence","x-rivier-cli":"hosting site page presence","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"blockId":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/preview":{"get":{"operationId":"hosting.sitePage.preview","summary":"The page rendered from the working copy, as HTML (?annotate=1 marks each block for the designer).","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"annotate","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_page_preview","x-rivier-sdk":"hosting.sitePage.preview","x-rivier-cli":"hosting site page preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/project":{"put":{"operationId":"hosting.project.set","summary":"Make a page a portfolio project or change its details: cover, summary, year, client, roles, tags, links, order, and who can see it (draft, public, unlisted, expiring; password arrives with the gate). A project starts as a private draft; a person makes it visible.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_project_set","x-rivier-graphql":"Mutation.hostingProjectSet","x-rivier-sdk":"hosting.project.set","x-rivier-cli":"hosting project set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cover":{"anyOf":[{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"alt":{"type":"string","maxLength":300,"default":""}},"required":["assetId"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","maxLength":300,"default":""},"year":{"anyOf":[{"type":"integer","minimum":1900,"maximum":2200},{"type":"null"}]},"client":{"type":"string","maxLength":120,"default":""},"roles":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":12,"default":[]},"tags":{"type":"array","items":{"type":"string","pattern":"^[^,\\n]{1,40}$"},"maxItems":20,"default":[]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":60},"url":{"type":"string","format":"uri","maxLength":300}},"required":["label","url"],"additionalProperties":false},"maxItems":10,"default":[]},"visibility":{"type":"string","enum":["draft","public","unlisted","expiring","password"]},"expiresAt":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"order":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"featured":{"type":"boolean"},"rights":{"anyOf":[{"type":"object","properties":{"creditText":{"type":"string","maxLength":200,"default":""},"copyrightNotice":{"type":"string","maxLength":200,"default":""},"licenseUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]},"acquireLicenseUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":300},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"password":{"type":"string","minLength":8,"maxLength":128}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.project.clear","summary":"Turn a project back into a plain page (also: PUT the project route with {project: null}). A person only; the page then goes live with the next release like any page, and leaves every collection.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingProjectClear","x-rivier-sdk":"hosting.project.clear","x-rivier-cli":"hosting project clear","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/texts":{"get":{"operationId":"hosting.sitePage.texts","summary":"The words of a page: its title and search texts, every string of its blocks, and the parts read from an entry, a list or the catalogue with where they come from.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingSitePageTexts","x-rivier-sdk":"hosting.sitePage.texts","x-rivier-cli":"hosting site page texts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"hosting.sitePage.editText","summary":"Change one string of a page. A block's string goes through the page's patch, so undo and the approval a live page needs apply; the title and search texts go through the page's details.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageEditText","x-rivier-sdk":"hosting.sitePage.editText","x-rivier-cli":"hosting site page edit text","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":3,"maxLength":300},"text":{"type":"string","maxLength":4000}},"required":["key","text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/translation/approve":{"post":{"operationId":"hosting.sitePage.approveTranslation","summary":"Let a language version go live with the next release (or withdraw it with approved false). A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageApproveTranslation","x-rivier-sdk":"hosting.sitePage.approveTranslation","x-rivier-cli":"hosting site page approve translation","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"approved":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/translation/refresh":{"post":{"operationId":"hosting.sitePage.refreshTranslation","summary":"Bring a translation up to date with its original: changed strings are re-translated, new blocks added, what a person edited is kept.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageRefreshTranslation","x-rivier-sdk":"hosting.sitePage.refreshTranslation","x-rivier-cli":"hosting site page refresh translation","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/translations":{"get":{"operationId":"hosting.sitePage.translations","summary":"The language versions of a page: which exist, whether a person approved them, how many strings changed in the original since, and which languages are missing.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_translations_list","x-rivier-graphql":"Query.hostingSitePageTranslations","x-rivier-sdk":"hosting.sitePage.translations","x-rivier-cli":"hosting site page translations","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.sitePage.translate","summary":"Make a draft of the page in another language of the site (same blocks, prose translated, hidden until a person approves). For a language that exists it refreshes that translation.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_translate_page","x-rivier-graphql":"Mutation.hostingSitePageTranslate","x-rivier-sdk":"hosting.sitePage.translate","x-rivier-cli":"hosting site page translate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locale":{"type":"string","minLength":2,"maxLength":20}},"required":["locale"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/translations/{locale}/units":{"get":{"operationId":"hosting.sitePage.translationUnits","summary":"Every translatable string of the page in a language: original, translation, and fresh, stale or human.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"path","required":true,"schema":{"type":"string","minLength":2,"maxLength":20}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_translation_units","x-rivier-graphql":"Query.hostingSitePageTranslationUnits","x-rivier-sdk":"hosting.sitePage.translationUnits","x-rivier-cli":"hosting site page translation units","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"hosting.sitePage.editTranslationUnit","summary":"A person writes or corrects one translated string; it is kept as a human edit when the original changes.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"path","required":true,"schema":{"type":"string","minLength":2,"maxLength":20}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSitePageEditTranslationUnit","x-rivier-sdk":"hosting.sitePage.editTranslationUnit","x-rivier-cli":"hosting site page edit translation unit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","minLength":3,"maxLength":300},"text":{"type":"string","maxLength":4000}},"required":["key","text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/undo":{"post":{"operationId":"hosting.sitePage.undo","summary":"Undo one change, or the caller's newest, as a new version.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_page_undo","x-rivier-graphql":"Mutation.hostingSitePageUndo","x-rivier-sdk":"hosting.sitePage.undo","x-rivier-cli":"hosting site page undo","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"patchId":{"type":"string","format":"uuid"},"resolve":{"type":"object","additionalProperties":{"type":"string","enum":["ours","theirs"]}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/validate":{"post":{"operationId":"hosting.sitePage.validate","summary":"Check a page against the blocks' rules; every issue says what to change.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_page_validate","x-rivier-graphql":"Query.hostingSitePageValidate","x-rivier-sdk":"hosting.sitePage.validate","x-rivier-cli":"hosting site page validate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"migrate":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/pages/{page}/widgets":{"post":{"operationId":"hosting.sitePage.widget","summary":"Place a widget block (form, newsletter, reviews, ratings, booking, buy button, cookie consent, language switcher, chat) on a page. The answer says whether the widget is live yet.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"page","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_widget_place","x-rivier-graphql":"Mutation.hostingSitePageWidget","x-rivier-sdk":"hosting.sitePage.widget","x-rivier-cli":"hosting site page widget","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"integer","minimum":0},"widget":{"type":"string","minLength":2,"maxLength":40},"parent":{"type":["string","null"]},"slot":{"type":"string","maxLength":24},"index":{"type":"integer","minimum":0},"id":{"type":"string","maxLength":40},"props":{"type":"object","additionalProperties":{}},"bindings":{"type":"object","additionalProperties":{}},"note":{"type":"string","maxLength":300}},"required":["base","widget"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/projects":{"get":{"operationId":"hosting.project.list","summary":"The portfolio: every project with its details, standing (off, listed, unlisted) and collections, and the collections with their addresses.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_project_list","x-rivier-graphql":"Query.hostingProjectList","x-rivier-sdk":"hosting.project.list","x-rivier-cli":"hosting project list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/publish":{"post":{"operationId":"hosting.site.publish","summary":"Publish a preview, or ask for a production release (checks must pass; a person approves). A person can pass approve to do both at once.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_page_publish","x-rivier-graphql":"Mutation.hostingSitePublish","x-rivier-sdk":"hosting.site.publish","x-rivier-cli":"hosting site publish","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["preview","production"]},"approve":{"type":"boolean"},"note":{"type":"string","maxLength":300},"pages":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":500},"remove":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":500},"at":{"type":"string","maxLength":40}},"required":["kind"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/releases":{"get":{"operationId":"hosting.release.list","summary":"Previews and production releases of the site.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_release_list","x-rivier-graphql":"Query.hostingReleaseList","x-rivier-sdk":"hosting.release.list","x-rivier-cli":"hosting release list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"releases":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["releases"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/releases/{release}/approve":{"post":{"operationId":"hosting.release.approve","summary":"Approve a production release. When the site needs several approvers each different person approves once (with an optional comment); the exact checked files go live with the last one.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingReleaseApprove","x-rivier-sdk":"hosting.release.approve","x-rivier-cli":"hosting release approve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"comment":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/releases/{release}/reject":{"post":{"operationId":"hosting.release.reject","summary":"Decline a production release request.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingReleaseReject","x-rivier-sdk":"hosting.release.reject","x-rivier-cli":"hosting release reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"comment":{"type":"string","maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/releases/{release}/rollback":{"post":{"operationId":"hosting.release.rollback","summary":"Serve an earlier production release again.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingReleaseRollback","x-rivier-sdk":"hosting.release.rollback","x-rivier-cli":"hosting release rollback","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/resume":{"post":{"operationId":"hosting.site.resume","summary":"After resubscribing: make a site that is kept read-only writable again.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_hosting_site_resume","x-rivier-graphql":"Mutation.hostingSiteResume","x-rivier-sdk":"hosting.site.resume","x-rivier-cli":"hosting site resume","x-rivier-events":["hosting.site.resumed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string","enum":["static","next"]},"state":{"type":"string"},"host":{"type":"string"},"productionDeploymentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"retainedUntil":{"type":["string","null"]},"region":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","name","tier","state","host","productionDeploymentId","retainedUntil","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/settings":{"get":{"operationId":"hosting.settings.get","summary":"The site's settings: name, address, theme tokens, languages, AI disclosure line, measurement mode.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingSettingsGet","x-rivier-sdk":"hosting.settings.get","x-rivier-cli":"hosting settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"hosting.settings.save","summary":"Change the site's settings. Theme values are validated against the token list.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSettingsSave","x-rivier-sdk":"hosting.settings.save","x-rivier-cli":"hosting settings save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"baseUrl":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"apiBase":{"type":"string","maxLength":200},"publishableKey":{"type":"string","maxLength":200},"assetBase":{"type":"string","maxLength":200},"theme":{"type":"object","additionalProperties":{"type":"string"}},"defaultLocale":{"type":"string","maxLength":20},"locales":{"type":"array","items":{"type":"string","maxLength":20},"minItems":1,"maxItems":30},"aiDisclosure":{"type":"string","maxLength":300},"organization":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","maxLength":120},"logoUrl":{"type":"string","maxLength":300},"sameAs":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":10},"telephone":{"type":"string","maxLength":40},"email":{"type":"string","maxLength":120}},"required":["name"],"additionalProperties":false},{"type":"null"}]},"analytics":{"type":"object","properties":{"mode":{"type":"string","enum":["off","cookieless","consent"]}},"required":["mode"],"additionalProperties":false},"localePaths":{"type":"string","enum":["prefix-except-default","prefix"]},"surface":{"type":"string","enum":["website","app","both"]},"collections":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,39}$"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,59}$"},"title":{"type":"string","maxLength":100,"minLength":1},"description":{"type":"string","maxLength":400,"default":""},"projectIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200,"default":[]}},"required":["id","slug","title"],"additionalProperties":false},"maxItems":30},"approvals":{"anyOf":[{"type":"object","properties":{"required":{"type":"integer","minimum":1,"maximum":5},"roles":{"type":"array","items":{"type":"string","enum":["owner","manager","approver"]},"minItems":1,"maxItems":3}},"required":["required","roles"],"additionalProperties":false},{"type":"null"}]},"pwa":{"type":"object","properties":{"enabled":{"type":"boolean"},"name":{"type":"string","maxLength":60},"shortName":{"type":"string","maxLength":14},"themeColor":{"type":"string","maxLength":7},"backgroundColor":{"type":"string","maxLength":7},"display":{"type":"string","enum":["standalone","minimal-ui","browser"]},"startPath":{"type":"string","maxLength":120},"iconAssetId192":{"type":"string","format":"uuid"},"iconAssetId512":{"type":"string","format":"uuid"}},"required":["enabled","name","shortName","themeColor","backgroundColor","display","startPath"],"additionalProperties":false},"redirects":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","maxLength":120},"to":{"type":"string","maxLength":300},"status":{"type":"number","enum":[301,302,307,308,410]}},"required":["from","to","status"],"additionalProperties":false},"maxItems":500},"feeds":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","maxLength":60},"format":{"type":"string","enum":["rss","atom","json"]},"type":{"type":"string","maxLength":40},"title":{"type":"string","maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":100}},"required":["path","format","type","title"],"additionalProperties":false},"maxItems":10}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/template-upgrades":{"get":{"operationId":"hosting.template.upgrades","summary":"The templates this site's pages came from, the version they were made from and the newest one.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_template_upgrades","x-rivier-graphql":"Query.hostingTemplateUpgrades","x-rivier-sdk":"hosting.template.upgrades","x-rivier-cli":"hosting template upgrades","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/templates":{"post":{"operationId":"hosting.template.save","summary":"Save the site as the project's own template: structure, tokens and locks kept; pictures, specific entries and products and form ids removed.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingTemplateSave","x-rivier-sdk":"hosting.template.save","x-rivier-cli":"hosting template save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"tagline":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":30},"maxItems":12}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/templates/{tid}/instantiate":{"post":{"operationId":"hosting.template.instantiate","summary":"Copy a template's pages into the site as drafts (existing pages are never touched), with its tokens and plan; the answer lists what is still to connect.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"hosting:write","x-rivier-mcp":"rivier_site_template_instantiate","x-rivier-graphql":"Mutation.hostingTemplateInstantiate","x-rivier-sdk":"hosting.template.instantiate","x-rivier-cli":"hosting template instantiate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"string","minLength":1,"maxLength":60}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/templates/{tid}/upgrade/apply":{"post":{"operationId":"hosting.template.upgradeApply","summary":"Merge the newest version of a template into the site: unedited blocks change, edited ones stay, new pages arrive; each changed page is one patch. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingTemplateUpgradeApply","x-rivier-sdk":"hosting.template.upgradeApply","x-rivier-cli":"hosting template upgrade apply","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/templates/{tid}/upgrade/preview":{"post":{"operationId":"hosting.template.upgradePreview","summary":"What moving to the newest version of a template would change block by block, and what it leaves alone because you changed it. Changes nothing.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_template_upgrade_preview","x-rivier-graphql":"Query.hostingTemplateUpgradePreview","x-rivier-sdk":"hosting.template.upgradePreview","x-rivier-cli":"hosting template upgrade preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/templates/{tid}/upgrade/undo":{"post":{"operationId":"hosting.template.upgradeUndo","summary":"Take the last upgrade of a template back, page by page. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingTemplateUpgradeUndo","x-rivier-sdk":"hosting.template.upgradeUndo","x-rivier-cli":"hosting template upgrade undo","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/theme":{"post":{"operationId":"hosting.theme.apply","summary":"Apply a theme by id (a person only); the site's tokens become the theme's and the previous ones are returned so they can be set back.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingThemeApply","x-rivier-sdk":"hosting.theme.apply","x-rivier-cli":"hosting theme apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"presetId":{"type":"string","maxLength":40}},"required":["presetId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/themes":{"get":{"operationId":"hosting.theme.list","summary":"The portfolio themes: whole looks (colours, type, radius, spacing, width), each checked for contrast, and which one the site matches now. Dhivehi pages use the Dhivehi typeface with every theme.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_theme_list","x-rivier-graphql":"Query.hostingThemeList","x-rivier-sdk":"hosting.theme.list","x-rivier-cli":"hosting theme list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/unpublish":{"post":{"operationId":"hosting.site.unpublish","summary":"Take the site offline (a production release with an offline page). Publishing again or rolling back brings it back. A person only.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingSiteUnpublish","x-rivier-sdk":"hosting.site.unpublish","x-rivier-cli":"hosting site unpublish","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":280}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/sites/{id}/website-usage":{"get":{"operationId":"hosting.websiteUsage.get","summary":"AI edits, AI builds and pages used against the plan, with the prompt to show.","tags":["hosting"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingWebsiteUsageGet","x-rivier-sdk":"hosting.websiteUsage.get","x-rivier-cli":"hosting website usage get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/templates":{"get":{"operationId":"hosting.template.list","summary":"The template catalogue (platform starters and the project's own): filter by industry, goal and style, search in plain words; each card shows what the plan lacks.","tags":["hosting"],"parameters":[{"name":"industry","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"goal","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"style","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}}],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_template_list","x-rivier-graphql":"Query.hostingTemplateList","x-rivier-sdk":"hosting.template.list","x-rivier-cli":"hosting template list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/templates/suggest":{"post":{"operationId":"hosting.template.suggest","summary":"The templates closest to a description, with the words that matched.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_site_template_suggest","x-rivier-graphql":"Query.hostingTemplateSuggest","x-rivier-sdk":"hosting.template.suggest","x-rivier-cli":"hosting template suggest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":2,"maxLength":1000}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/templates/{tid}":{"get":{"operationId":"hosting.template.get","summary":"One template in full: plan, pages as block trees, tokens, manifest versions, what it needs.","tags":["hosting"],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingTemplateGet","x-rivier-sdk":"hosting.template.get","x-rivier-cli":"hosting template get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"hosting.template.remove","summary":"Remove a template the project saved.","tags":["hosting"],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"hosting:admin","x-rivier-graphql":"Mutation.hostingTemplateRemove","x-rivier-sdk":"hosting.template.remove","x-rivier-cli":"hosting template remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/templates/{tid}/preview":{"get":{"operationId":"hosting.template.preview","summary":"A template page rendered with sample content, as HTML.","tags":["hosting"],"parameters":[{"name":"tid","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"page","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"brand","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":60}}],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.template.preview","x-rivier-cli":"hosting template preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/html":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/hosting/usage":{"get":{"operationId":"hosting.usage.get","summary":"What the plan allows this project's hosting and what is in use.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-mcp":"rivier_hosting_usage","x-rivier-graphql":"Query.hostingUsageGet","x-rivier-sdk":"hosting.usage.get","x-rivier-cli":"hosting usage get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ceilings":{"type":"object","properties":{"maxBundleMb":{"type":"number"},"memoryMb":{"type":"number"},"cpuPercent":{"type":"number"},"tasks":{"type":"number"},"envVars":{"type":"number"},"previewHours":{"type":"number"},"keptDeployments":{"type":"number"},"dbSizeMb":{"type":"number"},"dbConnections":{"type":"number"},"backupsKept":{"type":"number"},"storageMb":{"type":"number"},"overage":{"type":"string"}},"required":["maxBundleMb","memoryMb","cpuPercent","tasks","envVars","previewHours","keptDeployments","dbSizeMb","dbConnections","backupsKept","storageMb","overage"],"additionalProperties":false},"sites":{"type":"number"},"domains":{"type":"number"},"previews":{"type":"number"},"databases":{"type":"number"},"buckets":{"type":"number"},"regions":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"sites":{"type":"number"},"domains":{"type":"number"},"previews":{"type":"number"},"databases":{"type":"number"},"buckets":{"type":"number"}},"required":["sites","domains","previews","databases","buckets"],"additionalProperties":false}},"required":["ceilings","sites","domains","previews","databases","buckets","regions","limits"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices":{"get":{"operationId":"shop.invoice.list","summary":"Invoices by status, what they are for (an order, a stay) or a search.","tags":["shop"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(draft|open|partially_paid|paid|overdue|void|uncollectible)(,(draft|open|partially_paid|paid|overdue|void|uncollectible))*$"}},{"name":"referenceKind","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"referenceId","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_invoices_list","x-rivier-graphql":"Query.invoices","x-rivier-sdk":"shop.invoice.list","x-rivier-cli":"shop invoice list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"seriesId":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string"},"currency":{"type":"string"},"issueDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"paidMinor":{"type":"number"},"dueMinor":{"type":"number"},"payUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"sentAt":{"type":["string","null"]}},"required":["id","seriesId","number","status","currency","issueDate","dueDate","subtotalMinor","taxMinor","totalMinor","paidMinor","dueMinor","payUrl","createdAt","sentAt"],"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.invoice.draft","summary":"Draft an invoice; idempotent on the key. It has no number until it is finalised.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_draft","x-rivier-graphql":"Mutation.draftInvoice","x-rivier-sdk":"shop.invoice.draft","x-rivier-cli":"shop invoice draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"seriesKey":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,30}$"},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":30},"registration":{"type":"string","maxLength":60},"city":{"type":"string","maxLength":100},"postalCode":{"type":"string","maxLength":20},"endpointScheme":{"type":"string","pattern":"^[0-9A-Z]{4}$"},"endpointId":{"type":"string","pattern":"^\\S(.{0,48}\\S)?$"},"paymentAccount":{"type":"string","pattern":"^[A-Za-z0-9 ]{4,42}$"},"paymentBic":{"type":"string","pattern":"^[A-Za-z0-9]{8,11}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"delivery":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"city":{"type":"string","maxLength":100},"postalCode":{"type":"string","maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"}},"additionalProperties":false},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"quantity":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":10,"default":"C62"},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999},"discountMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"productId":{"type":"string","format":"uuid"},"source":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"id":{"type":"string","maxLength":120}},"required":["kind","id"],"additionalProperties":false}},"required":["description","unitAmountMinor"],"additionalProperties":false},"maxItems":200,"default":[]},"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"dueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"supplyDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"periodFrom":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"periodTo":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"reference":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"id":{"type":"string","maxLength":120}},"required":["kind","id"],"additionalProperties":false},"buyerReference":{"type":"string","maxLength":120,"default":""},"purchaseOrder":{"type":"string","maxLength":120,"default":""},"paymentTerms":{"type":"string","maxLength":500},"paymentInstructions":{"type":"string","maxLength":1000},"notes":{"type":"string","maxLength":2000,"default":""},"reverseCharge":{"type":"boolean","default":false},"roundingMinor":{"type":"integer","minimum":-99,"maximum":99,"default":0},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["currency","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/credit-notes":{"get":{"operationId":"shop.creditNote.list","summary":"Credit notes, optionally for one invoice.","tags":["shop"],"parameters":[{"name":"invoiceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_invoices_credit_notes","x-rivier-graphql":"Query.creditNotes","x-rivier-sdk":"shop.creditNote.list","x-rivier-cli":"shop credit note list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"creditNotes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["creditNotes"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/series":{"get":{"operationId":"shop.invoiceSeries.list","summary":"The number series for invoices and credit notes.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.invoiceSeries.list","x-rivier-cli":"shop invoice series list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"series":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["series"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.invoiceSeries.create","summary":"Add a number series (gapless, optionally restarting each year).","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.invoiceSeries.create","x-rivier-cli":"shop invoice series create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,30}$"},"kind":{"type":"string","enum":["invoice","credit_note","quote","proposal"],"default":"invoice"},"prefix":{"type":"string","maxLength":20,"default":""},"padding":{"type":"integer","minimum":1,"maximum":12,"default":5},"resetRule":{"type":"string","enum":["never","yearly"],"default":"never"},"startAt":{"type":"integer","minimum":1,"maximum":999999999,"default":1},"jurisdiction":{"type":"string","maxLength":10,"default":""}},"required":["key"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/settings":{"get":{"operationId":"shop.invoiceSettings.get","summary":"The seller's details, default VAT and payment terms printed on invoices.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.invoiceSettings.get","x-rivier-cli":"shop invoice settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"shop.invoiceSettings.set","summary":"Set the seller's details, default VAT, payment days and footer.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.invoiceSettings.set","x-rivier-cli":"shop invoice settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"seller":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":30},"registration":{"type":"string","maxLength":60},"city":{"type":"string","maxLength":100},"postalCode":{"type":"string","maxLength":20},"endpointScheme":{"type":"string","pattern":"^[0-9A-Z]{4}$"},"endpointId":{"type":"string","pattern":"^\\S(.{0,48}\\S)?$"},"paymentAccount":{"type":"string","pattern":"^[A-Za-z0-9 ]{4,42}$"},"paymentBic":{"type":"string","pattern":"^[A-Za-z0-9]{8,11}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"defaultTaxBp":{"type":"integer","minimum":0,"maximum":10000},"paymentDays":{"type":"integer","minimum":0,"maximum":365},"paymentText":{"type":"string","maxLength":1000},"footer":{"type":"string","maxLength":600},"reminders":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["before","on","after"]},"days":{"type":"integer","minimum":0,"maximum":120}},"required":["kind","days"],"additionalProperties":false},"maxItems":8}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}":{"get":{"operationId":"shop.invoice.get","summary":"One invoice with its lines, tax groups, payments and what is due.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_invoices_get","x-rivier-graphql":"Query.invoice","x-rivier-sdk":"shop.invoice.get","x-rivier-cli":"shop invoice get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"seriesId":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string"},"currency":{"type":"string"},"issueDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"paidMinor":{"type":"number"},"dueMinor":{"type":"number"},"payUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"sentAt":{"type":["string","null"]}},"required":["id","seriesId","number","status","currency","issueDate","dueDate","subtotalMinor","taxMinor","totalMinor","paidMinor","dueMinor","payUrl","createdAt","sentAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.invoice.update","summary":"Change a draft invoice: dates, notes, payment terms, references, the customer and where the goods were delivered.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.invoice.update","x-rivier-cli":"shop invoice update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"dueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"supplyDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"notes":{"type":"string","maxLength":2000,"default":""},"paymentTerms":{"type":"string","maxLength":500},"paymentInstructions":{"type":"string","maxLength":1000},"buyerReference":{"type":"string","maxLength":120,"default":""},"purchaseOrder":{"type":"string","maxLength":120,"default":""},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":30},"registration":{"type":"string","maxLength":60},"city":{"type":"string","maxLength":100},"postalCode":{"type":"string","maxLength":20},"endpointScheme":{"type":"string","pattern":"^[0-9A-Z]{4}$"},"endpointId":{"type":"string","pattern":"^\\S(.{0,48}\\S)?$"},"paymentAccount":{"type":"string","pattern":"^[A-Za-z0-9 ]{4,42}$"},"paymentBic":{"type":"string","pattern":"^[A-Za-z0-9]{8,11}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"delivery":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"city":{"type":"string","maxLength":100},"postalCode":{"type":"string","maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"}},"additionalProperties":false},"reverseCharge":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"seriesId":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string"},"currency":{"type":"string"},"issueDate":{"type":["string","null"]},"dueDate":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"paidMinor":{"type":"number"},"dueMinor":{"type":"number"},"payUrl":{"type":["string","null"]},"createdAt":{"type":"string"},"sentAt":{"type":["string","null"]}},"required":["id","seriesId","number","status","currency","issueDate","dueDate","subtotalMinor","taxMinor","totalMinor","paidMinor","dueMinor","payUrl","createdAt","sentAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/client":{"put":{"operationId":"shop.invoice.client","summary":"Set which client of the organisation an invoice is for (null clears it) and who receives it; without recipients they come from the client's primary and default-copied contacts.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_client","x-rivier-graphql":"Mutation.shopInvoiceClient","x-rivier-sdk":"shop.invoice.client","x-rivier-cli":"invoices client","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"recipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5,"default":[]},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false}},"required":["clientId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"invoiceId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"recipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5,"default":[]},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false}},"required":["invoiceId","clientId","recipients"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/credit-notes":{"post":{"operationId":"shop.creditNote.request","summary":"Ask for a credit note against a numbered invoice (the whole invoice or chosen lines). A person issues it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_credit_note_request","x-rivier-graphql":"Mutation.requestCreditNote","x-rivier-sdk":"shop.creditNote.request","x-rivier-cli":"shop credit note request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300},"full":{"type":"boolean","default":false},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"quantity":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":10,"default":"C62"},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999},"discountMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"productId":{"type":"string","format":"uuid"},"source":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"id":{"type":"string","maxLength":120}},"required":["kind","id"],"additionalProperties":false}},"required":["description","unitAmountMinor"],"additionalProperties":false},"maxItems":200,"default":[]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["reason","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/doc-events":{"get":{"operationId":"shop.invoice.docEvents","summary":"When an invoice was sent, opened by the client and reported paid by them.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_invoices_doc_events","x-rivier-graphql":"Query.shopInvoiceDocEvents","x-rivier-sdk":"shop.invoice.docEvents","x-rivier-cli":"invoices doc-events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"number"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"type":{"type":"string"},"actor":{"type":"string"},"data":{"type":"object","additionalProperties":{}},"at":{"type":"string"}},"required":["seq","kind","docId","type","actor","data","at"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/events":{"get":{"operationId":"shop.invoice.events","summary":"What happened to an invoice, in order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.invoice.events","x-rivier-cli":"shop invoice events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["events"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/finalise":{"post":{"operationId":"shop.invoice.finalise","summary":"Number and freeze an invoice. A numbered invoice can only be corrected by a credit note.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_finalise","x-rivier-graphql":"Mutation.finaliseInvoice","x-rivier-sdk":"shop.invoice.finalise","x-rivier-cli":"shop invoice finalise","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/link":{"post":{"operationId":"shop.invoice.link","summary":"A fresh private link to an invoice, where the client reads it and sees how to pay; the address is shown once.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_link","x-rivier-graphql":"Mutation.shopInvoiceLink","x-rivier-sdk":"shop.invoice.link","x-rivier-cli":"invoices link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30},"replace":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"token":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["url","token","link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/links":{"get":{"operationId":"shop.invoice.links","summary":"The private links of an invoice: expiry, views, whether revoked.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_invoices_links","x-rivier-graphql":"Query.shopInvoiceLinks","x-rivier-sdk":"shop.invoice.links","x-rivier-cli":"invoices links","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}}},"required":["links"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/links/{linkId}/regenerate":{"post":{"operationId":"shop.invoice.linkRegenerate","summary":"Replace a link of an invoice with a new one; the old address stops working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.invoice.linkRegenerate","x-rivier-cli":"invoices links regenerate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"token":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["url","token","link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/links/{linkId}/revoke":{"post":{"operationId":"shop.invoice.linkRevoke","summary":"Switch one link of an invoice off.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.invoice.linkRevoke","x-rivier-cli":"invoices links revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/payments":{"post":{"operationId":"shop.invoice.recordPayment","summary":"Record a payment received against an invoice (a bank transfer, cash); idempotent on the key. Marking an invoice paid is a person's decision.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.invoice.recordPayment","x-rivier-cli":"shop invoice record payment","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"method":{"type":"string","enum":["manual","provider"],"default":"manual"},"paymentId":{"type":"string","format":"uuid"},"receivedAt":{"type":"string","format":"date-time"},"ref":{"type":"string","maxLength":120,"default":""},"note":{"type":"string","maxLength":300,"default":""},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["amountMinor","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/pdf":{"get":{"operationId":"shop.invoice.pdf","summary":"The invoice as a PDF.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.invoice.pdf","x-rivier-cli":"shop invoice pdf","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/receipts":{"get":{"operationId":"shop.invoice.receipts","summary":"The bank-transfer receipts the client uploaded at the invoice link: file name, size, the amount and note they gave, and whether a payment was recorded after it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_invoices_receipts","x-rivier-graphql":"Query.shopInvoiceReceipts","x-rivier-sdk":"shop.invoice.receipts","x-rivier-cli":"invoices receipts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"receipts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"invoiceId":{"type":"string","format":"uuid"},"at":{"type":"string"},"name":{"type":"string"},"contentType":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":"string"},"amountNote":{"type":"string"},"note":{"type":"string"},"status":{"type":"string","enum":["pending","reconciled"]},"downloadPath":{"type":"string"}},"required":["id","invoiceId","at","name","contentType","bytes","sha256","amountNote","note","status","downloadPath"],"additionalProperties":false}}},"required":["receipts"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/receipts/{receiptId}/download":{"get":{"operationId":"shop.invoice.receiptDownload","summary":"One uploaded receipt file (editor and above).","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"receiptId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.invoice.receiptDownload","x-rivier-cli":"invoices receipts download","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/send":{"post":{"operationId":"shop.invoice.send","summary":"Email the invoice with its PDF to the customer.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_send","x-rivier-graphql":"Mutation.sendInvoice","x-rivier-sdk":"shop.invoice.send","x-rivier-cli":"shop invoice send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":1000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/send-link":{"post":{"operationId":"shop.invoice.sendLink","summary":"Send the invoice to the client by mail with its PDF and a private link (or, with channel link, return the link without mail). Beside the plain send, which stays.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_send_link","x-rivier-sdk":"shop.invoice.sendLink","x-rivier-cli":"invoices send-link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","link"],"default":"email"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"attachPdf":{"type":"boolean","default":true},"linkDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean"},"channel":{"type":"string","enum":["email","link"]},"url":{"type":"string"},"linkId":{"type":"string","format":"uuid"},"resend":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string","enum":["to","cc"]},"ok":{"type":"boolean"},"reason":{"type":"string"},"detail":{"type":"string"}},"required":["email","role","ok"],"additionalProperties":false}},"number":{"type":["string","null"]},"status":{"type":"string"}},"required":["sent","channel","url","linkId","resend","results","number","status"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/send-link/preview":{"post":{"operationId":"shop.invoice.sendLinkPreview","summary":"The mail that sending the invoice with its private link would produce, the PDF size and the checks that would stop it; nothing is sent.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_invoices_send_link_preview","x-rivier-graphql":"Mutation.shopInvoiceSendLinkPreview","x-rivier-sdk":"shop.invoice.sendLinkPreview","x-rivier-cli":"invoices send-link preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","link"],"default":"email"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"attachPdf":{"type":"boolean","default":true},"linkDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["quote","proposal","invoice"]},"status":{"type":"string"},"subject":{"type":"string"},"message":{"type":"string"},"text":{"type":"string"},"html":{"type":"string"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["email"],"additionalProperties":true}},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["email"],"additionalProperties":true}},"pdf":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"bytes":{"type":"number"}},"required":["filename","bytes"],"additionalProperties":false},{"type":"null"}]},"problems":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"type":"string","enum":["error","warning"]},"message":{"type":"string"}},"required":["code","severity","message"],"additionalProperties":false}},"ready":{"type":"boolean"},"linkNote":{"type":"string"}},"required":["kind","status","subject","message","text","html","to","cc","pdf","problems","ready","linkNote"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/invoices/{id}/void":{"post":{"operationId":"shop.invoice.void","summary":"Void an invoice nobody has paid.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.invoice.void","x-rivier-cli":"shop invoice void","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/jobs":{"post":{"operationId":"workspace.job.create","summary":"Hold a job until its time, once or every so often. It arrives as the event jobs.<name>, signed, at the project's webhooks that listen for it. The same idempotency key never makes a second job.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_job_create","x-rivier-graphql":"Mutation.workspaceJobCreate","x-rivier-sdk":"workspace.job.create","x-rivier-cli":"workspace job create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9][a-z0-9_.-]{0,59}$"},"data":{"type":"object","additionalProperties":{},"default":{}},"runAt":{"type":"string","format":"date-time"},"everySeconds":{"type":"integer","minimum":60,"maximum":2678400},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"workspace.job.list","summary":"The project's jobs, by when they next run; filter by state.","tags":["workspace"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["scheduled","done","cancelled"]}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_job_list","x-rivier-graphql":"Query.workspaceJobList","x-rivier-sdk":"workspace.job.list","x-rivier-cli":"workspace job list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"jobs":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["jobs"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/jobs/{id}":{"get":{"operationId":"workspace.job.get","summary":"One job: when it runs next, how often, how many times it ran.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_job_get","x-rivier-graphql":"Query.workspaceJobGet","x-rivier-sdk":"workspace.job.get","x-rivier-cli":"workspace job get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/jobs/{id}/cancel":{"post":{"operationId":"workspace.job.cancel","summary":"Cancel a scheduled job.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_job_cancel","x-rivier-graphql":"Mutation.workspaceJobCancel","x-rivier-sdk":"workspace.job.cancel","x-rivier-cli":"workspace job cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/keys":{"get":{"operationId":"keys.key.list","summary":"List the keys of the project (never their secrets).","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-sdk":"keys.key.list","x-rivier-cli":"keys key list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string","enum":["live","test"]},"key_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"role":{"type":"string","enum":["agent","manage","admin"]},"kind":{"type":"string","enum":["secret","publishable"]},"prefix":{"type":"string"},"scopes":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"allowed_origins":{"type":"array","items":{"type":"string"}},"ip_allowlist":{"type":"array","items":{"type":"string"}},"rpm_limit":{"type":["number","null"]},"expires_at":{"type":["string","null"]},"created_at":{"type":"string"},"rotated_to":{"type":["string","null"]},"last_used_at":{"type":["string","null"]},"revoked_at":{"type":["string","null"]}},"required":["key_id","name","role","kind","prefix","scopes","allowed_origins","ip_allowlist","created_at"],"additionalProperties":false}}},"required":["keys"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"keys.key.create","summary":"Mint a key. The secret is returned once.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.key.create","x-rivier-cli":"keys key create","x-rivier-events":["keys.key.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"role":{"type":"string","enum":["agent","manage"]},"rpmLimit":{"type":"integer","minimum":1,"maximum":100000},"expiresInDays":{"type":"integer","minimum":1,"maximum":3650},"kind":{"type":"string","enum":["secret","publishable"]},"scopes":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":60},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":50},"ipAllowlist":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":50},"mode":{"type":"string","enum":["live","test"]}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["live","test"]},"key_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"role":{"type":"string","enum":["agent","manage","admin"]},"kind":{"type":"string","enum":["secret","publishable"]},"prefix":{"type":"string"},"scopes":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"allowed_origins":{"type":"array","items":{"type":"string"}},"ip_allowlist":{"type":"array","items":{"type":"string"}},"rpm_limit":{"type":["number","null"]},"expires_at":{"type":["string","null"]},"created_at":{"type":"string"},"secret":{"type":"string"}},"required":["key_id","name","role","kind","prefix","scopes","allowed_origins","ip_allowlist","created_at","secret"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/keys/events":{"get":{"operationId":"keys.event.list","summary":"The key audit: created, rotated and revoked, never a secret.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-sdk":"keys.event.list","x-rivier-cli":"keys event list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"keyId":{"type":"string"},"event":{"type":"string"},"at":{"type":"string"},"detail":{}},"required":["keyId","event","at"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/keys/tokens":{"post":{"operationId":"keys.token.create","summary":"Mint a short-lived token from this key: at most its scopes, minutes to live, no key management.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:write","x-rivier-sdk":"keys.token.create","x-rivier-cli":"keys token create","x-rivier-events":["keys.token.minted"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scopes":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":60},"ttlSeconds":{"type":"integer","minimum":60,"maximum":3600},"allowedOrigins":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"ipAllowlist":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":20},"rpmLimit":{"type":"integer","minimum":1,"maximum":100000},"subject":{"type":"string","maxLength":120}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"token_type":{"type":"string","const":"Bearer"},"expires_in":{"type":"number"},"expires_at":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"key_id":{"type":"string"}},"required":["token","token_type","expires_in","expires_at","scopes","key_id"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/keys/usage":{"get":{"operationId":"usage.key.usage","summary":"Requests and tokens per key per day.","tags":["usage"],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":365}}],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.keyUsage","x-rivier-sdk":"usage.key.usage","x-rivier-cli":"usage key usage","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"number"},"usage":{"type":"array","items":{"type":"object","properties":{"key_id":{"type":"string"},"day":{"type":"string"},"requests":{"type":"number"},"tokens_in":{"type":"number"},"tokens_out":{"type":"number"}},"required":["key_id","day","requests","tokens_in","tokens_out"],"additionalProperties":false}}},"required":["days","usage"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/keys/{id}":{"delete":{"operationId":"keys.key.revoke","summary":"Revoke a key at once.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.key.revoke","x-rivier-cli":"keys key revoke","x-rivier-events":["keys.key.revoked"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"key_id":{"type":"string"},"revoked":{"type":"boolean","const":true}},"required":["key_id","revoked"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/keys/{id}/rotate":{"post":{"operationId":"keys.key.rotate","summary":"Replace a key with a twin; the old key keeps working for the overlap.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.key.rotate","x-rivier-cli":"keys key rotate","x-rivier-events":["keys.key.rotated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"overlapHours":{"type":"number","minimum":0,"maximum":720}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"key_id":{"type":"string"},"prefix":{"type":"string"},"replaces":{"type":"string"},"old_key_expires_at":{"type":"string"},"secret":{"type":"string"}},"required":["key_id","prefix","replaces","old_key_expires_at","secret"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/check":{"post":{"operationId":"language.text.check","summary":"Check translations mechanically, for any language: written in the language's script, the same placeholders, markup and numbers as the source, and plurals kept. Nothing is kept; numbers and an unchanged string are advisory.","tags":["language"],"parameters":[],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_check","x-rivier-graphql":"Query.languageTextCheck","x-rivier-sdk":"language.text.check","x-rivier-cli":"language text check","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string","minLength":2,"maxLength":12},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","maxLength":300},"source":{"type":"string","maxLength":5000},"translation":{"type":"string","maxLength":5000}},"required":["source","translation"],"additionalProperties":false},"minItems":1,"maxItems":500}},"required":["language","items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/detect":{"post":{"operationId":"language.text.detect","summary":"Find the language of up to 50 texts.","tags":["language"],"parameters":[],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_detect","x-rivier-graphql":"Query.languageTextDetect","x-rivier-sdk":"language.text.detect","x-rivier-cli":"language text detect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texts":{"type":"array","items":{"type":"string","minLength":1,"maxLength":5000},"minItems":1,"maxItems":50}},"required":["texts"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"languages":{"type":"array","items":{"anyOf":[{"type":"object","properties":{},"additionalProperties":true},{"type":"null"}]}}},"required":["languages"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/glossaries":{"get":{"operationId":"language.glossary.list","summary":"The project's term lists: names, products and words with fixed translations, or kept as written.","tags":["language"],"parameters":[],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_glossary_list","x-rivier-graphql":"Query.languageGlossaryList","x-rivier-sdk":"language.glossary.list","x-rivier-cli":"language glossary list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"glossaries":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["glossaries"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"language.glossary.create","summary":"Add a term list.","tags":["language"],"parameters":[],"x-rivier-scope":"language:admin","x-rivier-mcp":"rivier_language_glossary_create","x-rivier-graphql":"Mutation.languageGlossaryCreate","x-rivier-sdk":"language.glossary.create","x-rivier-cli":"language glossary create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"terms":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","minLength":1,"maxLength":200},"targets":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":200},"default":{}},"keep":{"type":"boolean","default":false}},"required":["source"],"additionalProperties":false},"maxItems":500,"default":[]}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/glossaries/{id}":{"get":{"operationId":"language.glossary.get","summary":"One term list with its terms.","tags":["language"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_glossary_get","x-rivier-graphql":"Query.languageGlossaryGet","x-rivier-sdk":"language.glossary.get","x-rivier-cli":"language glossary get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"language.glossary.update","summary":"Change a term list. Translations made with the earlier list are not reused.","tags":["language"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"language:admin","x-rivier-mcp":"rivier_language_glossary_update","x-rivier-graphql":"Mutation.languageGlossaryUpdate","x-rivier-sdk":"language.glossary.update","x-rivier-cli":"language glossary update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"terms":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","minLength":1,"maxLength":200},"targets":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":200},"default":{}},"keep":{"type":"boolean","default":false}},"required":["source"],"additionalProperties":false},"maxItems":500,"default":[]}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"language.glossary.delete","summary":"Remove a term list.","tags":["language"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"language:admin","x-rivier-mcp":"rivier_language_glossary_delete","x-rivier-graphql":"Mutation.languageGlossaryDelete","x-rivier-sdk":"language.glossary.delete","x-rivier-cli":"language glossary delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/languages":{"get":{"operationId":"language.language.list","summary":"Every language Rivier works in: its code, its English name, its own name, whether it is written right to left, and whether model-based translation lists it.","tags":["language"],"parameters":[],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_list","x-rivier-graphql":"Query.languageLanguageList","x-rivier-sdk":"language.language.list","x-rivier-cli":"language language list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"languages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["languages"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/reviews":{"post":{"operationId":"language.review.submit","summary":"Send translations to the project's review queue for a reader of the language. Each is checked on arrival; a new version of a waiting string replaces it.","tags":["language"],"parameters":[],"x-rivier-scope":"language:write","x-rivier-mcp":"rivier_language_review_submit","x-rivier-graphql":"Mutation.languageReviewSubmit","x-rivier-sdk":"language.review.submit","x-rivier-cli":"language review submit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string","minLength":2,"maxLength":12},"items":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":300},"source":{"type":"string","maxLength":5000},"translation":{"type":"string","maxLength":5000}},"required":["key","source","translation"],"additionalProperties":false},"minItems":1,"maxItems":500}},"required":["language","items"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"language.review.list","summary":"The review queue: strings waiting for a reader, and those approved, corrected or rejected, with their check results.","tags":["language"],"parameters":[{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":12}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","approved","corrected","rejected"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0}}],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_reviews","x-rivier-graphql":"Query.languageReviewList","x-rivier-sdk":"language.review.list","x-rivier-cli":"language review list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/reviews/approved":{"get":{"operationId":"language.review.approved","summary":"A language's decided strings, by key: as approved, or as corrected by the reader.","tags":["language"],"parameters":[{"name":"language","in":"query","required":true,"schema":{"type":"string","maxLength":12}}],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_reviews_approved","x-rivier-graphql":"Query.languageReviewApproved","x-rivier-sdk":"language.review.approved","x-rivier-cli":"language review approved","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/reviews/{id}/decision":{"post":{"operationId":"language.review.decide","summary":"Approve a waiting string, write its correction (which must pass the check) or reject it. A person only.","tags":["language"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"language:write","x-rivier-graphql":"Mutation.languageReviewDecide","x-rivier-sdk":"language.review.decide","x-rivier-cli":"language review decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","correct","reject"]},"text":{"type":"string","maxLength":5000},"note":{"type":"string","maxLength":500}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/settings":{"get":{"operationId":"language.settings.get","summary":"The project's own languages: the one it writes in first, the ones it offers its customers, whether incoming messages are translated, and the term list used by default.","tags":["language"],"parameters":[],"x-rivier-scope":"language:read","x-rivier-mcp":"rivier_language_settings_get","x-rivier-graphql":"Query.languageSettingsGet","x-rivier-sdk":"language.settings.get","x-rivier-cli":"language settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"language.settings.set","summary":"Set the project's languages. The main language is always offered.","tags":["language"],"parameters":[],"x-rivier-scope":"language:admin","x-rivier-mcp":"rivier_language_settings_set","x-rivier-graphql":"Mutation.languageSettingsSet","x-rivier-sdk":"language.settings.set","x-rivier-cli":"language settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"primary":{"type":"string","minLength":2,"maxLength":12},"offered":{"type":"array","items":{"type":"string","minLength":2,"maxLength":12},"maxItems":60},"translateIncoming":{"type":"boolean","default":true},"defaultGlossaryId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"default":null}},"required":["primary","offered"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/language/translate":{"post":{"operationId":"language.text.translate","summary":"Translate up to 200 texts into one language, keeping placeholders and markup, with the project's term list. A translation already made for the same words is read back and costs nothing; the rest is held against the project's spending limits.","tags":["language"],"parameters":[],"x-rivier-scope":"language:write","x-rivier-mcp":"rivier_language_translate","x-rivier-graphql":"Mutation.languageTextTranslate","x-rivier-sdk":"language.text.translate","x-rivier-cli":"language text translate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"texts":{"type":"array","items":{"type":"string","maxLength":10000},"minItems":1,"maxItems":200},"to":{"type":"string","minLength":2,"maxLength":12},"from":{"anyOf":[{"type":"string","minLength":2,"maxLength":12},{"type":"string","const":"auto"}]},"glossaryId":{"type":"string","format":"uuid"},"tone":{"type":"string","maxLength":200},"purpose":{"type":"string","maxLength":60}},"required":["texts","to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/life/events/{id}/accept":{"post":{"operationId":"agents.life.accept","summary":"Accept a proposed life event.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_life_decide","x-rivier-graphql":"Mutation.agentsLifeAccept","x-rivier-sdk":"agents.life.accept","x-rivier-cli":"agents life accept","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/life/events/{id}/reject":{"post":{"operationId":"agents.life.reject","summary":"Reject a proposed life event.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsLifeReject","x-rivier-sdk":"agents.life.reject","x-rivier-cli":"agents life reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/amenities/{scopeKind}/{scopeId}":{"get":{"operationId":"bookings.amenities.get","summary":"The amenities a property, area, room type or unit sets itself, and the set it has after inheritance with the level each comes from.","tags":["bookings"],"parameters":[{"name":"scopeKind","in":"path","required":true,"schema":{"type":"string","enum":["property","area","room_type","unit"]}},{"name":"scopeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":12}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_amenities_get","x-rivier-graphql":"Query.lodgingAmenities","x-rivier-sdk":"bookings.amenities.get","x-rivier-cli":"bookings amenities get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.amenities.set","summary":"Replace the amenities a property, area, room type or unit sets itself: include or remove an inherited one, with free or paid access, fee, hours, location and a note.","tags":["bookings"],"parameters":[{"name":"scopeKind","in":"path","required":true,"schema":{"type":"string","enum":["property","area","room_type","unit"]}},{"name":"scopeId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_amenities_set","x-rivier-sdk":"bookings.amenities.set","x-rivier-cli":"bookings amenities set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"amenityId":{"type":"string","minLength":1,"maxLength":80},"mode":{"type":"string","enum":["include","exclude"],"default":"include"},"access":{"type":"string","enum":["free","paid","on_request"],"default":"free"},"feeMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"default":null},"feePer":{"anyOf":[{"type":"string","enum":["stay","night","person","use"]},{"type":"null"}],"default":null},"hours":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"days":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7},"minItems":1,"maxItems":7},"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["days","from","to"],"additionalProperties":false},"maxItems":14},{"type":"null"}],"default":null},"location":{"type":"string","maxLength":120,"default":""},"quantity":{"anyOf":[{"type":"integer","minimum":1,"maximum":500},{"type":"null"}],"default":null},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":500},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}}},"required":["amenityId"],"additionalProperties":false},"maxItems":300}},"required":["items"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/amenity-taxonomy":{"get":{"operationId":"bookings.amenityTaxonomy.get","summary":"The controlled amenity taxonomy: categories, ids, icons, labels in seven languages and the OpenTravel and extended partner codes each id maps to.","tags":["bookings"],"parameters":[{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":12}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_amenity_taxonomy","x-rivier-graphql":"Query.lodgingAmenityTaxonomy","x-rivier-sdk":"bookings.amenityTaxonomy.get","x-rivier-cli":"bookings amenity taxonomy get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/areas":{"get":{"operationId":"bookings.area.list","summary":"Buildings, wings, floors and areas of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.area.list","x-rivier-cli":"bookings area list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"areas":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["areas"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.area.create","summary":"Add a building, wing, floor or area, optionally inside another.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_area_create","x-rivier-sdk":"bookings.area.create","x-rivier-cli":"bookings area create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"kind":{"type":"string","enum":["building","wing","floor","area"]},"name":{"type":"string","minLength":1,"maxLength":120},"level":{"anyOf":[{"type":"integer","minimum":-10,"maximum":200},{"type":"null"}]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["propertyId","kind","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/areas/{id}":{"patch":{"operationId":"bookings.area.update","summary":"Change, move or archive an area.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_area_update","x-rivier-sdk":"bookings.area.update","x-rivier-cli":"bookings area update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"kind":{"type":"string","enum":["building","wing","floor","area"]},"name":{"type":"string","minLength":1,"maxLength":120},"level":{"anyOf":[{"type":"integer","minimum":-10,"maximum":200},{"type":"null"}]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/arrivals":{"get":{"operationId":"bookings.stay.arrivals","summary":"Arrivals for a date.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_arrivals","x-rivier-graphql":"Query.arrivals","x-rivier-sdk":"bookings.stay.arrivals","x-rivier-cli":"bookings stay arrivals","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/availability":{"get":{"operationId":"bookings.stay.availability","summary":"Room types and rate plans for a stay with price, deposit, rooms left, cancellation terms and, where it cannot be sold, the written reasons.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"arrival","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"departure","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"adults","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":2}},{"name":"children","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":20,"default":0}},{"name":"infants","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":10,"default":0}},{"name":"roomTypeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"ratePlanId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"promoCode","in":"query","required":false,"schema":{"type":"string","maxLength":24}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_availability","x-rivier-graphql":"Query.lodgingAvailability","x-rivier-sdk":"bookings.stay.availability","x-rivier-cli":"bookings stay availability","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/calendar":{"get":{"operationId":"bookings.calendar.get","summary":"The calendar of a property for up to 62 days: per room type and night what is sold, sellable and left, the rules that close it and the lowest price; per room which nights are taken or out of order.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_calendar","x-rivier-graphql":"Query.lodgingCalendar","x-rivier-sdk":"bookings.calendar.get","x-rivier-cli":"bookings calendar get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channel-properties":{"get":{"operationId":"bookings.channel.properties","summary":"The properties on the business's connected channel manager accounts, for choosing the one a link is for.","tags":["bookings"],"parameters":[{"name":"provider","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9_-]{1,30}$"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.channel.properties","x-rivier-cli":"bookings channel properties","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channel-providers":{"get":{"operationId":"bookings.channel.providers","summary":"The channel managers this project can link a property to, each with the connection it is made under.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.channel.providers","x-rivier-cli":"bookings channel providers","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"providers":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["providers"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channel-state":{"get":{"operationId":"bookings.channel.state","summary":"Where a property stands with its channel manager: whether one is connected, each link with its account, when it last sent and received, and the last thing that went wrong.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.channel.state","x-rivier-cli":"bookings channel state","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channel-sync/{id}/events":{"get":{"operationId":"bookings.channel.events","summary":"What went out to the channel and what came in, with what needs a person.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_frontdesk_channel_events","x-rivier-graphql":"Query.channelEvents","x-rivier-sdk":"bookings.channel.events","x-rivier-cli":"bookings channel events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["events"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channel-sync/{id}/pull":{"post":{"operationId":"bookings.channel.pull","summary":"Take in what the channel sold: new bookings once each, cancellations; an oversold or changed booking is kept for a person, nobody is cancelled for it.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_channel_pull","x-rivier-graphql":"Mutation.pullChannelBookings","x-rivier-sdk":"bookings.channel.pull","x-rivier-cli":"bookings channel pull","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channel-sync/{id}/push":{"post":{"operationId":"bookings.channel.push","summary":"Tell the channel how many rooms are left per night and the nightly rates for the next days.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_channel_push","x-rivier-graphql":"Mutation.pushChannelInventory","x-rivier-sdk":"bookings.channel.push","x-rivier-cli":"bookings channel push","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"days":{"type":"integer","minimum":1,"maximum":120,"default":30}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channels":{"get":{"operationId":"bookings.channel.list","summary":"The channel manager connections of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.channel.list","x-rivier-cli":"bookings channel list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"channels":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["channels"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.channel.connect","summary":"Connect a channel manager to a property.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.channel.connect","x-rivier-cli":"bookings channel connect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"provider":{"type":"string","pattern":"^[a-z][a-z0-9_-]{1,30}$"},"label":{"type":"string","maxLength":80,"default":""},"config":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}}},"required":["propertyId","provider"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channels/{id}/catalog":{"get":{"operationId":"bookings.channel.catalog","summary":"The channel manager's own room types and rate plans of a linked property, to match against the property's.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.channel.catalog","x-rivier-cli":"bookings channel catalog","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channels/{id}/maps":{"put":{"operationId":"bookings.channel.map","summary":"Say which room type or rate plan a channel's code means.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.channel.map","x-rivier-cli":"bookings channel map","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["room","rate"]},"externalCode":{"type":"string","minLength":1,"maxLength":80},"internalId":{"type":"string","format":"uuid"}},"required":["kind","externalCode","internalId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"bookings.channel.maps","summary":"The codes a channel uses for rooms and rate plans, and which of ours each one means.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.channel.maps","x-rivier-cli":"bookings channel maps","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"maps":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["maps"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channels/{id}/maps/remove":{"post":{"operationId":"bookings.channel.unmap","summary":"Take a channel code out: it no longer matches a room type or rate plan, so nothing is sent for it.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.channel.unmap","x-rivier-cli":"bookings channel unmap","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["room","rate"]},"externalCode":{"type":"string","minLength":1,"maxLength":80}},"required":["kind","externalCode"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/channels/{id}/status":{"put":{"operationId":"bookings.channel.setStatus","summary":"Pause or resume a channel connection.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.channel.setStatus","x-rivier-cli":"bookings channel set status","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["active","paused"]}},"required":["status"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/custom-amenities":{"get":{"operationId":"bookings.customAmenity.list","summary":"Amenities the property added to the taxonomy.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.customAmenity.list","x-rivier-cli":"bookings custom amenity list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"customAmenities":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["customAmenities"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.customAmenity.create","summary":"Add an amenity the taxonomy does not have.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_custom_amenity_create","x-rivier-sdk":"bookings.customAmenity.create","x-rivier-cli":"bookings custom amenity create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["room","bathroom","kitchen","entertainment","climate","safety","accessibility","outdoor","services","family","wellness","business","view","sustainability"]},"icon":{"type":"string","pattern":"^[A-Za-z0-9]{1,40}$","default":"Sparkles"},"labels":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":80},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}}},"required":["category","labels"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/custom-amenities/{id}":{"patch":{"operationId":"bookings.customAmenity.update","summary":"Change or archive a custom amenity.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_custom_amenity_update","x-rivier-sdk":"bookings.customAmenity.update","x-rivier-cli":"bookings custom amenity update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"icon":{"type":"string","pattern":"^[A-Za-z0-9]{1,40}$"},"labels":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":80},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/departures":{"get":{"operationId":"bookings.stay.departures","summary":"Departures for a date.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_departures","x-rivier-graphql":"Query.departures","x-rivier-sdk":"bookings.stay.departures","x-rivier-cli":"bookings stay departures","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/board":{"get":{"operationId":"bookings.desk.board","summary":"Today's arrivals, departures and house with what needs attention beside each (no room, room not ready, balance due, not checked out), room counts by state, open tasks and issues.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_frontdesk_board","x-rivier-graphql":"Query.frontDeskBoard","x-rivier-sdk":"bookings.desk.board","x-rivier-cli":"bookings desk board","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/issues":{"get":{"operationId":"bookings.maintenance.list","summary":"Maintenance issues by state or room.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","assigned","resolved","wont_fix"]}},{"name":"unitId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":200}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_frontdesk_issues","x-rivier-graphql":"Query.maintenanceIssues","x-rivier-sdk":"bookings.maintenance.list","x-rivier-cli":"bookings maintenance list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"issues":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["issues"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.maintenance.report","summary":"Report something broken. Taking the room out of order while it is fixed is a person's decision.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_issue_report","x-rivier-graphql":"Mutation.reportMaintenanceIssue","x-rivier-sdk":"bookings.maintenance.report","x-rivier-cli":"bookings maintenance report","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"unitId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":200},"detail":{"type":"string","maxLength":2000,"default":""},"severity":{"type":"string","enum":["low","normal","urgent"],"default":"normal"},"blocksUnit":{"type":"boolean","default":false}},"required":["propertyId","title"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/issues/{id}/assign":{"post":{"operationId":"bookings.maintenance.assign","summary":"Give an issue to someone.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.maintenance.assign","x-rivier-cli":"bookings maintenance assign","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"assignedTo":{"type":"string","minLength":1,"maxLength":120}},"required":["assignedTo"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/issues/{id}/resolve":{"post":{"operationId":"bookings.maintenance.resolve","summary":"Close an issue; the last blocking issue on a room puts it back as dirty.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_issue_resolve","x-rivier-graphql":"Mutation.resolveMaintenanceIssue","x-rivier-sdk":"bookings.maintenance.resolve","x-rivier-cli":"bookings maintenance resolve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resolution":{"type":"string","minLength":1,"maxLength":500},"wontFix":{"type":"boolean","default":false}},"required":["resolution"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/messages":{"post":{"operationId":"bookings.guestMessage.send","summary":"Send a guest one service message about a reservation (pre-arrival, welcome, thanks, cancellation), once. The project's sender identity and test mode apply.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_guest_message","x-rivier-graphql":"Mutation.sendGuestMessage","x-rivier-sdk":"bookings.guestMessage.send","x-rivier-cli":"bookings guest message send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reservationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["pre_arrival","welcome","thanks","cancellation","checkin_info","review_request","payment_due"]}},"required":["reservationId","kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/messages/run":{"post":{"operationId":"bookings.guestMessage.run","summary":"Send the day's guest messages for a property: pre-arrival for tomorrow's confirmed arrivals, welcome for today's check-ins, thanks for today's check-outs. Each guest gets each message once.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.guestMessage.run","x-rivier-cli":"bookings guest message run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["propertyId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/night-audit":{"post":{"operationId":"bookings.desk.nightAudit","summary":"Close the day: post the room nights, list possible no-shows, overdue departures, balances and arrivals with no room, make tomorrow's housekeeping tasks and keep the report. One audit per day; nothing is decided for a person.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.desk.nightAudit","x-rivier-cli":"bookings desk night audit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["propertyId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/night-audits":{"get":{"operationId":"bookings.desk.auditList","summary":"The kept night audit reports, newest first.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":14}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_frontdesk_audits","x-rivier-graphql":"Query.nightAudits","x-rivier-sdk":"bookings.desk.auditList","x-rivier-cli":"bookings desk audit list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"audits":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["audits"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/tasks":{"get":{"operationId":"bookings.housekeeping.list","summary":"Housekeeping tasks for a property, by day, state or room.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","in_progress","done","skipped"]}},{"name":"unitId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":200}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_frontdesk_tasks","x-rivier-graphql":"Query.housekeepingTasks","x-rivier-sdk":"bookings.housekeeping.list","x-rivier-cli":"bookings housekeeping list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tasks":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["tasks"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.housekeeping.create","summary":"Add a housekeeping task for a room.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_task_create","x-rivier-graphql":"Mutation.createHousekeepingTask","x-rivier-sdk":"bookings.housekeeping.create","x-rivier-cli":"bookings housekeeping create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"unitId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["checkout_clean","stayover","inspection","turndown","deep_clean","custom"],"default":"custom"},"dueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"priority":{"type":"integer","minimum":0,"maximum":3,"default":0},"assignedTo":{"type":"string","maxLength":120},"notes":{"type":"string","maxLength":500,"default":""}},"required":["propertyId","unitId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/tasks/refresh":{"post":{"operationId":"bookings.housekeeping.refresh","summary":"Make the clean task for every room left dirty.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.housekeeping.refresh","x-rivier-cli":"bookings housekeeping refresh","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"}},"required":["propertyId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/tasks/{id}/assign":{"post":{"operationId":"bookings.housekeeping.assign","summary":"Give a task to someone.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_task_assign","x-rivier-graphql":"Mutation.assignHousekeepingTask","x-rivier-sdk":"bookings.housekeeping.assign","x-rivier-cli":"bookings housekeeping assign","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"assignedTo":{"type":"string","minLength":1,"maxLength":120}},"required":["assignedTo"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/tasks/{id}/complete":{"post":{"operationId":"bookings.housekeeping.complete","summary":"Finish (or skip) a task. A cleaning sets the room clean; an inspection sets it inspected, which is a person's call.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_frontdesk_task_complete","x-rivier-graphql":"Mutation.completeHousekeepingTask","x-rivier-sdk":"bookings.housekeeping.complete","x-rivier-cli":"bookings housekeeping complete","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"notes":{"type":"string","maxLength":500},"skip":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/desk/tasks/{id}/start":{"post":{"operationId":"bookings.housekeeping.start","summary":"Start a task.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.housekeeping.start","x-rivier-cli":"bookings housekeeping start","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/extras":{"get":{"operationId":"bookings.extra.list","summary":"Extras and fees of a property (breakfast, parking, transfers, cleaning fee) with price, what it is per, VAT category and room types.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.extra.list","x-rivier-cli":"bookings extra list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"extras":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["extras"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.extra.create","summary":"Add an extra or a fee; a mandatory fee is added to every stay.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_extra_create","x-rivier-sdk":"bookings.extra.create","x-rivier-cli":"bookings extra create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"code":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,24}$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["extra","fee"],"default":"extra"},"priceMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"per":{"type":"string","enum":["stay","night","person","person_night"],"default":"stay"},"tax":{"type":"string","enum":["accommodation","ancillary","none"],"default":"ancillary"},"mandatory":{"type":"boolean","default":false},"maxQuantity":{"type":"integer","minimum":1,"maximum":50,"default":1},"roomTypeIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0},"published":{"type":"boolean","default":true}},"required":["propertyId","code","name","priceMinor"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/extras/{id}":{"patch":{"operationId":"bookings.extra.update","summary":"Change or archive an extra or fee.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_extra_update","x-rivier-sdk":"bookings.extra.update","x-rivier-cli":"bookings extra update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,24}$"},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["extra","fee"],"default":"extra"},"priceMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"per":{"type":"string","enum":["stay","night","person","person_night"],"default":"stay"},"tax":{"type":"string","enum":["accommodation","ancillary","none"],"default":"ancillary"},"mandatory":{"type":"boolean","default":false},"maxQuantity":{"type":"integer","minimum":1,"maximum":50,"default":1},"roomTypeIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0},"published":{"type":"boolean","default":true},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/fx-rates":{"get":{"operationId":"bookings.fxRate.list","summary":"The display currencies of a property with their rates, the day each is from and where it comes from.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.fxRate.list","x-rivier-cli":"bookings fx rate list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"rates":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["rates"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.fxRate.set","summary":"Enter the rate of a display currency (units of it per unit of the property's currency), the day and the source. Guests are shown an approximate price and are still charged in the property's currency.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.fxRate.set","x-rivier-cli":"bookings fx rate set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$"},"rate":{"type":"number","exclusiveMinimum":0,"maximum":1000000},"asOf":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"source":{"type":"string","minLength":1,"maxLength":120}},"required":["propertyId","currency","rate","asOf","source"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"rates":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["rates"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/fx-rates/remove":{"post":{"operationId":"bookings.fxRate.remove","summary":"Stop showing a display currency.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.fxRate.remove","x-rivier-cli":"bookings fx rate remove","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$"}},"required":["propertyId","currency"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/groups":{"get":{"operationId":"bookings.group.list","summary":"Groups of a property with their rooms and what the party owes.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.group.list","x-rivier-cli":"bookings group list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["groups"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.group.create","summary":"Start a group: a party with one lead guest, to which rooms are then booked.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_group_create","x-rivier-sdk":"bookings.group.create","x-rivier-cli":"bookings group create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":160},"lead":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"company":{"type":"string","maxLength":160}},"required":["name"],"additionalProperties":false},"notes":{"type":"string","maxLength":2000,"default":""}},"required":["propertyId","name","lead"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/groups/{id}":{"get":{"operationId":"bookings.group.get","summary":"One group with its reservations and totals: rooms, guests, what is estimated, deposited, paid and still owed.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_group_get","x-rivier-graphql":"Query.lodgingGroup","x-rivier-sdk":"bookings.group.get","x-rivier-cli":"bookings group get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/groups/{id}/members":{"post":{"operationId":"bookings.group.addMembers","summary":"Put existing reservations of the property into a group.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.group.addMembers","x-rivier-cli":"bookings group add members","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bookingIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100}},"required":["bookingIds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/groups/{id}/members/{bookingId}":{"delete":{"operationId":"bookings.group.removeMember","summary":"Take a reservation out of a group.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"bookingId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.group.removeMember","x-rivier-cli":"bookings group remove member","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/groups/{id}/rooms":{"post":{"operationId":"bookings.group.book","summary":"Book all the rooms of a group for the same nights, all or none; each room is checked before the first is made.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_group_book","x-rivier-sdk":"bookings.group.book","x-rivier-cli":"bookings group book","x-rivier-events":["bookings.reservation.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"rooms":{"type":"array","items":{"type":"object","properties":{"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"count":{"type":"integer","minimum":1,"maximum":50,"default":1},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]}},"required":["roomTypeId","ratePlanId"],"additionalProperties":false},"minItems":1,"maxItems":30},"promoCode":{"type":"string","maxLength":24},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["arrival","departure","rooms","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/guests":{"get":{"operationId":"bookings.guest.list","summary":"Returning guests the property keeps a profile of, found by name, email or phone, with their stays.","tags":["bookings"],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.guest.list","x-rivier-cli":"bookings guest list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"guests":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["guests"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.guest.save","summary":"Save what the property knows about a guest (found by email or phone): bed, floor, quiet, diet, accessibility, arrival time, notes. No identity documents are kept.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.guest.save","x-rivier-cli":"bookings guest save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"name":{"type":"string","minLength":1,"maxLength":160},"nationality":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"language":{"anyOf":[{"type":"string","minLength":2,"maxLength":12},{"type":"null"}]},"preferences":{"type":"object","properties":{"bed":{"type":"string","maxLength":60},"floor":{"type":"string","enum":["low","high","any"]},"quiet":{"type":"boolean"},"diet":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":10},"accessibility":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":10},"arrivalTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"additionalProperties":false,"default":{}},"notes":{"type":"string","maxLength":2000,"default":""}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/guests/{id}":{"get":{"operationId":"bookings.guest.get","summary":"One guest: preferences, notes and past stays.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.guest.get","x-rivier-cli":"bookings guest get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"bookings.guest.erase","summary":"Erase a guest's profile on their request (a person with approval rights); their stays keep their own retention.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.guest.erase","x-rivier-cli":"bookings guest erase","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/holds":{"post":{"operationId":"bookings.stay.hold","summary":"Hold the nights of a stay for a few minutes. The hold is a reservation in the held state and releases itself.","tags":["bookings"],"parameters":[{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_hold","x-rivier-graphql":"Mutation.holdStay","x-rivier-sdk":"bookings.stay.hold","x-rivier-cli":"bookings stay hold","x-rivier-events":["bookings.reservation.held"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"infants":{"type":"integer","minimum":0,"maximum":10,"default":0},"promoCode":{"type":"string","maxLength":24},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]},"quote":{"type":"string","maxLength":4000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["propertyId","roomTypeId","ratePlanId","arrival","departure","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/holds/{id}":{"delete":{"operationId":"bookings.stay.release","summary":"Release a hold.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_release_hold","x-rivier-graphql":"Mutation.releaseStayHold","x-rivier-sdk":"bookings.stay.release","x-rivier-cli":"bookings stay release","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"released":{"type":"boolean","const":true}},"required":["released"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/ical-feeds":{"get":{"operationId":"bookings.icalFeed.list","summary":"Calendars shared with other systems: the ones others read (with their address) and the ones read from elsewhere, with when each last synced.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.icalFeed.list","x-rivier-cli":"bookings ical feed list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"feeds":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["feeds"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.icalFeed.create","summary":"Publish a calendar of a room type or one room for other systems to read, or add the address of a calendar to read.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.icalFeed.create","x-rivier-cli":"bookings ical feed create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"unitId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"direction":{"type":"string","enum":["out","in"]},"name":{"type":"string","minLength":1,"maxLength":120},"url":{"type":"string","format":"uri","maxLength":500}},"required":["propertyId","roomTypeId","direction","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/ical-feeds/{id}":{"delete":{"operationId":"bookings.icalFeed.delete","summary":"Stop sharing or reading a calendar; the days it blocked are given back.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.icalFeed.delete","x-rivier-cli":"bookings ical feed delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/ical-feeds/{id}/sync":{"post":{"operationId":"bookings.icalFeed.sync","summary":"Read a calendar now and block its busy days; says which nights are already sold beyond what is left.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.icalFeed.sync","x-rivier-cli":"bookings ical feed sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/in-house":{"get":{"operationId":"bookings.stay.inHouse","summary":"Guests in the house on a date.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"date","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_in_house","x-rivier-graphql":"Query.inHouse","x-rivier-sdk":"bookings.stay.inHouse","x-rivier-cli":"bookings stay in house","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/message-settings":{"put":{"operationId":"bookings.messageTemplate.settings","summary":"Switch a kind of guest message on or off and hold it until a time of day in the property's own time zone.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.messageTemplate.settings","x-rivier-cli":"bookings message template settings","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["pre_arrival","welcome","thanks","cancellation","checkin_info","review_request","payment_due"]},"enabled":{"type":"boolean"},"sendFrom":{"anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}],"default":null}},"required":["propertyId","kind","enabled"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/message-templates":{"get":{"operationId":"bookings.messageTemplate.list","summary":"Every kind of guest message with the built-in words, what the property wrote in each language, whether it is on, and from what time of day it may go; and the words that can go in braces.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.messageTemplate.list","x-rivier-cli":"bookings message template list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.messageTemplate.save","summary":"Write a guest message in one language, replacing the built-in words; braces such as {name} and {checkIn} are filled from the stay.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.messageTemplate.save","x-rivier-cli":"bookings message template save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["pre_arrival","welcome","thanks","cancellation","checkin_info","review_request","payment_due"]},"locale":{"type":"string","enum":["en","de","es","fr","ja","ar","sv","dv"]},"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":6000}},"required":["propertyId","kind","locale","subject","body"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/message-templates/reset":{"post":{"operationId":"bookings.messageTemplate.reset","summary":"Go back to the built-in words of a guest message in one language.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.messageTemplate.reset","x-rivier-cli":"bookings message template reset","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["pre_arrival","welcome","thanks","cancellation","checkin_info","review_request","payment_due"]},"locale":{"type":"string","enum":["en","de","es","fr","ja","ar","sv","dv"]}},"required":["propertyId","kind","locale"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/nights":{"put":{"operationId":"bookings.night.override","summary":"Sell fewer rooms of a type on a night, or reopen it.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.night.override","x-rivier-cli":"bookings night override","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"roomTypeId":{"type":"string","format":"uuid"},"date":{"type":"string"},"sellable":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["roomTypeId","date","sellable"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/owner-statements":{"get":{"operationId":"bookings.ownerStatement.list","summary":"The owner statements of a property, newest period first.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.ownerStatement.list","x-rivier-cli":"bookings owner statement list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"statements":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["statements"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.ownerStatement.generate","summary":"Make the owner statement of a period from the stays that left in it: earnings, commission, deductions and what is owed to the owner. A draft until a person issues it.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.ownerStatement.generate","x-rivier-cli":"bookings owner statement generate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adjustments":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":120},"amountMinor":{"type":"integer","minimum":0,"maximum":1000000000000}},"required":["label","amountMinor"],"additionalProperties":false},"maxItems":40,"default":[]}},"required":["propertyId","from","to"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/owner-statements/{id}":{"get":{"operationId":"bookings.ownerStatement.get","summary":"One owner statement with its lines.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.ownerStatement.get","x-rivier-cli":"bookings owner statement get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/owner-statements/{id}/issue":{"post":{"operationId":"bookings.ownerStatement.issue","summary":"Issue a draft owner statement; from then on it never changes. A person does this.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.ownerStatement.issue","x-rivier-cli":"bookings owner statement issue","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/owner-terms":{"get":{"operationId":"bookings.ownerTerms.get","summary":"Who owns a managed property and the commission the manager keeps.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.ownerTerms.get","x-rivier-cli":"bookings owner terms get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.ownerTerms.set","summary":"Set the owner and commission of a managed property.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.ownerTerms.set","x-rivier-cli":"bookings owner terms set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"ownerName":{"type":"string","maxLength":160,"default":""},"ownerEmail":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","const":""}],"default":""},"commissionPercent":{"type":"number","minimum":0,"maximum":100}},"required":["propertyId","commissionPercent"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/payments-due":{"get":{"operationId":"bookings.payment.due","summary":"Instalments of the stays of a property that fall due in a window, with what of each is still unpaid.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"string"}},{"name":"to","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_payments_due","x-rivier-sdk":"bookings.payment.due","x-rivier-cli":"bookings payment due","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"due":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["due"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/pois":{"get":{"operationId":"bookings.poi.list","summary":"Nearby places and transport links of a property with distance and travel mode.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.poi.list","x-rivier-cli":"bookings poi list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"pois":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["pois"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.poi.create","summary":"Add a nearby place or transport link; the distance is worked out from the coordinates when left out.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_poi_create","x-rivier-sdk":"bookings.poi.create","x-rivier-cli":"bookings poi create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["poi","transport"],"default":"poi"},"category":{"type":"string","pattern":"^[a-z_]{2,40}$"},"name":{"type":"string","minLength":1,"maxLength":160},"lat":{"anyOf":[{"type":"number","minimum":-90,"maximum":90},{"type":"null"}]},"lng":{"anyOf":[{"type":"number","minimum":-180,"maximum":180},{"type":"null"}]},"distanceM":{"anyOf":[{"type":"integer","minimum":0,"maximum":40000000},{"type":"null"}]},"travelMode":{"anyOf":[{"type":"string","enum":["walk","bike","drive","transit"]},{"type":"null"}]},"travelMinutes":{"anyOf":[{"type":"integer","minimum":0,"maximum":10000},{"type":"null"}]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["propertyId","category","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/pois/{id}":{"patch":{"operationId":"bookings.poi.update","summary":"Change or archive a nearby place.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_poi_update","x-rivier-sdk":"bookings.poi.update","x-rivier-cli":"bookings poi update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["poi","transport"]},"category":{"type":"string","pattern":"^[a-z_]{2,40}$"},"name":{"type":"string","minLength":1,"maxLength":160},"lat":{"anyOf":[{"type":"number","minimum":-90,"maximum":90},{"type":"null"}]},"lng":{"anyOf":[{"type":"number","minimum":-180,"maximum":180},{"type":"null"}]},"distanceM":{"anyOf":[{"type":"integer","minimum":0,"maximum":40000000},{"type":"null"}]},"travelMode":{"anyOf":[{"type":"string","enum":["walk","bike","drive","transit"]},{"type":"null"}]},"travelMinutes":{"anyOf":[{"type":"integer","minimum":0,"maximum":10000},{"type":"null"}]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"position":{"type":"integer","minimum":0,"maximum":10000},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/promotions":{"get":{"operationId":"bookings.promotion.list","summary":"Promotions of a property: percent or amount off, booking and stay windows, minimum nights, with or without a code.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.promotion.list","x-rivier-cli":"bookings promotion list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"promotions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["promotions"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.promotion.create","summary":"Add a promotion. The best one that applies is taken off the nights; promotions do not stack.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_promotion_create","x-rivier-sdk":"bookings.promotion.create","x-rivier-cli":"bookings promotion create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"code":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{2,24}$"},{"type":"null"}]},"kind":{"type":"string","enum":["percent","amount"]},"value":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"bookFrom":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"bookTo":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"stayFrom":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"stayTo":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"minNights":{"anyOf":[{"type":"integer","minimum":1,"maximum":365},{"type":"null"}]},"roomTypeIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"ratePlanIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"default":[]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}}},"required":["propertyId","name","kind","value"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/promotions/{id}":{"patch":{"operationId":"bookings.promotion.update","summary":"Change or archive a promotion.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_promotion_update","x-rivier-sdk":"bookings.promotion.update","x-rivier-cli":"bookings promotion update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"code":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{2,24}$"},{"type":"null"}]},"value":{"type":"number","exclusiveMinimum":0,"maximum":1000000000},"bookFrom":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"bookTo":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"stayFrom":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"stayTo":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"minNights":{"anyOf":[{"type":"integer","minimum":1,"maximum":365},{"type":"null"}]},"roomTypeIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100},"ratePlanIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/properties":{"get":{"operationId":"bookings.property.list","summary":"Properties.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.property.list","x-rivier-cli":"bookings property list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"properties":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["properties"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.property.create","summary":"Add a property (it is also a location with its time zone).","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_property_create","x-rivier-sdk":"bookings.property.create","x-rivier-cli":"bookings property create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"timezone":{"type":"string"},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"address":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}},"checkInTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"15:00"},"checkOutTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"11:00"},"languages":{"type":"array","items":{"type":"string","minLength":2,"maxLength":12},"maxItems":30,"default":[]},"legalEntity":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}},"registrationNo":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"taxProfile":{"type":"object","properties":{"accommodationPercent":{"type":"number","minimum":0,"maximum":100,"default":0},"ancillaryPercent":{"type":"number","minimum":0,"maximum":100,"default":0},"inclusive":{"type":"boolean","default":true},"source":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":500},"verifiedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["url","verifiedOn"],"additionalProperties":false}},"additionalProperties":false,"default":{}},"slug":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","maxLength":60},"kind":{"type":"string","enum":["hotel","bed_and_breakfast","guesthouse","hostel","apartment_hotel","villa","campsite","rental","resort"],"default":"hotel"},"starRating":{"anyOf":[{"type":"number","minimum":0,"maximum":5,"multipleOf":0.5},{"type":"null"}]},"geo":{"anyOf":[{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},{"type":"null"}]},"geoPrecision":{"type":"string","enum":["exact","approximate"],"default":"exact"},"entrance":{"anyOf":[{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"note":{"type":"string","maxLength":300,"default":""}},"required":["lat","lng"],"additionalProperties":false},{"type":"null"}]},"contact":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"website":{"type":"string","format":"uri","maxLength":300},"reservationsEmail":{"type":"string","format":"email","maxLength":254},"emergencyPhone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"}},"additionalProperties":false,"default":{}},"registrations":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":60},"number":{"type":"string","minLength":1,"maxLength":80},"authority":{"type":"string","maxLength":120},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["kind","number"],"additionalProperties":false},"maxItems":20,"default":[]},"policies":{"type":"object","properties":{"children":{"type":"object","properties":{"allowed":{"type":"boolean","default":true},"freeUnderAge":{"anyOf":[{"type":"integer","minimum":0,"maximum":18},{"type":"null"}],"default":null},"extraBedFeeMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"pets":{"type":"object","properties":{"allowed":{"type":"string","enum":["no","on_request","yes"],"default":"no"},"feeMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"default":null},"feePer":{"anyOf":[{"type":"string","enum":["stay","night"]},{"type":"null"}],"default":null},"maxPets":{"anyOf":[{"type":"integer","minimum":1,"maximum":20},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"smoking":{"type":"object","properties":{"policy":{"type":"string","enum":["none","designated_areas","allowed"],"default":"none"}},"additionalProperties":false,"default":{}},"checkIn":{"type":"object","properties":{"method":{"type":"string","enum":["front_desk","self_code","key_box","host_meets","other"],"default":"front_desk"}},"additionalProperties":false,"default":{}},"payment":{"type":"object","properties":{"methods":{"type":"array","items":{"type":"string","enum":["card","cash","bank_transfer","invoice","mobile"]},"maxItems":5,"default":[]}},"additionalProperties":false,"default":{}},"houseRules":{"type":"object","properties":{"quietHours":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["from","to"],"additionalProperties":false},{"type":"null"}],"default":null},"partiesAllowed":{"type":"boolean","default":false},"minCheckInAge":{"anyOf":[{"type":"integer","minimum":0,"maximum":99},{"type":"null"}],"default":null},"lateArrivalUntil":{"anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}],"default":null},"rules":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"maxItems":40,"default":[]}},"additionalProperties":false,"default":{}},"cancellationPolicyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}}},"required":["name","timezone","currency"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/properties/{id}":{"get":{"operationId":"bookings.property.get","summary":"One property with its tax profile and check-in times.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.property.get","x-rivier-cli":"bookings property get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"bookings.property.update","summary":"Change a property's details, times or tax profile.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_property_update","x-rivier-sdk":"bookings.property.update","x-rivier-cli":"bookings property update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"address":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}},"checkInTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"15:00"},"checkOutTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$","default":"11:00"},"languages":{"type":"array","items":{"type":"string","minLength":2,"maxLength":12},"maxItems":30,"default":[]},"legalEntity":{"type":"object","additionalProperties":{"type":"string","maxLength":300},"default":{}},"registrationNo":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"taxProfile":{"type":"object","properties":{"accommodationPercent":{"type":"number","minimum":0,"maximum":100,"default":0},"ancillaryPercent":{"type":"number","minimum":0,"maximum":100,"default":0},"inclusive":{"type":"boolean","default":true},"source":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":500},"verifiedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["url","verifiedOn"],"additionalProperties":false}},"additionalProperties":false,"default":{}},"slug":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$","maxLength":60},"kind":{"type":"string","enum":["hotel","bed_and_breakfast","guesthouse","hostel","apartment_hotel","villa","campsite","rental","resort"],"default":"hotel"},"starRating":{"anyOf":[{"type":"number","minimum":0,"maximum":5,"multipleOf":0.5},{"type":"null"}]},"geo":{"anyOf":[{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},{"type":"null"}]},"geoPrecision":{"type":"string","enum":["exact","approximate"],"default":"exact"},"entrance":{"anyOf":[{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180},"note":{"type":"string","maxLength":300,"default":""}},"required":["lat","lng"],"additionalProperties":false},{"type":"null"}]},"contact":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"website":{"type":"string","format":"uri","maxLength":300},"reservationsEmail":{"type":"string","format":"email","maxLength":254},"emergencyPhone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"}},"additionalProperties":false,"default":{}},"registrations":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":60},"number":{"type":"string","minLength":1,"maxLength":80},"authority":{"type":"string","maxLength":120},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["kind","number"],"additionalProperties":false},"maxItems":20,"default":[]},"policies":{"type":"object","properties":{"children":{"type":"object","properties":{"allowed":{"type":"boolean","default":true},"freeUnderAge":{"anyOf":[{"type":"integer","minimum":0,"maximum":18},{"type":"null"}],"default":null},"extraBedFeeMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"pets":{"type":"object","properties":{"allowed":{"type":"string","enum":["no","on_request","yes"],"default":"no"},"feeMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"default":null},"feePer":{"anyOf":[{"type":"string","enum":["stay","night"]},{"type":"null"}],"default":null},"maxPets":{"anyOf":[{"type":"integer","minimum":1,"maximum":20},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"smoking":{"type":"object","properties":{"policy":{"type":"string","enum":["none","designated_areas","allowed"],"default":"none"}},"additionalProperties":false,"default":{}},"checkIn":{"type":"object","properties":{"method":{"type":"string","enum":["front_desk","self_code","key_box","host_meets","other"],"default":"front_desk"}},"additionalProperties":false,"default":{}},"payment":{"type":"object","properties":{"methods":{"type":"array","items":{"type":"string","enum":["card","cash","bank_transfer","invoice","mobile"]},"maxItems":5,"default":[]}},"additionalProperties":false,"default":{}},"houseRules":{"type":"object","properties":{"quietHours":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"to":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}},"required":["from","to"],"additionalProperties":false},{"type":"null"}],"default":null},"partiesAllowed":{"type":"boolean","default":false},"minCheckInAge":{"anyOf":[{"type":"integer","minimum":0,"maximum":99},{"type":"null"}],"default":null},"lateArrivalUntil":{"anyOf":[{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},{"type":"null"}],"default":null},"rules":{"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"maxItems":40,"default":[]}},"additionalProperties":false,"default":{}},"cancellationPolicyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"default":null}},"additionalProperties":false,"default":{}},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/properties/{id}/geocode":{"post":{"operationId":"bookings.property.geocode","summary":"Look up the coordinates of the property's address through the map provider; the person confirms the pin.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_property_geocode","x-rivier-sdk":"bookings.property.geocode","x-rivier-cli":"bookings property geocode","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/properties/{id}/map":{"get":{"operationId":"bookings.property.map","summary":"The map of a property: a drawn static map, and the interactive map's script and token once a map service is connected.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"theme","in":"query","required":false,"schema":{"type":"string","enum":["light","dark"]}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.property.map","x-rivier-cli":"bookings property map","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/quotes":{"post":{"operationId":"bookings.stay.quote","summary":"A signed quote for a stay: nightly prices, VAT, city tax, deposit and cancellation terms, check-in and check-out in local time. Valid fifteen minutes; nothing is held.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_quote","x-rivier-graphql":"Query.lodgingQuote","x-rivier-sdk":"bookings.stay.quote","x-rivier-cli":"bookings stay quote","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"infants":{"type":"integer","minimum":0,"maximum":10,"default":0},"promoCode":{"type":"string","maxLength":24},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]}},"required":["propertyId","roomTypeId","ratePlanId","arrival","departure"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/rate-plans":{"get":{"operationId":"bookings.ratePlan.list","summary":"Rate plans of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.ratePlan.list","x-rivier-cli":"bookings rate plan list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ratePlans":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["ratePlans"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.ratePlan.create","summary":"Add a rate plan, optionally derived from another.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_rate_plan_create","x-rivier-sdk":"bookings.ratePlan.create","x-rivier-cli":"bookings rate plan create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"code":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,24}$"},"name":{"type":"string","minLength":1,"maxLength":120},"parentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"adjustment":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["amount","percent"]},"value":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"required":["kind","value"],"additionalProperties":false},{"type":"null"}]},"mealPlan":{"type":"string","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"default":"room_only"},"cancellationPolicyId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"deposit":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","const":"none"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"percent"},"value":{"type":"number","minimum":1,"maximum":100}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"fixed"},"amountMinor":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["kind","amountMinor"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"full"}},"required":["kind"],"additionalProperties":false}],"default":{"kind":"none"}},"guarantee":{"type":"string","enum":["none","deposit","card","prepaid"],"default":"none"},"channels":{"type":"array","items":{"type":"string","minLength":1,"maxLength":30},"minItems":1,"maxItems":10,"default":["direct"]},"kind":{"type":"string","enum":["standard","non_refundable","package","long_stay"],"default":"standard"},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"includedExtras":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20,"default":[]},"paymentSchedule":{"type":"array","items":{"type":"object","properties":{"when":{"type":"string","enum":["booking","days_before_arrival","arrival"]},"days":{"type":"integer","minimum":1,"maximum":365},"percent":{"type":"number","minimum":1,"maximum":100}},"required":["when","percent"],"additionalProperties":false},"maxItems":6,"default":[]},"minNights":{"anyOf":[{"type":"integer","minimum":1,"maximum":365},{"type":"null"}]},"maxNights":{"anyOf":[{"type":"integer","minimum":1,"maximum":365},{"type":"null"}]}},"required":["propertyId","code","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/rate-prices":{"get":{"operationId":"bookings.ratePrice.list","summary":"Prices set for a rate plan, optionally for one room type.","tags":["bookings"],"parameters":[{"name":"ratePlanId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"roomTypeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.ratePrice.list","x-rivier-cli":"bookings rate price list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ratePrices":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["ratePrices"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.ratePrice.create","summary":"Set nightly prices for a rate plan and room type over a date range.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_rate_price_set","x-rivier-sdk":"bookings.ratePrice.create","x-rivier-cli":"bookings rate price create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ratePlanId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"seasonId":{"type":"string","format":"uuid"},"weekdays":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7},"minItems":1,"maxItems":7},"baseMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"extraAdultMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0},"childMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0},"occupancyMinor":{"type":"object","additionalProperties":{"type":"integer","minimum":0,"maximum":9007199254740991},"propertyNames":{"pattern":"^\\d{1,2}$"}}},"required":["ratePlanId","roomTypeId","baseMinor"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/rate-prices/{id}":{"delete":{"operationId":"bookings.ratePrice.delete","summary":"Remove a price row.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_rate_price_remove","x-rivier-sdk":"bookings.ratePrice.delete","x-rivier-cli":"bookings rate price delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reports/performance":{"get":{"operationId":"bookings.report.performance","summary":"How a property did over up to 92 days: rooms sold and available, occupancy, average daily rate and revenue per available room, by day, room type and where the booking came from.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_performance","x-rivier-graphql":"Query.lodgingPerformance","x-rivier-sdk":"bookings.report.performance","x-rivier-cli":"bookings report performance","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reports/price-suggestions":{"get":{"operationId":"bookings.report.priceSuggestions","summary":"Nights in the coming weeks where the price could move, from how full each room type is, each with the reason. Advice only: a person sets the price.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_price_suggestions","x-rivier-graphql":"Query.lodgingPriceSuggestions","x-rivier-sdk":"bookings.report.priceSuggestions","x-rivier-cli":"bookings report price suggestions","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"suggestions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["suggestions"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations":{"get":{"operationId":"bookings.reservation.list","summary":"Reservations by state, dates and guest.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"state","in":"query","required":false,"schema":{"allOf":[{"type":"string","maxLength":200},{"type":"array","items":{"type":"string","enum":["held","requested","pending_payment","confirmed","checked_in","completed","cancelled","no_show"]},"maxItems":8}]}},{"name":"from","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_reservations_list","x-rivier-graphql":"Query.reservations","x-rivier-sdk":"bookings.reservation.list","x-rivier-cli":"bookings reservation list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.reservation.create","summary":"Reserve a stay from a hold, a quote or the live price. Idempotent on the key; a dry run returns the reservation it would make.","tags":["bookings"],"parameters":[{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_reserve","x-rivier-graphql":"Mutation.createReservation","x-rivier-sdk":"bookings.reservation.create","x-rivier-cli":"bookings reservation create","x-rivier-events":["bookings.reservation.created","bookings.reservation.confirmed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"infants":{"type":"integer","minimum":0,"maximum":10,"default":0},"promoCode":{"type":"string","maxLength":24},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]},"quote":{"type":"string","maxLength":4000},"holdId":{"type":"string","format":"uuid"},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"locale":{"type":"string","maxLength":20},"company":{"type":"string","maxLength":160},"vatId":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false},"consent":{"type":"object","properties":{"email":{"type":"boolean"},"sms":{"type":"boolean"},"whatsapp":{"type":"boolean"}},"additionalProperties":false,"default":{}},"specialRequests":{"type":"string","maxLength":2000,"default":""},"channel":{"type":"string","enum":["owner","widget","api","mcp","phone","chat","import"],"default":"api"},"source":{"type":"string","maxLength":40,"default":"direct"},"externalId":{"type":"string","maxLength":80},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["propertyId","roomTypeId","ratePlanId","arrival","departure","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}":{"get":{"operationId":"bookings.reservation.get","summary":"One reservation with the terms it was sold under.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_reservation_get","x-rivier-graphql":"Query.reservation","x-rivier-sdk":"bookings.reservation.get","x-rivier-cli":"bookings reservation get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/cancel":{"post":{"operationId":"bookings.reservation.cancel","summary":"Cancel a reservation. States what the cancellation policy makes of it without moving money; a dry run changes nothing.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"dryRun","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_cancel","x-rivier-graphql":"Mutation.cancelReservation","x-rivier-sdk":"bookings.reservation.cancel","x-rivier-cli":"bookings reservation cancel","x-rivier-events":["bookings.reservation.cancelled"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/charges":{"post":{"operationId":"bookings.folio.postCharge","summary":"Add a service, fee or discount to the folio. Above the property's cap a person with approval rights is needed.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_charge_post","x-rivier-graphql":"Mutation.postFolioCharge","x-rivier-sdk":"bookings.folio.postCharge","x-rivier-cli":"bookings folio post charge","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["service","fee","discount"]},"description":{"type":"string","minLength":1,"maxLength":160},"quantity":{"type":"integer","minimum":1,"maximum":1000,"default":1},"unitAmountMinor":{"type":"integer","minimum":-1000000000,"maximum":1000000000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["category","description","unitAmountMinor","idempotencyKey"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/check-in":{"post":{"operationId":"bookings.reservation.checkIn","summary":"Check a guest in: room assigned and ready, guarantee in place; a person may override a gate with a reason.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_checkin","x-rivier-graphql":"Mutation.checkIn","x-rivier-sdk":"bookings.reservation.checkIn","x-rivier-cli":"bookings reservation check in","x-rivier-events":["bookings.reservation.checkedIn"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"override":{"type":"string","maxLength":300},"unitId":{"type":"string","format":"uuid"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/check-out":{"post":{"operationId":"bookings.reservation.checkOut","summary":"Check a guest out: the folio must balance unless a person accepts it, closes into an invoice, and the room is marked dirty.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_checkout","x-rivier-graphql":"Mutation.checkOut","x-rivier-sdk":"bookings.reservation.checkOut","x-rivier-cli":"bookings reservation check out","x-rivier-events":["bookings.reservation.checkedOut"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"acceptBalance":{"type":"string","maxLength":300}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/folio":{"get":{"operationId":"bookings.folio.get","summary":"The folio of a stay: charges, payments and balance.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_folio_get","x-rivier-graphql":"Query.folio","x-rivier-sdk":"bookings.folio.get","x-rivier-cli":"bookings folio get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/instalment-link":{"post":{"operationId":"bookings.payment.requestInstalment","summary":"A payment link for the next unpaid instalment of a confirmed stay, to send to the guest.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_instalment_link","x-rivier-graphql":"Mutation.requestInstalment","x-rivier-sdk":"bookings.payment.requestInstalment","x-rivier-cli":"bookings payment request instalment","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/no-show":{"post":{"operationId":"bookings.reservation.noShow","summary":"Mark a no-show after the arrival date; records what it costs, charges nothing.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.reservation.noShow","x-rivier-cli":"bookings reservation no show","x-rivier-events":["bookings.reservation.noShow"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/payments":{"post":{"operationId":"bookings.folio.recordPayment","summary":"Record money taken at the desk or returned against the folio. A person with approval rights.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.folio.recordPayment","x-rivier-cli":"bookings folio record payment","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["payment","refund"],"default":"payment"},"amountMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"ref":{"type":"string","minLength":1,"maxLength":120},"method":{"type":"string","maxLength":40,"default":""}},"required":["amountMinor","ref"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/post-nights":{"post":{"operationId":"bookings.folio.postNights","summary":"Post the room charge of each night up to a date (the night audit does this once it exists).","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.folio.postNights","x-rivier-cli":"bookings folio post nights","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"through":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/reservations/{id}/room":{"post":{"operationId":"bookings.reservation.assignRoom","summary":"Give a stay a room (the first free of its type, or a named one) or move it; the room's diary refuses a clash.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_room_assign","x-rivier-graphql":"Mutation.assignRoom","x-rivier-sdk":"bookings.reservation.assignRoom","x-rivier-cli":"bookings reservation assign room","x-rivier-events":["bookings.reservation.roomAssigned"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unitId":{"type":"string","format":"uuid"},"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/restrictions":{"get":{"operationId":"bookings.restriction.list","summary":"Restrictions (stop sell, closed to arrival or departure, minimum and maximum stay, advance).","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":false,"schema":{"type":"string"}},{"name":"to","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.restriction.list","x-rivier-cli":"bookings restriction list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"restrictions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["restrictions"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.restriction.create","summary":"Add a restriction. The same rows close the direct sale.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_restriction_set","x-rivier-graphql":"Mutation.setLodgingRestriction","x-rivier-sdk":"bookings.restriction.create","x-rivier-cli":"bookings restriction create","x-rivier-events":["bookings.restriction.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"weekdays":{"type":"array","items":{"type":"integer","minimum":1,"maximum":7},"minItems":1,"maxItems":7},"type":{"type":"string","enum":["closed_to_arrival","closed_to_departure","stop_sell","min_stay","max_stay","min_advance","max_advance"]},"value":{"type":"integer","minimum":0,"maximum":3650}},"required":["propertyId","from","to","type"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/restrictions/{id}":{"delete":{"operationId":"bookings.restriction.delete","summary":"Remove a restriction.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.restriction.delete","x-rivier-cli":"bookings restriction delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean","const":true}},"required":["deleted"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/review-summary":{"get":{"operationId":"bookings.reviews.summary","summary":"How many published guest reviews a property has and their average (the reviews themselves are kept under Customers).","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.reviews.summary","x-rivier-cli":"bookings reviews summary","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"rating":{"anyOf":[{"type":"object","properties":{"count":{"type":"number"},"average":{"type":"number"}},"required":["count","average"],"additionalProperties":false},{"type":"null"}]}},"required":["rating"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/room-types":{"get":{"operationId":"bookings.roomType.list","summary":"Room types of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.roomType.list","x-rivier-cli":"bookings room type list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"roomTypes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["roomTypes"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.roomType.create","summary":"Add a room type (a sellable product with occupancy and beds).","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_room_type_create","x-rivier-sdk":"bookings.roomType.create","x-rivier-cli":"bookings room type create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"code":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,24}$"},"description":{"type":"string","maxLength":4000,"default":""},"maxAdults":{"type":"integer","minimum":1,"maximum":20,"default":2},"maxChildren":{"type":"integer","minimum":0,"maximum":20,"default":0},"maxInfants":{"type":"integer","minimum":0,"maximum":20,"default":0},"prepNights":{"type":"integer","minimum":0,"maximum":7,"default":0},"baseAdults":{"type":"integer","minimum":1,"maximum":20,"default":2},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","maxLength":40},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":10,"default":[]},"sizeM2":{"anyOf":[{"type":"integer","minimum":1,"maximum":5000},{"type":"null"}]},"amenities":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":60},"sleeping":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["bedroom","living_room","studio","other"],"default":"bedroom"},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["single","double","queen","king","twin","sofa_bed","bunk","futon","crib","extra_bed"]},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":12}},"required":["name","beds"],"additionalProperties":false},"maxItems":20},"bedOptions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["single","double","queen","king","twin","sofa_bed","bunk","futon","crib","extra_bed"]},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":12}},"required":["label","beds"],"additionalProperties":false},"maxItems":6,"default":[]},"bedrooms":{"anyOf":[{"type":"integer","minimum":0,"maximum":30},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"number","minimum":0,"maximum":30,"multipleOf":0.5},{"type":"null"}]},"smoking":{"type":"string","enum":["non_smoking","smoking","either"],"default":"non_smoking"},"views":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":10,"default":[]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"overbookAllowance":{"type":"integer","minimum":0,"maximum":100,"default":0},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0},"published":{"type":"boolean","default":false}},"required":["propertyId","name","code"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/room-types/{id}":{"patch":{"operationId":"bookings.roomType.update","summary":"Change a room type.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_room_type_update","x-rivier-sdk":"bookings.roomType.update","x-rivier-cli":"bookings room type update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"code":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,24}$"},"description":{"type":"string","maxLength":4000,"default":""},"maxAdults":{"type":"integer","minimum":1,"maximum":20,"default":2},"maxChildren":{"type":"integer","minimum":0,"maximum":20,"default":0},"maxInfants":{"type":"integer","minimum":0,"maximum":20,"default":0},"prepNights":{"type":"integer","minimum":0,"maximum":7,"default":0},"baseAdults":{"type":"integer","minimum":1,"maximum":20,"default":2},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","maxLength":40},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":10,"default":[]},"sizeM2":{"anyOf":[{"type":"integer","minimum":1,"maximum":5000},{"type":"null"}]},"amenities":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":60},"sleeping":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["bedroom","living_room","studio","other"],"default":"bedroom"},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["single","double","queen","king","twin","sofa_bed","bunk","futon","crib","extra_bed"]},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":12}},"required":["name","beds"],"additionalProperties":false},"maxItems":20},"bedOptions":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["single","double","queen","king","twin","sofa_bed","bunk","futon","crib","extra_bed"]},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":12}},"required":["label","beds"],"additionalProperties":false},"maxItems":6,"default":[]},"bedrooms":{"anyOf":[{"type":"integer","minimum":0,"maximum":30},{"type":"null"}]},"bathrooms":{"anyOf":[{"type":"number","minimum":0,"maximum":30,"multipleOf":0.5},{"type":"null"}]},"smoking":{"type":"string","enum":["non_smoking","smoking","either"],"default":"non_smoking"},"views":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":10,"default":[]},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"overbookAllowance":{"type":"integer","minimum":0,"maximum":100,"default":0},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0},"published":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"bookings.roomType.get","summary":"One room type with its sleeping arrangements, views, languages and the amenities it has after inheritance.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.roomType.get","x-rivier-cli":"bookings room type get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/scheduled-messages":{"get":{"operationId":"bookings.scheduledMessage.list","summary":"The messages scheduled for one stay, with what was sent.","tags":["bookings"],"parameters":[{"name":"bookingId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.scheduledMessage.list","x-rivier-cli":"bookings scheduled message list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["messages"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.scheduledMessage.create","summary":"Schedule one message for one stay at a date and time; it can be changed or cancelled until it is sent.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.scheduledMessage.create","x-rivier-cli":"bookings scheduled message create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bookingId":{"type":"string","format":"uuid"},"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":6000},"sendAt":{"type":"string","format":"date-time"}},"required":["bookingId","subject","body","sendAt"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/scheduled-messages/{id}":{"patch":{"operationId":"bookings.scheduledMessage.update","summary":"Change a scheduled message that has not been sent.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.scheduledMessage.update","x-rivier-cli":"bookings scheduled message update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":6000},"sendAt":{"type":"string","format":"date-time"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/scheduled-messages/{id}/cancel":{"post":{"operationId":"bookings.scheduledMessage.cancel","summary":"Cancel a scheduled message that has not been sent.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.scheduledMessage.cancel","x-rivier-cli":"bookings scheduled message cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/seasons":{"get":{"operationId":"bookings.season.list","summary":"Named date ranges (high season, holidays) that prices can be set for at once.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.season.list","x-rivier-cli":"bookings season list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"seasons":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["seasons"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.season.create","summary":"Add a season: a name and its date ranges.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_season_create","x-rivier-sdk":"bookings.season.create","x-rivier-cli":"bookings season create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":80},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["from","to"],"additionalProperties":false},"minItems":1,"maxItems":40},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["propertyId","name","ranges"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/seasons/{id}":{"patch":{"operationId":"bookings.season.update","summary":"Change or archive a season.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_season_update","x-rivier-sdk":"bookings.season.update","x-rivier-cli":"bookings season update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"ranges":{"type":"array","items":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["from","to"],"additionalProperties":false},"minItems":1,"maxItems":40},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/settings":{"get":{"operationId":"bookings.lodgingSettings.get","summary":"The lodging settings.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.lodgingSettings.get","x-rivier-cli":"bookings lodging settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.lodgingSettings.set","summary":"Replace the lodging settings.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.lodgingSettings.set","x-rivier-cli":"bookings lodging settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"settings":{"type":"object","additionalProperties":{}}},"required":["settings"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/taxes":{"get":{"operationId":"bookings.tax.list","summary":"Tourist and city tax rules, with their source and the date they were checked.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.tax.list","x-rivier-cli":"bookings tax list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"taxes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["taxes"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.tax.create","summary":"Add a tourist or city tax rule with its source.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-sdk":"bookings.tax.create","x-rivier-cli":"bookings tax create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"basis":{"type":"string","enum":["per_person_night","percent_of_room"]},"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"percent":{"type":"number","minimum":0,"maximum":100},"maxNights":{"type":"integer","minimum":1,"maximum":365},"maxMinorPerPerson":{"type":"integer","minimum":0,"maximum":9007199254740991},"childrenExempt":{"type":"boolean","default":true},"validFrom":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"validTo":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"sourceUrl":{"type":"string","format":"uri","maxLength":500},"verifiedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["propertyId","name","basis","sourceUrl","verifiedOn"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/text/{kind}/{id}":{"get":{"operationId":"bookings.text.get","summary":"The text of a property, room type, room, area, rate plan, extra or place in one language: what is live, the working draft and the history of versions.","tags":["bookings"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["property","room_type","unit","area","rate_plan","extra","poi"]}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-mcp":"rivier_lodging_text_get","x-rivier-sdk":"bookings.text.get","x-rivier-cli":"bookings text get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"bookings.text.saveDraft","summary":"Write a draft of the text (short fields and the description as blocks). An agent's draft says which model wrote it; a person reviews and publishes.","tags":["bookings"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["property","room_type","unit","area","rate_plan","extra","poi"]}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_text_draft_save","x-rivier-sdk":"bookings.text.saveDraft","x-rivier-cli":"bookings text save draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"doc":{"type":"object","properties":{"fields":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"},"default":{}},"blocks":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"paragraph"},"children":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":20000},"bold":{"type":"boolean"},"italic":{"type":"boolean"},"code":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"note":{"type":"string","maxLength":1000}},"required":["text"],"additionalProperties":false},"maxItems":500}},"required":["type","children"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"heading"},"level":{"type":"integer","minimum":1,"maximum":6},"children":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":20000},"bold":{"type":"boolean"},"italic":{"type":"boolean"},"code":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"note":{"type":"string","maxLength":1000}},"required":["text"],"additionalProperties":false},"maxItems":500}},"required":["type","level","children"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"list"},"ordered":{"type":"boolean"},"items":{"type":"array","items":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":20000},"bold":{"type":"boolean"},"italic":{"type":"boolean"},"code":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"note":{"type":"string","maxLength":1000}},"required":["text"],"additionalProperties":false},"maxItems":500},"maxItems":500}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"quote"},"children":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":20000},"bold":{"type":"boolean"},"italic":{"type":"boolean"},"code":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"note":{"type":"string","maxLength":1000}},"required":["text"],"additionalProperties":false},"maxItems":500},"cite":{"type":"string","maxLength":300}},"required":["type","children"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"code"},"code":{"type":"string","maxLength":100000},"language":{"type":"string","maxLength":30}},"required":["type","code"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"image"},"assetId":{"type":"string","format":"uuid"},"alt":{"type":"string","maxLength":500},"caption":{"type":"string","maxLength":500}},"required":["type","assetId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"callout"},"tone":{"type":"string","enum":["info","warning","success"]},"children":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":20000},"bold":{"type":"boolean"},"italic":{"type":"boolean"},"code":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"note":{"type":"string","maxLength":1000}},"required":["text"],"additionalProperties":false},"maxItems":500}},"required":["type","children"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"embed"},"url":{"type":"string","format":"uri","maxLength":2000}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"entry"},"entryId":{"type":"string","format":"uuid"}},"required":["type","entryId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"divider"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"table"},"header":{"type":"boolean"},"rows":{"type":"array","items":{"type":"array","items":{"type":"string","maxLength":2000},"minItems":1,"maxItems":30},"minItems":1,"maxItems":200}},"required":["type","rows"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"gallery"},"items":{"type":"array","items":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"caption":{"type":"string","maxLength":300},"alt":{"type":"string","maxLength":300}},"required":["assetId"],"additionalProperties":false},"minItems":1,"maxItems":60}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"button"},"label":{"type":"string","minLength":1,"maxLength":80},"url":{"type":"string","format":"uri","maxLength":2000},"style":{"type":"string","enum":["primary","secondary"]}},"required":["type","label","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"bookmark"},"url":{"type":"string","format":"uri","maxLength":2000},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":400}},"required":["type","url","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"toggle"},"summary":{"type":"string","minLength":1,"maxLength":200},"children":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":20000},"bold":{"type":"boolean"},"italic":{"type":"boolean"},"code":{"type":"boolean"},"href":{"type":"string","maxLength":2000},"note":{"type":"string","maxLength":1000}},"required":["text"],"additionalProperties":false},"maxItems":500}},"required":["type","summary","children"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"video"},"assetId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":120},"posterAssetId":{"type":"string","format":"uuid"},"caption":{"type":"string","maxLength":300},"captions":{"type":"array","items":{"type":"object","properties":{"lang":{"type":"string","minLength":2,"maxLength":12},"label":{"type":"string","minLength":1,"maxLength":40},"assetId":{"type":"string","format":"uuid"}},"required":["lang","label","assetId"],"additionalProperties":false},"maxItems":6}},"required":["type","assetId","title"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"audio"},"assetId":{"type":"string","format":"uuid"},"caption":{"type":"string","maxLength":500}},"required":["type","assetId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"product"},"productId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["product","stay","service"]}},"required":["type","productId"],"additionalProperties":false}]},"maxItems":2000}},"additionalProperties":false},"reason":{"type":"string","maxLength":300,"default":""},"model":{"type":"string","maxLength":120}},"required":["doc"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.text.act","summary":"Move a version of the text on: send it for review, ask for changes, approve, publish now, schedule for a time, or restore an earlier version as a new draft. Approving and publishing are a person's.","tags":["bookings"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["property","room_type","unit","area","rate_plan","extra","poi"]}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.text.act","x-rivier-cli":"bookings text act","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"action":{"type":"string","const":"submit"},"version":{"type":"integer","minimum":1}},"required":["action","version"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"request_changes"},"version":{"type":"integer","minimum":1},"reason":{"type":"string","maxLength":300,"default":""}},"required":["action","version"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"approve"},"version":{"type":"integer","minimum":1}},"required":["action","version"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"publish"},"version":{"type":"integer","minimum":1}},"required":["action","version"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"schedule"},"version":{"type":"integer","minimum":1},"at":{"type":"string","format":"date-time"}},"required":["action","version","at"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","const":"restore"},"version":{"type":"integer","minimum":1}},"required":["action","version"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/text/{kind}/{id}/suggest":{"post":{"operationId":"bookings.text.suggest","summary":"Write a first draft of the words and list the amenities the photos of a property, room type or room show. The draft says an AI wrote it and waits for a person; nothing is published or ticked.","tags":["bookings"],"parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","enum":["property","room_type","unit"]}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:write","x-rivier-mcp":"rivier_lodging_text_suggest","x-rivier-sdk":"bookings.text.suggest","x-rivier-cli":"bookings text suggest","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/unit-state/{id}":{"put":{"operationId":"bookings.unit.setState","summary":"Set a room clean, dirty, inspected or out of order. Out of order and inspected are a person's call.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:write","x-rivier-sdk":"bookings.unit.setState","x-rivier-cli":"bookings unit set state","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"type":"string","enum":["clean","dirty","inspected","out_of_order"]}},"required":["state"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/units":{"get":{"operationId":"bookings.unit.list","summary":"Rooms and units with their housekeeping state.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"roomTypeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.unit.list","x-rivier-cli":"bookings unit list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"units":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["units"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"bookings.unit.create","summary":"Add a room.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_unit_create","x-rivier-sdk":"bookings.unit.create","x-rivier-cli":"bookings unit create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"roomTypeId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":60},"floor":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"areaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"notes":{"type":"string","maxLength":2000,"default":""},"overrides":{"type":"object","properties":{"sizeM2":{"type":"integer","minimum":1,"maximum":5000},"bedrooms":{"type":"integer","minimum":0,"maximum":30},"bathrooms":{"type":"number","minimum":0,"maximum":30},"smoking":{"type":"string","enum":["non_smoking","smoking","either"]},"views":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":10},"sleeping":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["bedroom","living_room","studio","other"],"default":"bedroom"},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["single","double","queen","king","twin","sofa_bed","bunk","futon","crib","extra_bed"]},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":12}},"required":["name","beds"],"additionalProperties":false},"maxItems":20}},"additionalProperties":false,"default":{}},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}}},"required":["roomTypeId","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lodging/units/{id}":{"patch":{"operationId":"bookings.unit.update","summary":"Rename a room, move it to a floor or area, change its notes and what it changes about its room type, or archive it.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:admin","x-rivier-mcp":"rivier_lodging_unit_update","x-rivier-sdk":"bookings.unit.update","x-rivier-cli":"bookings unit update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"floor":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"areaId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"notes":{"type":"string","maxLength":2000,"default":""},"overrides":{"type":"object","properties":{"sizeM2":{"type":"integer","minimum":1,"maximum":5000},"bedrooms":{"type":"integer","minimum":0,"maximum":30},"bathrooms":{"type":"number","minimum":0,"maximum":30},"smoking":{"type":"string","enum":["non_smoking","smoking","either"]},"views":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":10},"sleeping":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"kind":{"type":"string","enum":["bedroom","living_room","studio","other"],"default":"bedroom"},"beds":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["single","double","queen","king","twin","sofa_bed","bunk","futon","crib","extra_bed"]},"count":{"type":"integer","minimum":1,"maximum":10}},"required":["type","count"],"additionalProperties":false},"maxItems":12}},"required":["name","beds"],"additionalProperties":false},"maxItems":20}},"additionalProperties":false,"default":{}},"content":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":8000},"propertyNames":{"pattern":"^[A-Za-z]{1,32}$"}},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"default":{}},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lookup/numbers":{"post":{"operationId":"voice.lookupNumber.create","summary":"Look a number up: validity and country are free; line type, carrier, caller name, reachability, SIM swap and pumping risk ask the carrier and use the plan's lookups allowance. Recent answers are reused (cached: true) and cost nothing.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_lookup_number","x-rivier-graphql":"Mutation.voiceLookupNumberCreate","x-rivier-sdk":"lookup.number","x-rivier-cli":"lookup number","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","minLength":3,"maxLength":40,"description":"A phone number in E.164, or national with countryCode"},"countryCode":{"type":"string","pattern":"^[A-Za-z]{2}$"},"fields":{"type":"array","items":{"type":"string","enum":["validation","line_type_intelligence","caller_name","line_status","sim_swap","call_forwarding","sms_pumping_risk"]},"maxItems":8,"description":"What to find out. validation is free; the rest asks the carrier and uses the lookups allowance"},"fresh":{"type":"boolean","description":"Ask the carrier again instead of reusing a recent answer"}},"required":["number"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"voice.lookupNumber.list","summary":"Lookups already made, newest first; filter by number.","tags":["voice"],"parameters":[{"name":"number","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"before","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceLookupNumberList","x-rivier-sdk":"lookup.list","x-rivier-cli":"lookup list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/lookup/validate":{"get":{"operationId":"voice.lookupNumber.validate","summary":"Check the format of a phone number without a network call: valid or not, why, its country, a readable form, and whether its shape says mobile, toll-free or premium-rate.","tags":["voice"],"parameters":[{"name":"number","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":40}},{"name":"countryCode","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_lookup_validate","x-rivier-graphql":"Query.voiceLookupNumberValidate","x-rivier-sdk":"lookup.validate","x-rivier-cli":"lookup validate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty":{"get":{"operationId":"contacts.loyalty.get","summary":"The loyalty programme: whether it runs, how points are earned, the levels, the rewards on offer, and how many customers hold a card.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-mcp":"rivier_loyalty_get","x-rivier-graphql":"Query.contactsLoyaltyGet","x-rivier-sdk":"contacts.loyalty.get","x-rivier-cli":"contacts loyalty get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"contacts.loyalty.set","summary":"Set the programme up or change it: its name, what a point is called, how points are earned, levels, when points lapse, the terms, on or off.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.loyalty.set","x-rivier-cli":"contacts loyalty set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["off","on"]},"name":{"type":"string","minLength":1,"maxLength":80},"pointName":{"type":"string","minLength":1,"maxLength":24},"rules":{"type":"object","properties":{"spend":{"anyOf":[{"type":"object","properties":{"points":{"type":"integer","minimum":1,"maximum":1000},"perMinor":{"type":"integer","minimum":1,"maximum":100000000},"currency":{"type":"string","pattern":"^[a-z]{3}$"}},"required":["points","perMinor","currency"],"additionalProperties":false},{"type":"null"}],"default":null},"perOrder":{"type":"integer","minimum":0,"maximum":1000,"default":0},"perVisit":{"type":"integer","minimum":0,"maximum":1000,"default":0},"onJoin":{"type":"integer","minimum":0,"maximum":100000,"default":0},"referral":{"type":"object","properties":{"referrer":{"type":"integer","minimum":0,"maximum":100000},"friend":{"type":"integer","minimum":0,"maximum":100000}},"required":["referrer","friend"],"additionalProperties":false,"default":{"referrer":0,"friend":0}},"expiryMonths":{"anyOf":[{"type":"integer","minimum":1,"maximum":60},{"type":"null"}],"default":null},"tiers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"fromPoints":{"type":"integer","minimum":1,"maximum":10000000},"multiplierBp":{"type":"integer","minimum":10000,"maximum":50000,"default":10000}},"required":["name","fromPoints"],"additionalProperties":false},"maxItems":5,"default":[]},"staffLimit":{"type":"integer","minimum":0,"maximum":100000,"default":500}},"additionalProperties":false},"terms":{"type":"string","maxLength":4000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"program":{"type":"object","properties":{},"additionalProperties":true}},"required":["program"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/gifts/use":{"post":{"operationId":"contacts.loyalty.useGift","summary":"Mark a gift as handed over, by its code.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.loyalty.useGift","x-rivier-cli":"contacts loyalty use gift","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","pattern":"^[A-Za-z0-9-]{6,40}$"}},"required":["code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/members":{"get":{"operationId":"contacts.loyalty.listMembers","summary":"Customers who hold a card, with their points and level; search by name, address or card code.","tags":["contacts"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}}],"x-rivier-scope":"contacts:read","x-rivier-mcp":"rivier_loyalty_list_members","x-rivier-graphql":"Query.contactsLoyaltyListMembers","x-rivier-sdk":"contacts.loyalty.listMembers","x-rivier-cli":"contacts loyalty list members","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}},"total":{"type":"number"}},"required":["members","total"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.loyalty.join","summary":"Open a card for a customer who asked for one.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.loyalty.join","x-rivier-cli":"contacts loyalty join","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contactId":{"type":"string","format":"uuid"},"email":{"type":"string","format":"email","maxLength":254},"name":{"type":"string","maxLength":200},"referredBy":{"type":"string","pattern":"^[A-Z0-9]{6,12}$"}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/members/{contactId}":{"get":{"operationId":"contacts.loyalty.getMember","summary":"One customer's card: points, level, what they earned and spent, and the rewards they took.","tags":["contacts"],"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-mcp":"rivier_loyalty_get_member","x-rivier-graphql":"Query.contactsLoyaltyGetMember","x-rivier-sdk":"contacts.loyalty.getMember","x-rivier-cli":"contacts loyalty get member","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/members/{contactId}/adjust":{"post":{"operationId":"contacts.loyalty.adjust","summary":"Add or take points by hand, with the reason written down. Above the staff limit it needs a manager.","tags":["contacts"],"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.loyalty.adjust","x-rivier-cli":"contacts loyalty adjust","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"delta":{"type":"integer","minimum":-10000000,"maximum":10000000},"note":{"type":"string","minLength":3,"maxLength":300}},"required":["delta","note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/members/{contactId}/leave":{"post":{"operationId":"contacts.loyalty.leave","summary":"End a customer's card. It stops earning; joining again brings it back as it was.","tags":["contacts"],"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.loyalty.leave","x-rivier-cli":"contacts loyalty leave","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"left":{"type":"boolean","const":true}},"required":["left"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/members/{contactId}/redeem":{"post":{"operationId":"contacts.loyalty.redeem","summary":"Take a reward for a customer who asked: the points are spent and a one-use code is made.","tags":["contacts"],"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.loyalty.redeem","x-rivier-cli":"contacts loyalty redeem","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rewardId":{"type":"string","format":"uuid"}},"required":["rewardId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/redemptions/{id}/cancel":{"post":{"operationId":"contacts.loyalty.cancelRedemption","summary":"Undo a reward not used yet: the points go back and the code stops working.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-sdk":"contacts.loyalty.cancelRedemption","x-rivier-cli":"contacts loyalty cancel redemption","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/rewards":{"post":{"operationId":"contacts.loyalty.createReward","summary":"Add a reward customers can take with their points: money off, a percentage off, free delivery, or a gift handed over in person.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.loyalty.createReward","x-rivier-cli":"contacts loyalty create reward","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":400,"default":""},"costPoints":{"type":"integer","minimum":1,"maximum":10000000},"kind":{"type":"string","enum":["percent","fixed","free_shipping","gift"]},"percentBp":{"anyOf":[{"type":"integer","minimum":1,"maximum":10000},{"type":"null"}]},"amountMinor":{"anyOf":[{"type":"integer","minimum":1,"maximum":100000000},{"type":"null"}]},"currency":{"anyOf":[{"type":"string","pattern":"^[a-z]{3}$"},{"type":"null"}]},"minSubtotalMinor":{"type":"integer","minimum":0,"maximum":100000000,"default":0},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":60},"position":{"type":"integer","minimum":0,"maximum":1000,"default":0}},"required":["name","costPoints","kind"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/rewards/{id}":{"put":{"operationId":"contacts.loyalty.updateReward","summary":"Change a reward. Rewards already taken keep what they were.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.loyalty.updateReward","x-rivier-cli":"contacts loyalty update reward","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":400,"default":""},"costPoints":{"type":"integer","minimum":1,"maximum":10000000},"kind":{"type":"string","enum":["percent","fixed","free_shipping","gift"]},"percentBp":{"anyOf":[{"type":"integer","minimum":1,"maximum":10000},{"type":"null"}]},"amountMinor":{"anyOf":[{"type":"integer","minimum":1,"maximum":100000000},{"type":"null"}]},"currency":{"anyOf":[{"type":"string","pattern":"^[a-z]{3}$"},{"type":"null"}]},"minSubtotalMinor":{"type":"integer","minimum":0,"maximum":100000000,"default":0},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":60},"position":{"type":"integer","minimum":0,"maximum":1000,"default":0}},"required":["name","costPoints","kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/loyalty/rewards/{id}/archive":{"post":{"operationId":"contacts.loyalty.archiveReward","summary":"Stop offering a reward. Rewards already taken stay good until their date.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:admin","x-rivier-sdk":"contacts.loyalty.archiveReward","x-rivier-cli":"contacts loyalty archive reward","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"archived":{"type":"boolean","const":true}},"required":["archived"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/batches/{id}/cancel":{"post":{"operationId":"campaigns.mailBatch.cancel","summary":"Cancel every message of a batch that has not left yet.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailBatchCancel","x-rivier-sdk":"mail.batches.cancel","x-rivier-cli":"mail cancel-batch","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/groups":{"get":{"operationId":"campaigns.mailGroup.list","summary":"Unsubscribe groups: what a recipient can opt out of without leaving everything.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_groups","x-rivier-graphql":"Query.campaignsMailGroupList","x-rivier-sdk":"mail.groups.list","x-rivier-cli":"mail groups","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.mailGroup.save","summary":"Create or change an unsubscribe group. The group is the consent purpose email.<id>, so the preference page and one-click unsubscribe already honour it.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailGroupSave","x-rivier-sdk":"mail.groups.save","x-rivier-cli":"mail group-save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40,"description":"Lower-case letters, digits, dashes; the consent purpose is email.<id>"},"name":{"type":"string","minLength":1,"maxLength":80},"description":{"type":"string","maxLength":300},"kind":{"type":"string","enum":["service","marketing"],"description":"marketing needs the person's granted consent; service (receipts, security) does not, but honours a full unsubscribe"},"isDefault":{"type":"boolean"}},"required":["id","name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/groups/{id}":{"delete":{"operationId":"campaigns.mailGroup.remove","summary":"Remove an unsubscribe group (not the project's default).","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailGroupRemove","x-rivier-sdk":"mail.groups.remove","x-rivier-cli":"mail group-remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/inbound/ingest":{"post":{"operationId":"campaigns.mailInbound.ingest","summary":"Hand a received message to the parser (the mail platform does this for each message it receives for a routed domain). Send JSON with the raw message, or the message itself as message/rfc822.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:admin","x-rivier-graphql":"Mutation.campaignsMailInboundIngest","x-rivier-sdk":"mail.inbound.ingest","x-rivier-cli":"mail ingest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"raw":{"type":"string","maxLength":40000000,"description":"The message as RFC 822 text, base64 when rawEncoding is base64"},"rawEncoding":{"type":"string","enum":["text","base64"]},"to":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":100},"from":{"type":"string","minLength":3,"maxLength":320}},"required":["raw"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/inbound/messages":{"get":{"operationId":"campaigns.mailInbound.list","summary":"Messages received through inbound routes, with the state of their webhook delivery.","tags":["campaigns"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsMailInboundList","x-rivier-sdk":"mail.inbound.list","x-rivier-cli":"mail inbound","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/inbound/messages/{id}/replay":{"post":{"operationId":"campaigns.mailInbound.replay","summary":"Deliver a received message to the webhook endpoints again.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:admin","x-rivier-graphql":"Mutation.campaignsMailInboundReplay","x-rivier-sdk":"mail.inbound.replay","x-rivier-cli":"mail inbound-replay","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/inbound/routes":{"get":{"operationId":"campaigns.mailRoute.list","summary":"Inbound routes: which domains and addresses deliver received mail to the project's webhooks.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsMailRouteList","x-rivier-sdk":"mail.inbound.routes","x-rivier-cli":"mail routes","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.mailRoute.create","summary":"Receive mail for a domain or address of the project as parsed JSON on its webhook endpoints (event mail.inbound).","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:admin","x-rivier-graphql":"Mutation.campaignsMailRouteCreate","x-rivier-sdk":"mail.inbound.createRoute","x-rivier-cli":"mail route-create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"match":{"type":"string","minLength":3,"maxLength":320,"description":"A domain (mail.example.com) or one address"},"keepRaw":{"type":"boolean"}},"required":["match"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/inbound/routes/{id}":{"delete":{"operationId":"campaigns.mailRoute.remove","summary":"Stop receiving mail on a route.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:admin","x-rivier-graphql":"Mutation.campaignsMailRouteRemove","x-rivier-sdk":"mail.inbound.removeRoute","x-rivier-cli":"mail route-remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/messages":{"get":{"operationId":"campaigns.mailMessage.list","summary":"Messages sent through the mail API, newest first, with their state. Filter by state, address, batch or tag.","tags":["campaigns"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["scheduled","queued","sending","sent","delivered","bounced","complained","failed","suppressed","blocked","canceled","unknown"]}},{"name":"to","in":"query","required":false,"schema":{"type":"string","maxLength":320}},{"name":"batchId","in":"query","required":false,"schema":{"type":"string","maxLength":64}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"before","in":"query","required":false,"schema":{"type":"string","maxLength":40,"description":"Created before this time, to page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_messages","x-rivier-graphql":"Query.campaignsMailMessageList","x-rivier-sdk":"mail.messages.list","x-rivier-cli":"mail messages","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/messages/{id}":{"get":{"operationId":"campaigns.mailMessage.get","summary":"One message with its content and the timeline of what happened to it (queued, sent, delivered, bounced, opened, clicked) and the transport that carried it, with the reason when it was not the one asked for.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_message","x-rivier-graphql":"Query.campaignsMailMessageGet","x-rivier-sdk":"mail.messages.get","x-rivier-cli":"mail message","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/messages/{id}/cancel":{"post":{"operationId":"campaigns.mailMessage.cancel","summary":"Cancel a scheduled or queued message before it leaves.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_campaign_mail_cancel","x-rivier-graphql":"Mutation.campaignsMailMessageCancel","x-rivier-sdk":"mail.messages.cancel","x-rivier-cli":"mail cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/messages/{id}/resend":{"post":{"operationId":"campaigns.mailMessage.resend","summary":"Send a failed message again. When the earlier outcome is unknown (the connection ended mid-send) you must confirm it was not delivered.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_campaign_mail_resend","x-rivier-graphql":"Mutation.campaignsMailMessageResend","x-rivier-sdk":"mail.messages.resend","x-rivier-cli":"mail resend","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirmNotDelivered":{"type":"boolean","description":"Required when the earlier outcome is unknown: you have checked that it was not delivered"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/send":{"post":{"operationId":"campaigns.mailSend.create","summary":"Send a transactional email (one message per recipient). Use an Idempotency-Key (header or idempotencyKey) so a retry sends once; sandbox: true checks and renders without sending. Refuses suppressed addresses with a structured error. Mail goes out through the project's chosen transport once consent, quiet rules, test mode and the plan's limit allow it.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_campaign_mail_send","x-rivier-graphql":"Mutation.campaignsMailSendCreate","x-rivier-sdk":"mail.send","x-rivier-cli":"mail send","x-rivier-events":["campaigns.mail.queued"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"anyOf":[{"type":"string","minLength":3,"maxLength":320},{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"minItems":1,"maxItems":500}],"description":"One address, or a list: each gets a message of its own (nobody sees the others)"},"from":{"type":"string","minLength":3,"maxLength":320,"description":"Defaults to the project's sending address; must be on its sending domain"},"fromName":{"type":"string","maxLength":120},"replyTo":{"type":"string","minLength":3,"maxLength":320},"subject":{"type":"string","maxLength":998,"description":"Required unless the template has one. May use {{variables}}"},"html":{"type":"string","maxLength":1000000},"text":{"type":"string","maxLength":1000000,"description":"Defaults to the html as plain text"},"template":{"type":"string","maxLength":120,"description":"A template name or id from the template library"},"data":{"type":"object","additionalProperties":{},"description":"Values the template or the message reads: {{name}}, {{#if plan == \"pro\"}}, {{#each items}}"},"group":{"type":"string","maxLength":40,"description":"Unsubscribe group; adds the unsubscribe link and one-click header, and honours the person's choice"},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10},"headers":{"type":"object","additionalProperties":{"type":"string","maxLength":998},"description":"Extra headers (X-...); headers the platform sets are refused"},"sendAt":{"type":"string","maxLength":40,"description":"ISO 8601 time, at most 30 days ahead; default now"},"trackOpens":{"type":"boolean"},"trackClicks":{"type":"boolean"},"sandbox":{"type":"boolean","description":"Validate and render, report what would happen, send and store nothing"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"Same as the Idempotency-Key header: the same key twice sends once"},"attachments":{"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":200,"description":"The name the recipient sees, such as invite.ics"},"contentType":{"type":"string","maxLength":120,"description":"Defaults from the file name; text/calendar for an invitation"},"content":{"type":"string","minLength":1,"maxLength":7000000,"description":"The file's bytes in base64"}},"required":["filename","content"],"additionalProperties":false},"maxItems":10,"description":"Up to 10 files, 5 MB together; programs and scripts are refused"}},"required":["to"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/send/batch":{"post":{"operationId":"campaigns.mailBatchSend.create","summary":"Send up to 500 different messages in one request. Each item is accepted or rejected on its own; the answer has one result per item and a batchId that cancels the whole batch while it waits.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_campaign_mail_send_batch","x-rivier-graphql":"Mutation.campaignsMailBatchSendCreate","x-rivier-sdk":"mail.sendBatch","x-rivier-cli":"mail send-batch","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"to":{"type":"string","minLength":3,"maxLength":320},"from":{"type":"string","minLength":3,"maxLength":320,"description":"Defaults to the project's sending address; must be on its sending domain"},"fromName":{"type":"string","maxLength":120},"replyTo":{"type":"string","minLength":3,"maxLength":320},"subject":{"type":"string","maxLength":998,"description":"Required unless the template has one. May use {{variables}}"},"html":{"type":"string","maxLength":1000000},"text":{"type":"string","maxLength":1000000,"description":"Defaults to the html as plain text"},"template":{"type":"string","maxLength":120,"description":"A template name or id from the template library"},"data":{"type":"object","additionalProperties":{},"description":"Values the template or the message reads: {{name}}, {{#if plan == \"pro\"}}, {{#each items}}"},"group":{"type":"string","maxLength":40,"description":"Unsubscribe group; adds the unsubscribe link and one-click header, and honours the person's choice"},"tags":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10},"headers":{"type":"object","additionalProperties":{"type":"string","maxLength":998},"description":"Extra headers (X-...); headers the platform sets are refused"},"sendAt":{"type":"string","maxLength":40,"description":"ISO 8601 time, at most 30 days ahead; default now"},"trackOpens":{"type":"boolean"},"trackClicks":{"type":"boolean"},"attachments":{"type":"array","items":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":200,"description":"The name the recipient sees, such as invite.ics"},"contentType":{"type":"string","maxLength":120,"description":"Defaults from the file name; text/calendar for an invitation"},"content":{"type":"string","minLength":1,"maxLength":7000000,"description":"The file's bytes in base64"}},"required":["filename","content"],"additionalProperties":false},"maxItems":10,"description":"Up to 10 files, 5 MB together; programs and scripts are refused"}},"required":["to"],"additionalProperties":false},"minItems":1,"maxItems":500},"sandbox":{"type":"boolean"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["messages"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/settings":{"get":{"operationId":"campaigns.mailSettings.get","summary":"The project's mail API settings: rate limit, tracking defaults, default group, transport choice and retention.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_settings","x-rivier-graphql":"Query.campaignsMailSettingsGet","x-rivier-sdk":"mail.settings.get","x-rivier-cli":"mail settings","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"campaigns.mailSettings.update","summary":"Change the project's mail API settings. Choosing the own MTA does not switch it on: it is used for a domain only after the deliverability checks pass.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailSettingsUpdate","x-rivier-sdk":"mail.settings.update","x-rivier-cli":"mail settings-update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ratePerMinute":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"trackOpens":{"type":"boolean"},"trackClicks":{"type":"boolean"},"defaultGroup":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"transport":{"type":"string","enum":["auto","own-mta","resend","furcate-mail"]},"domainTransport":{"type":"object","additionalProperties":{"type":"string","enum":["own-mta","resend","furcate-mail"]}},"retentionDays":{"type":"integer","minimum":1,"maximum":730}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/smtp":{"get":{"operationId":"campaigns.mailSmtp.get","summary":"How to send through SMTP: whether the relay is on, the host and ports, and the project's credentials (never their secrets).","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsMailSmtpGet","x-rivier-sdk":"mail.smtp.get","x-rivier-cli":"mail smtp","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/smtp/credentials":{"post":{"operationId":"campaigns.mailSmtpCredential.create","summary":"Create an SMTP credential. The secret is shown once, in this answer only.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:admin","x-rivier-graphql":"Mutation.campaignsMailSmtpCredentialCreate","x-rivier-sdk":"mail.smtp.createCredential","x-rivier-cli":"mail smtp-create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","maxLength":80}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/smtp/credentials/{id}":{"delete":{"operationId":"campaigns.mailSmtpCredential.remove","summary":"Revoke an SMTP credential.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:admin","x-rivier-graphql":"Mutation.campaignsMailSmtpCredentialRemove","x-rivier-sdk":"mail.smtp.revokeCredential","x-rivier-cli":"mail smtp-revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/templates":{"get":{"operationId":"campaigns.mailTemplate.list","summary":"The email template library: the project's own templates and its organization's shared ones.","tags":["campaigns"],"parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["transactional","marketing","partial"]}},{"name":"archived","in":"query","required":false,"schema":{"type":"boolean"}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_templates","x-rivier-graphql":"Query.campaignsMailTemplateList","x-rivier-sdk":"mail.templates.list","x-rivier-cli":"mail templates","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.mailTemplate.create","summary":"Create an email template. Variables {{name}} and {{name|fallback}}, conditionals {{#if}} {{else}}, loops {{#each}} and partials {{> name}}; values are escaped for HTML.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailTemplateCreate","x-rivier-sdk":"mail.templates.create","x-rivier-cli":"mail template-create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["transactional","marketing","partial"]},"language":{"type":"string","maxLength":20,"description":"en, dv, ar, ...; sets the direction and footer words of group mail"},"subject":{"type":"string","maxLength":998},"html":{"type":"string","maxLength":1000000},"text":{"type":"string","maxLength":1000000},"testData":{"type":"object","additionalProperties":{},"description":"Sample values used by the preview"},"note":{"type":"string","maxLength":200},"share":{"type":"string","enum":["project","organization"],"description":"organization: every project of the organization can use it"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/templates/preview":{"post":{"operationId":"campaigns.mailPreview.create","summary":"Render a template (or inline content) with data exactly as a send would, and list the variables it asked for that the data did not carry. Sends and stores nothing.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_preview","x-rivier-graphql":"Query.campaignsMailPreviewCreate","x-rivier-sdk":"mail.preview","x-rivier-cli":"mail preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"string","maxLength":120,"description":"A saved template (name or id)"},"version":{"type":"integer","minimum":1},"subject":{"type":"string","maxLength":998},"html":{"type":"string","maxLength":1000000},"text":{"type":"string","maxLength":1000000},"data":{"type":"object","additionalProperties":{},"description":"Defaults to the template's test data"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/templates/{id}":{"get":{"operationId":"campaigns.mailTemplate.get","summary":"One template with its versions, the variables it reads and its test data.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_template","x-rivier-graphql":"Query.campaignsMailTemplateGet","x-rivier-sdk":"mail.templates.get","x-rivier-cli":"mail template","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"campaigns.mailTemplate.update","summary":"Change a template. This saves a new version; earlier versions stay and can be restored.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailTemplateUpdate","x-rivier-sdk":"mail.templates.update","x-rivier-cli":"mail template-update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["transactional","marketing","partial"]},"language":{"type":"string","maxLength":20,"description":"en, dv, ar, ...; sets the direction and footer words of group mail"},"subject":{"type":"string","maxLength":998},"html":{"type":"string","maxLength":1000000},"text":{"type":"string","maxLength":1000000},"testData":{"type":"object","additionalProperties":{},"description":"Sample values used by the preview"},"note":{"type":"string","maxLength":200},"share":{"type":"string","enum":["project","organization"],"description":"organization: every project of the organization can use it"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"campaigns.mailTemplate.archive","summary":"Archive a template. Messages already queued keep their content.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailTemplateArchive","x-rivier-sdk":"mail.templates.archive","x-rivier-cli":"mail template-archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/templates/{id}/restore":{"post":{"operationId":"campaigns.mailTemplate.restore","summary":"Make an earlier version current again, as a new version.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsMailTemplateRestore","x-rivier-sdk":"mail.templates.restore","x-rivier-cli":"mail template-restore","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":1}},"required":["version"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/mail/validate":{"post":{"operationId":"campaigns.mailValidation.create","summary":"Check one address or up to 100: syntax, a mail server for the domain, throwaway providers, role mailboxes and common typos. Nothing is sent.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_campaign_mail_validate","x-rivier-graphql":"Query.campaignsMailValidationCreate","x-rivier-sdk":"mail.validate","x-rivier-cli":"mail validate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":3,"maxLength":320},"emails":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"minItems":1,"maxItems":100}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/maps/geocode":{"get":{"operationId":"maps.place.geocode","summary":"Places for an address or a name, best first, with coordinates and a short context line; prefer places near a point or in a country.","tags":["maps"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256}},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"name":"language","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10,"default":5}},{"name":"near","in":"query","required":false,"schema":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?$","description":"lat,lng to prefer places near"}}],"x-rivier-scope":"maps:read","x-rivier-mcp":"rivier_maps_geocode","x-rivier-graphql":"Query.mapsPlaceGeocode","x-rivier-sdk":"maps.place.geocode","x-rivier-cli":"maps place geocode","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/maps/isochrone":{"post":{"operationId":"maps.area.isochrone","summary":"The areas reachable from a point within up to four numbers of minutes (up to 60) by car, on foot or by bicycle, as GeoJSON polygons: a delivery zone, a catchment.","tags":["maps"],"parameters":[],"x-rivier-scope":"maps:read","x-rivier-mcp":"rivier_maps_isochrone","x-rivier-graphql":"Query.mapsAreaIsochrone","x-rivier-sdk":"maps.area.isochrone","x-rivier-cli":"maps area isochrone","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"point":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"minutes":{"type":"array","items":{"type":"integer","minimum":1,"maximum":60},"minItems":1,"maxItems":4},"mode":{"type":"string","enum":["driving","walking","cycling"],"default":"driving"}},"required":["point","minutes"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/maps/matrix":{"post":{"operationId":"maps.route.matrix","summary":"Travel times and distances from each source to each target (at most 25 points in all, 10 with live traffic), for choosing the nearest or planning a round.","tags":["maps"],"parameters":[],"x-rivier-scope":"maps:read","x-rivier-mcp":"rivier_maps_matrix","x-rivier-graphql":"Query.mapsRouteMatrix","x-rivier-sdk":"maps.route.matrix","x-rivier-cli":"maps route matrix","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sources":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"minItems":1,"maxItems":24},"targets":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"minItems":1,"maxItems":24},"mode":{"type":"string","enum":["driving","driving-traffic","walking","cycling"],"default":"driving","description":"at most 25 points in all, sources and targets together (10 with driving-traffic)"}},"required":["sources","targets"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/maps/reverse":{"get":{"operationId":"maps.place.reverse","summary":"The address at a point.","tags":["maps"],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","minimum":-90,"maximum":90}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","minimum":-180,"maximum":180}},{"name":"language","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}}],"x-rivier-scope":"maps:read","x-rivier-mcp":"rivier_maps_reverse","x-rivier-graphql":"Query.mapsPlaceReverse","x-rivier-sdk":"maps.place.reverse","x-rivier-cli":"maps place reverse","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/maps/route":{"post":{"operationId":"maps.route.get","summary":"A route through two to 25 points by car (optionally with live traffic), on foot or by bicycle: distance, time, the line (polyline6) and each leg.","tags":["maps"],"parameters":[],"x-rivier-scope":"maps:read","x-rivier-mcp":"rivier_maps_route","x-rivier-graphql":"Query.mapsRouteGet","x-rivier-sdk":"maps.route.get","x-rivier-cli":"maps route get","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}},"required":["lat","lng"],"additionalProperties":false},"minItems":2,"maxItems":25},"mode":{"type":"string","enum":["driving","driving-traffic","walking","cycling"],"default":"driving","description":"driving-traffic uses live traffic"}},"required":["points"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/maps/search":{"get":{"operationId":"maps.place.search","summary":"Places of a kind or a name (a pharmacy, a cafe) near a point or inside a box, nearest first.","tags":["maps"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"description":"What to find: \"pharmacy\", \"cafe\", a name"}},{"name":"near","in":"query","required":false,"schema":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?$"}},{"name":"bbox","in":"query","required":false,"schema":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?(,-?\\d+(\\.\\d+)?){3}$","description":"west,south,east,north"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{2}$"}},{"name":"language","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10,"default":10}}],"x-rivier-scope":"maps:read","x-rivier-mcp":"rivier_maps_search","x-rivier-graphql":"Query.mapsPlaceSearch","x-rivier-sdk":"maps.place.search","x-rivier-cli":"maps place search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/members":{"get":{"operationId":"content.member.list","summary":"Members and the tiers each holds now.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.member.list","x-rivier-cli":"content member list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["members"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/members/grants":{"post":{"operationId":"content.member.grant","summary":"Give someone a tier (a gift, a comp, an import, or a payment recorded by hand).","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.member.grant","x-rivier-cli":"content member grant","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"name":{"type":"string","maxLength":200,"default":""},"tierId":{"type":"string","format":"uuid"},"days":{"type":"integer","minimum":1,"maximum":3660}},"required":["email","tierId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/members/grants/{id}/end":{"post":{"operationId":"content.member.endGrant","summary":"End a grant now.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.member.endGrant","x-rivier-cli":"content member end grant","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ended":{"type":"boolean","const":true}},"required":["ended"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/members/session":{"post":{"operationId":"content.member.session","summary":"Tokens for a member whom the site has signed in: one for the server-side check and, where the edge key is set up, one the edge verifies with the public key.","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.member.session","x-rivier-cli":"content member session","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"memberId":{"type":"string","format":"uuid"},"ttlSeconds":{"type":"integer","minimum":60,"maximum":2592000}},"required":["memberId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/members/tiers":{"get":{"operationId":"content.tier.list","summary":"The membership tiers (free and paid) readers can hold.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.tier.list","x-rivier-cli":"content tier list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tiers":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["tiers"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.tier.create","summary":"Add a tier: a name, free or paid, a price and a period (month, year or once).","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.tier.create","x-rivier-cli":"content tier create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},"kind":{"type":"string","enum":["free","paid"],"default":"paid"},"priceMinor":{"type":"integer","minimum":0,"maximum":10000000,"default":0},"currency":{"type":"string","pattern":"^[a-z]{3}$","default":"eur"},"period":{"type":"string","enum":["month","year","once"],"default":"month"},"description":{"type":"string","maxLength":1000,"default":""},"position":{"type":"integer","minimum":0,"maximum":1000,"default":0}},"required":["name","slug"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory-grants/defaults":{"get":{"operationId":"memory.memoryGrantsDefaults.get","summary":"Read memory grants defaults","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryMemoryGrantsDefaultsGet","x-rivier-sdk":"memory.memoryGrantsDefaults.get","x-rivier-cli":"memory memory grants defaults get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/context":{"post":{"operationId":"memory.context.assemble","summary":"Context for a question within a token budget, with citations","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_memory_context","x-rivier-graphql":"Query.memoryContextAssemble","x-rivier-sdk":"memory.context.assemble","x-rivier-cli":"memory context assemble","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"memory.context.list","summary":"Recent context packs: what was assembled, for whom, and how much","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryContextList","x-rivier-sdk":"memory.context.list","x-rivier-cli":"memory context list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/context/organisation":{"post":{"operationId":"memory.organisationContext.assemble","summary":"Context across the organisation's projects the person can read, never an excluded one","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryOrganisationContextAssemble","x-rivier-sdk":"memory.organisationContext.assemble","x-rivier-cli":"memory organisation context assemble","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/context/{id}":{"get":{"operationId":"memory.context.get","summary":"One context pack with the items as they are now","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryContextGet","x-rivier-sdk":"memory.context.get","x-rivier-cli":"memory context get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/edges":{"post":{"operationId":"memory.edge.create","summary":"Connect two entities.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryEdgeCreate","x-rivier-sdk":"memory.edge.create","x-rivier-cli":"memory edge create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/entities":{"post":{"operationId":"memory.entity.upsert","summary":"Add or update an entity in the memory graph.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryEntityUpsert","x-rivier-sdk":"memory.entity.upsert","x-rivier-cli":"memory entity upsert","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/entities/resolve":{"post":{"operationId":"memory.entity.resolve","summary":"The one person entity behind several identities","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_entity_resolve","x-rivier-graphql":"Mutation.memoryEntityResolve","x-rivier-sdk":"memory.entity.resolve","x-rivier-cli":"memory entity resolve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/entities/{id}/neighbors":{"get":{"operationId":"memory.entity.neighbors","summary":"What an entity is connected to.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"depth","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":3}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_entity_neighbors","x-rivier-graphql":"Query.memoryEntityNeighbors","x-rivier-sdk":"memory.entity.neighbors","x-rivier-cli":"memory entity neighbors","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/expire":{"post":{"operationId":"memory.item.expireStale","summary":"Expire items past their validity.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryItemExpireStale","x-rivier-sdk":"memory.item.expireStale","x-rivier-cli":"memory item expire stale","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/graph/sync":{"post":{"operationId":"memory.graph.sync","summary":"Bring the memory graph up to date with orders, bookings and suppliers","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryGraphSync","x-rivier-sdk":"memory.graph.sync","x-rivier-cli":"memory graph sync","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/graph/unlink":{"post":{"operationId":"memory.graph.unlink","summary":"Mark a link as no longer holding, keeping it for as-of questions","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryGraphUnlink","x-rivier-sdk":"memory.graph.unlink","x-rivier-cli":"memory graph unlink","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest":{"post":{"operationId":"memory.memoryIngest.create","summary":"Run memory ingest","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_convert","x-rivier-graphql":"Mutation.memoryMemoryIngestCreate","x-rivier-sdk":"memory.memoryIngest.create","x-rivier-cli":"memory memory ingest create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/bulk":{"post":{"operationId":"memory.memoryIngest.bulk","summary":"Run memory ingest bulk","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_bulk","x-rivier-graphql":"Mutation.memoryMemoryIngestBulk","x-rivier-sdk":"memory.memoryIngest.bulk","x-rivier-cli":"memory memory ingest bulk","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/files":{"get":{"operationId":"memory.memoryIngestFiles.get","summary":"Read memory ingest files","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_ingest_files","x-rivier-graphql":"Query.memoryMemoryIngestFilesGet","x-rivier-sdk":"memory.memoryIngestFiles.get","x-rivier-cli":"memory memory ingest files get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/files/{fileId}/derived":{"delete":{"operationId":"memory.memoryIngestFilesDerived.remove","summary":"Remove memory ingest files derived (by id)","tags":["memory"],"parameters":[{"name":"fileId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_remove_derived","x-rivier-graphql":"Mutation.memoryMemoryIngestFilesDerivedRemove","x-rivier-sdk":"memory.memoryIngestFilesDerived.remove","x-rivier-cli":"memory memory ingest files derived remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"memory.memoryIngestFilesDerived.get","summary":"Read memory ingest files derived (by id)","tags":["memory"],"parameters":[{"name":"fileId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_ingest_derived","x-rivier-graphql":"Query.memoryMemoryIngestFilesDerivedGet","x-rivier-sdk":"memory.memoryIngestFilesDerived.get","x-rivier-cli":"memory memory ingest files derived get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/folders/{collectionId}":{"get":{"operationId":"memory.memoryIngestFolders.get","summary":"Read memory ingest folders (by id)","tags":["memory"],"parameters":[{"name":"collectionId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryMemoryIngestFoldersGet","x-rivier-sdk":"memory.memoryIngestFolders.get","x-rivier-cli":"memory memory ingest folders get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"memory.memoryIngestFolders.set","summary":"Set memory ingest folders (by id)","tags":["memory"],"parameters":[{"name":"collectionId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_folder_set","x-rivier-graphql":"Mutation.memoryMemoryIngestFoldersSet","x-rivier-sdk":"memory.memoryIngestFolders.set","x-rivier-cli":"memory memory ingest folders set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/runs":{"get":{"operationId":"memory.memoryIngestRuns.get","summary":"Read memory ingest runs","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_ingest_runs","x-rivier-graphql":"Query.memoryMemoryIngestRunsGet","x-rivier-sdk":"memory.memoryIngestRuns.get","x-rivier-cli":"memory memory ingest runs get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/runs/{id}":{"get":{"operationId":"memory.memoryIngestRuns.get2","summary":"Read memory ingest runs (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_ingest_run","x-rivier-graphql":"Query.memoryMemoryIngestRunsGet2","x-rivier-sdk":"memory.memoryIngestRuns.get2","x-rivier-cli":"memory memory ingest runs get2","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/runs/{id}/cancel":{"post":{"operationId":"memory.memoryIngestRuns.cancel","summary":"Run memory ingest runs cancel (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_cancel","x-rivier-graphql":"Mutation.memoryMemoryIngestRunsCancel","x-rivier-sdk":"memory.memoryIngestRuns.cancel","x-rivier-cli":"memory memory ingest runs cancel","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/runs/{id}/decide":{"post":{"operationId":"memory.memoryIngestRuns.decide","summary":"Run memory ingest runs decide (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_decide","x-rivier-graphql":"Mutation.memoryMemoryIngestRunsDecide","x-rivier-sdk":"memory.memoryIngestRuns.decide","x-rivier-cli":"memory memory ingest runs decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/runs/{id}/reclassify":{"post":{"operationId":"memory.memoryIngestRuns.reclassify","summary":"Run memory ingest runs reclassify (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_reclassify","x-rivier-graphql":"Mutation.memoryMemoryIngestRunsReclassify","x-rivier-sdk":"memory.memoryIngestRuns.reclassify","x-rivier-cli":"memory memory ingest runs reclassify","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/runs/{id}/resume":{"post":{"operationId":"memory.memoryIngestRuns.resume","summary":"Run memory ingest runs resume (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryMemoryIngestRunsResume","x-rivier-sdk":"memory.memoryIngestRuns.resume","x-rivier-cli":"memory memory ingest runs resume","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/settings":{"get":{"operationId":"memory.memoryIngestSettings.get","summary":"Read memory ingest settings","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_ingest_settings_get","x-rivier-graphql":"Query.memoryMemoryIngestSettingsGet","x-rivier-sdk":"memory.memoryIngestSettings.get","x-rivier-cli":"memory memory ingest settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"memory.memoryIngestSettings.set","summary":"Set memory ingest settings","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_ingest_settings_set","x-rivier-graphql":"Mutation.memoryMemoryIngestSettingsSet","x-rivier-sdk":"memory.memoryIngestSettings.set","x-rivier-cli":"memory memory ingest settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/ingest/status":{"post":{"operationId":"memory.memoryIngest.status","summary":"Run memory ingest status","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_ingest_status","x-rivier-graphql":"Query.memoryMemoryIngestStatus","x-rivier-sdk":"memory.memoryIngest.status","x-rivier-cli":"memory memory ingest status","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items":{"get":{"operationId":"memory.item.list","summary":"Memory items by scope, kind and state.","tags":["memory"],"parameters":[{"name":"level","in":"query","required":false,"schema":{"type":"string","enum":["account","organization","project","product","agent"]}},{"name":"scopeId","in":"query","required":false,"schema":{"type":"string"}},{"name":"state","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"agentId","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_memory_list","x-rivier-graphql":"Query.memoryItemList","x-rivier-sdk":"memory.item.list","x-rivier-cli":"memory item list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["business_fact","brand_voice","guideline","product","policy","faq","decision","preference","conversation_summary","correction","note","research_note","reflection","opinion","life_event","relationship"]},"text":{"type":"string"},"state":{"type":"string"}},"required":["id","kind","text","state"],"additionalProperties":true}}},"required":["items"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"memory.item.create","summary":"Remember something.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_memory_put","x-rivier-graphql":"Mutation.memoryItemCreate","x-rivier-sdk":"memory.item.create","x-rivier-cli":"memory item create","x-rivier-events":["memory.item.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scope":{"type":"object","properties":{"level":{"type":"string","enum":["account","organization","project","product","agent"]},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["level","id"],"additionalProperties":false},"kind":{"type":"string","enum":["business_fact","brand_voice","guideline","product","policy","faq","decision","preference","conversation_summary","correction","note","research_note","reflection","opinion","life_event","relationship"]},"text":{"type":"string","minLength":1,"maxLength":4000},"language":{"type":"string","maxLength":20},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","conversation","web","connector","human","reflection","lw","call"]},"ref":{"type":"string","maxLength":300},"label":{"type":"string","maxLength":120},"url":{"type":"string","maxLength":500},"retrievedAt":{"type":"string","maxLength":40}},"required":["type"],"additionalProperties":false},"origin":{"type":"string","enum":["human","learned","research","reflection","persona_life","conversation"]},"state":{"type":"string","enum":["proposed","active"]},"confidence":{"type":"number","minimum":0,"maximum":1},"importance":{"type":"number","minimum":0,"maximum":1},"sensitive":{"type":"boolean"},"pinned":{"type":"boolean"},"visibility":{"type":"string","enum":["all_agents","named_agents","humans_only"]},"visibleTo":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":50},"validFrom":{"type":"string","maxLength":40},"validTo":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"entityIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"required":["scope","kind","text","source","origin"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["business_fact","brand_voice","guideline","product","policy","faq","decision","preference","conversation_summary","correction","note","research_note","reflection","opinion","life_event","relationship"]},"text":{"type":"string"},"state":{"type":"string"}},"required":["id","kind","text","state"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items/{id}":{"get":{"operationId":"memory.item.get","summary":"One memory item.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryItemGet","x-rivier-sdk":"memory.item.get","x-rivier-cli":"memory item get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["business_fact","brand_voice","guideline","product","policy","faq","decision","preference","conversation_summary","correction","note","research_note","reflection","opinion","life_event","relationship"]},"text":{"type":"string"},"state":{"type":"string"}},"required":["id","kind","text","state"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items/{id}/conflicts":{"get":{"operationId":"memory.item.conflicts","summary":"Other live items that say the same thing or something close and different","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryItemConflicts","x-rivier-sdk":"memory.item.conflicts","x-rivier-cli":"memory item conflicts","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items/{id}/remote":{"get":{"operationId":"memory.item.remote","summary":"Whether an item came from an agent's life, and what removing it did there: a lesson doubted, an episode that stays, or nothing sent.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryItemRemote","x-rivier-sdk":"memory.item.remote","x-rivier-cli":"memory item remote","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items/{id}/supersede":{"post":{"operationId":"memory.item.supersede","summary":"Replace an item with a corrected one.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryItemSupersede","x-rivier-sdk":"memory.item.supersede","x-rivier-cli":"memory item supersede","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"scope":{"type":"object","properties":{"level":{"type":"string","enum":["account","organization","project","product","agent"]},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["level","id"],"additionalProperties":false},"kind":{"type":"string","enum":["business_fact","brand_voice","guideline","product","policy","faq","decision","preference","conversation_summary","correction","note","research_note","reflection","opinion","life_event","relationship"]},"text":{"type":"string","minLength":1,"maxLength":4000},"language":{"type":"string","maxLength":20},"source":{"type":"object","properties":{"type":{"type":"string","enum":["upload","conversation","web","connector","human","reflection","lw","call"]},"ref":{"type":"string","maxLength":300},"label":{"type":"string","maxLength":120},"url":{"type":"string","maxLength":500},"retrievedAt":{"type":"string","maxLength":40}},"required":["type"],"additionalProperties":false},"origin":{"type":"string","enum":["human","learned","research","reflection","persona_life","conversation"]},"state":{"type":"string","enum":["proposed","active"]},"confidence":{"type":"number","minimum":0,"maximum":1},"importance":{"type":"number","minimum":0,"maximum":1},"sensitive":{"type":"boolean"},"pinned":{"type":"boolean"},"visibility":{"type":"string","enum":["all_agents","named_agents","humans_only"]},"visibleTo":{"type":"array","items":{"type":"string","maxLength":100},"maxItems":50},"validFrom":{"type":"string","maxLength":40},"validTo":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"entityIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"required":["scope","kind","text","source","origin"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items/{id}/tags":{"get":{"operationId":"memory.memoryItemsTags.get","summary":"Read memory items tags (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryMemoryItemsTagsGet","x-rivier-sdk":"memory.memoryItemsTags.get","x-rivier-cli":"memory memory items tags get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"memory.memoryItemsTags.create","summary":"Run memory items tags (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_memory_tag","x-rivier-graphql":"Mutation.memoryMemoryItemsTagsCreate","x-rivier-sdk":"memory.memoryItemsTags.create","x-rivier-cli":"memory memory items tags create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/items/{id}/tags/{tagId}":{"delete":{"operationId":"memory.memoryItemsTags.remove","summary":"Remove memory items tags (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}},{"name":"tagId","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_memory_untag","x-rivier-graphql":"Mutation.memoryMemoryItemsTagsRemove","x-rivier-sdk":"memory.memoryItemsTags.remove","x-rivier-cli":"memory memory items tags remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/reembed":{"post":{"operationId":"memory.item.reembed","summary":"Re-embed stale items.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryItemReembed","x-rivier-sdk":"memory.item.reembed","x-rivier-cli":"memory item reembed","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/review":{"get":{"operationId":"memory.item.review","summary":"Proposed items waiting for a person.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_memory_review_queue","x-rivier-graphql":"Query.memoryItemReview","x-rivier-sdk":"memory.item.review","x-rivier-cli":"memory item review","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/search":{"get":{"operationId":"memory.item.search","summary":"Search memory by meaning.","tags":["memory"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":500}},{"name":"level","in":"query","required":false,"schema":{"type":"string","enum":["account","organization","project","product","agent"]}},{"name":"scopeId","in":"query","required":false,"schema":{"type":"string"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}},{"name":"agentId","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_memory_search","x-rivier-graphql":"Query.memoryItemSearch","x-rivier-sdk":"memory.item.search","x-rivier-cli":"memory item search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/{id}/activate":{"post":{"operationId":"memory.item.activate","summary":"Accept a proposed item.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_memory_activate","x-rivier-graphql":"Mutation.memoryItemActivate","x-rivier-sdk":"memory.item.activate","x-rivier-cli":"memory item activate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"why":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/{id}/delete":{"post":{"operationId":"memory.item.delete","summary":"Delete an item.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryItemDelete","x-rivier-sdk":"memory.item.delete","x-rivier-cli":"memory item delete","x-rivier-events":["memory.item.deleted"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"why":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/memory/{id}/expire":{"post":{"operationId":"memory.item.expire","summary":"Expire an item.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryItemExpire","x-rivier-sdk":"memory.item.expire","x-rivier-cli":"memory item expire","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"why":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/message-events":{"get":{"operationId":"inbox.messageEvent.list","summary":"The message event stream from a cursor: every state change on every channel, oldest first.","tags":["inbox"],"parameters":[{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageEventList","x-rivier-sdk":"inbox.messageEvent.list","x-rivier-cli":"inbox message event list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"number"},"messageId":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]},"direction":{"type":"string","enum":["out","in"]},"to":{"type":"string"},"from":{"type":"string"},"state":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]},"provider":{"type":"string"},"at":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"applied":{"type":"boolean"},"skipped":{"type":["string","null"]}},"required":["seq","messageId","channel","direction","to","from","state","provider","at","code","detail","applied","skipped"],"additionalProperties":false}},"next":{"type":"number"}},"required":["events","next"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/message-events/stream":{"get":{"operationId":"inbox.messageEvent.stream","summary":"A server-sent stream of message events; reconnect with Last-Event-ID to resume.","tags":["inbox"],"parameters":[{"name":"after","in":"query","required":false,"schema":{"type":"integer","minimum":0}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]}}],"x-rivier-scope":"inbox:read","x-rivier-sdk":"inbox.messageEvent.stream","x-rivier-cli":"inbox message event stream","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages":{"get":{"operationId":"inbox.message.list","summary":"Search the message log across email, SMS, WhatsApp and voice: by address, message id or provider id, channel, state, error code and time. Newest first, a cursor for more.","tags":["inbox"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]}},{"name":"code","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["out","in"]}},{"name":"since","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"until","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"failed","in":"query","required":false,"schema":{"type":"string","pattern":"^(true|false)$"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":100}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageList","x-rivier-sdk":"inbox.message.list","x-rivier-cli":"inbox message list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]},"direction":{"type":"string","enum":["out","in"]},"provider":{"type":"string"},"providerId":{"type":["string","null"]},"to":{"type":"string"},"from":{"type":"string"},"state":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"units":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"stateAt":{"type":"string"},"explanation":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"cause":{"type":"string"},"fix":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","channels","cause","fix","retryable"],"additionalProperties":false},{"type":"null"}]}},"required":["id","channel","direction","provider","providerId","to","from","state","code","detail","units","createdAt","updatedAt","stateAt","explanation"],"additionalProperties":false}},"next":{"type":["string","null"]}},"required":["messages","next"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/dead-letters":{"get":{"operationId":"inbox.message.deadLetters","summary":"Webhook deliveries about messages that ran out of attempts. Replay one with keys.delivery.replay.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageDeadLetters","x-rivier-sdk":"inbox.message.deadLetters","x-rivier-cli":"inbox message dead letters","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deadLetters":{"type":"array","items":{"type":"object","properties":{"delivery":{"type":"object","properties":{},"additionalProperties":true},"eventType":{"type":["string","null"]},"messageId":{"type":["string","null"]}},"required":["delivery","eventType","messageId"],"additionalProperties":false}}},"required":["deadLetters"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/errors":{"get":{"operationId":"inbox.messageError.list","summary":"The error catalogue: every provider or mail-server code with its plain cause and fix.","tags":["inbox"],"parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageErrorList","x-rivier-sdk":"inbox.messageError.list","x-rivier-cli":"inbox message error list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"cause":{"type":"string"},"fix":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","channels","cause","fix","retryable"],"additionalProperties":false}}},"required":["errors"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/errors/{code}":{"get":{"operationId":"inbox.messageError.explain","summary":"The plain cause and fix for one code (a mail status such as 5.1.1 or a phone-network code).","tags":["inbox"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageErrorExplain","x-rivier-sdk":"inbox.messageError.explain","x-rivier-cli":"inbox message error explain","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"cause":{"type":"string"},"fix":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","channels","cause","fix","retryable"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/retention":{"get":{"operationId":"inbox.messageRetention.get","summary":"How long the log keeps messages for this project.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageRetentionGet","x-rivier-sdk":"inbox.messageRetention.get","x-rivier-cli":"inbox message retention get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":["number","null"]},"defaultDays":{"type":"number"}},"required":["days","defaultDays"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.messageRetention.set","summary":"Set how many days the log keeps messages (1 to 3650), or null for the deployment default.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMessageRetentionSet","x-rivier-sdk":"inbox.messageRetention.set","x-rivier-cli":"inbox message retention set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"anyOf":[{"type":"integer","minimum":1,"maximum":3650},{"type":"null"}]}},"required":["days"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":["number","null"]},"defaultDays":{"type":"number"}},"required":["days","defaultDays"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/test-event":{"post":{"operationId":"inbox.message.testEvent","summary":"Send the project's subscribers a signed test announcement, to check an endpoint receives it and verifies the signature.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMessageTestEvent","x-rivier-sdk":"inbox.message.testEvent","x-rivier-cli":"inbox message test event","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"seq":{"type":"number"}},"required":["seq"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/usage":{"get":{"operationId":"inbox.message.usage","summary":"Messages and billable units this period by channel and direction, for plan metering. Defaults to the current calendar month.","tags":["inbox"],"parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"until","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageUsage","x-rivier-sdk":"inbox.message.usage","x-rivier-cli":"inbox message usage","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"since":{"type":"string"},"until":{"type":"string"},"usage":{"type":"array","items":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]},"direction":{"type":"string","enum":["out","in"]},"messages":{"type":"number"},"units":{"type":"number"}},"required":["channel","direction","messages","units"],"additionalProperties":false}}},"required":["since","until","usage"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/{id}":{"get":{"operationId":"inbox.message.get","summary":"One message with its timeline of provider events, the plain cause of any error and what to do about it. The body of the message is never part of the log.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMessageGet","x-rivier-sdk":"inbox.message.get","x-rivier-cli":"inbox message get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"channel":{"type":"string","enum":["email","sms","mms","whatsapp","voice","verify","lookup"]},"direction":{"type":"string","enum":["out","in"]},"provider":{"type":"string"},"providerId":{"type":["string","null"]},"to":{"type":"string"},"from":{"type":"string"},"state":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"units":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"stateAt":{"type":"string"}},"required":["id","channel","direction","provider","providerId","to","from","state","code","detail","units","createdAt","updatedAt","stateAt"],"additionalProperties":false},"explanation":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"cause":{"type":"string"},"fix":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","channels","cause","fix","retryable"],"additionalProperties":false},{"type":"null"}]},"timeline":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"number"},"state":{"type":"string","enum":["queued","accepted","sent","deferred","delivered","read","undelivered","failed","bounced","complained","suppressed","received","expired","canceled"]},"provider":{"type":"string"},"at":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"applied":{"type":"boolean"},"skipped":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}},"explanation":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"channels":{"type":"array","items":{"type":"string"}},"cause":{"type":"string"},"fix":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","channels","cause","fix","retryable"],"additionalProperties":false},{"type":"null"}]}},"required":["seq","state","provider","at","code","detail","applied","skipped","data","explanation"],"additionalProperties":false}}},"required":["message","explanation","timeline"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/messages/{id}/replay":{"post":{"operationId":"inbox.message.replay","summary":"Send a message's announcements to the project's webhook subscribers again (every endpoint, or one).","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMessageReplay","x-rivier-sdk":"inbox.message.replay","x-rivier-cli":"inbox message replay","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"endpointId":{"type":"string","format":"uuid"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"number"}},"required":["queued"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/audio/speech":{"post":{"operationId":"models.speech.create","summary":"Text spoken in a voice of the voice catalogue (the voices live sessions use), through a speech route: 16-bit 24 kHz PCM, a WAV file, 8 kHz mu-law for a telephone line, or Ogg Opus where the deployment has the encoder. Spoken a sentence at a time: stream to hear the first sentence before the rest is made, or ask for the sentences apart with their text to cache and reorder them. Each sentence is a call under the project's limits.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-sdk":"models.speech.create","x-rivier-cli":"models speech create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","pattern":"^[a-z][a-z0-9._-]{0,39}$","description":"A speech route this project can call (GET /models/v1/models, kind speech)"},"input":{"type":"string","minLength":1,"maxLength":5000},"voice":{"type":"string","minLength":1,"maxLength":40,"description":"A voice id from GET /voice/catalogue, the same voices live sessions use"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"style":{"type":"string","maxLength":200,"description":"How to say it, in words: \"warmly\", \"slowly and clearly\""},"format":{"type":"string","enum":["pcm","wav","mulaw","opus"],"default":"wav","description":"pcm: 16-bit 24 kHz mono; wav: the same in a WAV file; mulaw: 8 kHz for a telephone line; opus: Ogg Opus"},"stream":{"type":"boolean","default":false,"description":"Send the sound as each sentence is spoken"},"sentences":{"type":"boolean","default":false,"description":"Answer each sentence apart, as JSON with its text and its sound, so it can be cached and reordered"},"purpose":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,39}$"},{"type":"null"}]}},"required":["model","input","voice"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/audio/transcriptions":{"post":{"operationId":"models.transcription.create","summary":"The words of a recording (base64 sound, or a sound file of the project's drive) in segments with a start and end in seconds, with the language found; names and terms in the word list are spelled as given. Runs on a route whose models take sound, under the project's limits.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-graphql":"Mutation.modelsTranscriptionCreate","x-rivier-sdk":"models.transcription.create","x-rivier-cli":"models transcription create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","pattern":"^[a-z][a-z0-9._-]{0,39}$","description":"A route whose models take sound"},"audio":{"type":"object","properties":{"data":{"type":"string","minLength":16,"maxLength":22000000,"description":"base64"},"format":{"type":"string","minLength":2,"maxLength":12,"description":"wav, mp3, aac, ogg, flac, webm, m4a"}},"required":["data","format"],"additionalProperties":false},"asset":{"type":"string","format":"uuid","description":"A sound file of the project's drive, in place of audio"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$","description":"The language spoken, when known"},"words":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":200,"description":"Names and terms to spell as given"},"purpose":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,39}$"},{"type":"null"}]}},"required":["model"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"transcription"},"language":{"type":["string","null"]},"text":{"type":"string"},"segments":{"type":"array","items":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"text":{"type":"string"}},"required":["start","end","text"],"additionalProperties":false}},"cost":{"type":"object","properties":{"usd":{"type":"number"}},"required":["usd"],"additionalProperties":false}},"required":["object","language","text","segments"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/batches":{"post":{"operationId":"models.batch.create","summary":"Many completions, embeddings or speech requests of one kind, run in the background under the project's limits. The same idempotency key answers the batch it started, so a retry never starts a second one. models.batch.completed reaches the project's webhooks when it ends.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-graphql":"Mutation.modelsBatchCreate","x-rivier-sdk":"models.batch.create","x-rivier-cli":"models batch create","x-rivier-events":["models.batch.completed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["chat","embeddings","speech"]},"requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80,"description":"Your id for the request; the result carries it"},"body":{"type":"object","additionalProperties":{}}},"required":["id","body"],"additionalProperties":false},"minItems":1,"maxItems":500},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200,"description":"The same key answers the batch it started, so a retry never starts a second one"},"purpose":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,39}$"},{"type":"null"}]}},"required":["kind","requests","idempotencyKey"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"batch"},"kind":{"type":"string"},"state":{"type":"string","enum":["queued","running","completed","cancelled","failed"]},"idempotencyKey":{"type":"string"},"counts":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"],"additionalProperties":false},"costUsd":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"endedAt":{"type":["string","null"]}},"required":["id","object","kind","state","idempotencyKey","counts","costUsd","createdAt","startedAt","endedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"models.batch.list","summary":"The project's batches, newest first.","tags":["models"],"parameters":[],"x-rivier-scope":"models:read","x-rivier-graphql":"Query.modelsBatchList","x-rivier-sdk":"models.batch.list","x-rivier-cli":"models batch list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"batch"},"kind":{"type":"string"},"state":{"type":"string","enum":["queued","running","completed","cancelled","failed"]},"idempotencyKey":{"type":"string"},"counts":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"],"additionalProperties":false},"costUsd":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"endedAt":{"type":["string","null"]}},"required":["id","object","kind","state","idempotencyKey","counts","costUsd","createdAt","startedAt","endedAt"],"additionalProperties":true}}},"required":["object","data"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/batches/{id}":{"get":{"operationId":"models.batch.get","summary":"Where a batch stands: its state and how many requests are done or failed.","tags":["models"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"models:read","x-rivier-graphql":"Query.modelsBatchGet","x-rivier-sdk":"models.batch.get","x-rivier-cli":"models batch get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"batch"},"kind":{"type":"string"},"state":{"type":"string","enum":["queued","running","completed","cancelled","failed"]},"idempotencyKey":{"type":"string"},"counts":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"],"additionalProperties":false},"costUsd":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"endedAt":{"type":["string","null"]}},"required":["id","object","kind","state","idempotencyKey","counts","costUsd","createdAt","startedAt","endedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/batches/{id}/cancel":{"post":{"operationId":"models.batch.cancel","summary":"Stop a batch; requests not yet run are not run, and what was answered is kept.","tags":["models"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"models:write","x-rivier-graphql":"Mutation.modelsBatchCancel","x-rivier-sdk":"models.batch.cancel","x-rivier-cli":"models batch cancel","x-rivier-events":["models.batch.completed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"batch"},"kind":{"type":"string"},"state":{"type":"string","enum":["queued","running","completed","cancelled","failed"]},"idempotencyKey":{"type":"string"},"counts":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"],"additionalProperties":false},"costUsd":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"endedAt":{"type":["string","null"]}},"required":["id","object","kind","state","idempotencyKey","counts","costUsd","createdAt","startedAt","endedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/batches/{id}/results":{"get":{"operationId":"models.batch.results","summary":"The result of each request of a batch so far: its answer, or its error with the reason and whether sending it again can help.","tags":["models"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"models:read","x-rivier-graphql":"Query.modelsBatchResults","x-rivier-sdk":"models.batch.results","x-rivier-cli":"models batch results","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"batch":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"batch"},"kind":{"type":"string"},"state":{"type":"string","enum":["queued","running","completed","cancelled","failed"]},"idempotencyKey":{"type":"string"},"counts":{"type":"object","properties":{"total":{"type":"number"},"done":{"type":"number"},"failed":{"type":"number"}},"required":["total","done","failed"],"additionalProperties":false},"costUsd":{"type":"number"},"createdAt":{"type":"string"},"startedAt":{"type":["string","null"]},"endedAt":{"type":["string","null"]}},"required":["id","object","kind","state","idempotencyKey","counts","costUsd","createdAt","startedAt","endedAt"],"additionalProperties":true},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ok":{"type":"boolean"}},"required":["id","ok"],"additionalProperties":true}}},"required":["batch","results"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/chat/completions":{"post":{"operationId":"models.completion.create","summary":"Ask a model through one of the project's routes. The body and the answer follow the OpenAI chat completions format; `model` is a route name from the model list, never a model's own name. With `stream: true` the answer arrives as server-sent events. Uses the project's token allowance. The answer carries `cost.usd`, what the call cost; a stream carries it in a last piece when `stream_options.include_usage` is set. `purpose` is a short tag of your own that the day's usage is counted under.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-sdk":"models.completion.create","x-rivier-cli":"models completion create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1,"maxLength":80},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","minLength":1,"maxLength":20}},"required":["role"],"additionalProperties":true},"minItems":1,"maxItems":2000},"stream":{"type":["boolean","null"]},"n":{"anyOf":[{"type":"integer"},{"type":"null"}]},"max_tokens":{"anyOf":[{"type":"integer","minimum":1,"maximum":65536},{"type":"null"}]},"max_completion_tokens":{"anyOf":[{"type":"integer","minimum":1,"maximum":65536},{"type":"null"}]},"stream_options":{"anyOf":[{"type":"object","properties":{"include_usage":{"type":["boolean","null"]}},"additionalProperties":true},{"type":"null"}]},"purpose":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,39}$"},{"type":"null"}]}},"required":["model","messages"],"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/embeddings":{"post":{"operationId":"models.embedding.create","summary":"Embeddings for one text or a list, in the OpenAI embeddings format. `model` is an embeddings route name from the model list. Say `input_type: \"query\"` for a search query; texts to be searched are the default. Where the route takes pictures, an item may be `{ type: \"image\", mime, data }` with the picture in base64. The answer carries `cost.usd`; `purpose` is a short tag of your own that the day's usage is counted under.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-graphql":"Mutation.modelsEmbeddingCreate","x-rivier-sdk":"models.embedding.create","x-rivier-cli":"models embedding create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","minLength":1,"maxLength":80},"input":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"type":{"type":"string","const":"image"},"mime":{"type":"string","minLength":3,"maxLength":40},"data":{"type":"string","minLength":1,"maxLength":5600000,"pattern":"^[A-Za-z0-9+/]+={0,2}$"}},"required":["type","mime","data"],"additionalProperties":false},{"type":"array","items":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"type":{"type":"string","const":"image"},"mime":{"type":"string","minLength":3,"maxLength":40},"data":{"type":"string","minLength":1,"maxLength":5600000,"pattern":"^[A-Za-z0-9+/]+={0,2}$"}},"required":["type","mime","data"],"additionalProperties":false}]},"minItems":1,"maxItems":100}]},"dimensions":{"anyOf":[{"type":"integer","minimum":1,"maximum":8192},{"type":"null"}]},"encoding_format":{"anyOf":[{"type":"string","enum":["float","base64"]},{"type":"null"}]},"input_type":{"anyOf":[{"type":"string","enum":["query","passage","document"]},{"type":"null"}]},"purpose":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,39}$"},{"type":"null"}]}},"required":["model","input"],"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"object":{"type":"string","const":"embedding"},"index":{"type":"number"},"embedding":{"anyOf":[{"type":"array","items":{"type":"number"}},{"type":"string"}]}},"required":["object","index","embedding"],"additionalProperties":false}},"model":{"type":"string"},"usage":{"type":"object","properties":{"prompt_tokens":{"type":"number"},"total_tokens":{"type":"number"}},"required":["prompt_tokens","total_tokens"],"additionalProperties":false},"cost":{"type":"object","properties":{"usd":{"type":"number"}},"required":["usd"],"additionalProperties":false}},"required":["object","data","model","usage","cost"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/models":{"get":{"operationId":"models.model.list","summary":"The route names this project can call, whether each answers completions, embeddings or speech, and what data sent on it is subject to: whether no model behind it trains on it, the regions it may be processed in, and how long the supplier keeps it as Rivier's terms state it. Which model stands behind a name is set by Rivier and can change without notice; the name stays.","tags":["models"],"parameters":[],"x-rivier-scope":"models:read","x-rivier-graphql":"Query.modelsModelList","x-rivier-sdk":"models.model.list","x-rivier-cli":"models model list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"model"},"created":{"type":"number"},"owned_by":{"type":"string"},"kind":{"type":"string","enum":["chat","embedding","speech"]},"data_terms":{"type":"object","properties":{"no_training":{"type":"boolean"},"regions":{"type":"array","items":{"type":"string"}},"retention":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},{"type":"null"}]},"available":{"type":"boolean"}},"required":["no_training","regions","retention","available"],"additionalProperties":false}},"required":["id","object","created","owned_by","kind","data_terms"],"additionalProperties":true}},"data_policy":{"type":"object","properties":{"require_no_training":{"type":"boolean"},"regions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["require_no_training","regions"],"additionalProperties":false}},"required":["object","data","data_policy"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/settings":{"get":{"operationId":"models.settings.get","summary":"The project's own model settings: the daily and monthly spending limits its people set, the route names of its own, and the routes a name may stand on.","tags":["models"],"parameters":[],"x-rivier-scope":"models:read","x-rivier-graphql":"Query.modelsSettingsGet","x-rivier-sdk":"models.settings.get","x-rivier-cli":"models settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"model_settings"},"dailyUsd":{"type":["number","null"]},"monthlyUsd":{"type":["number","null"]},"routes":{"type":"object","additionalProperties":{"type":"object","properties":{"as":{"type":"string"},"dims":{"type":"number"},"maxOutputTokens":{"type":"number"},"available":{"type":"boolean"}},"required":["as","available"],"additionalProperties":false}},"choices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["chat","embedding","speech"]}},"required":["id","kind"],"additionalProperties":false}},"dataPolicy":{"anyOf":[{"type":"object","properties":{"requireNoTraining":{"type":"boolean"},"regions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["requireNoTraining","regions"],"additionalProperties":false},{"type":"null"}]}},"required":["object","dailyUsd","monthlyUsd","routes","choices","dataPolicy"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"models.settings.set","summary":"Set the project's own spending limits and route names. A limit is at or below what the project may spend already; null removes it. A route name of the project's own stands on a route the project is given (`as`), with its own vector size or answer length. Only a signed-in person who manages the project can call this; a key reads the settings.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-graphql":"Mutation.modelsSettingsSet","x-rivier-sdk":"models.settings.set","x-rivier-cli":"models settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"routes":{"anyOf":[{"type":"object","additionalProperties":{"type":"object","properties":{"as":{"type":"string","pattern":"^[a-z][a-z0-9._-]{0,39}$"},"dims":{"type":"integer","minimum":1,"maximum":8192},"maxOutputTokens":{"type":"integer","minimum":1,"maximum":65536}},"required":["as"],"additionalProperties":false},"propertyNames":{"pattern":"^[a-z][a-z0-9._-]{0,39}$"}},{"type":"null"}]},"dailyUsd":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000},{"type":"null"}]},"monthlyUsd":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000},{"type":"null"}]},"dataPolicy":{"anyOf":[{"type":"object","properties":{"requireNoTraining":{"type":"boolean","default":false},"regions":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20},{"type":"null"}],"default":null}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"model_settings"},"dailyUsd":{"type":["number","null"]},"monthlyUsd":{"type":["number","null"]},"routes":{"type":"object","additionalProperties":{"type":"object","properties":{"as":{"type":"string"},"dims":{"type":"number"},"maxOutputTokens":{"type":"number"},"available":{"type":"boolean"}},"required":["as","available"],"additionalProperties":false}},"choices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["chat","embedding","speech"]}},"required":["id","kind"],"additionalProperties":false}},"dataPolicy":{"anyOf":[{"type":"object","properties":{"requireNoTraining":{"type":"boolean"},"regions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["requireNoTraining","regions"],"additionalProperties":false},{"type":"null"}]}},"required":["object","dailyUsd","monthlyUsd","routes","choices","dataPolicy"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/translations":{"post":{"operationId":"models.translation.create","summary":"One text or a list in another language, keeping or rendering the terms of a term list as given; terms the answer did not honour are named in terms_missed. Runs on a completions route, under the project's limits.","tags":["models"],"parameters":[],"x-rivier-scope":"models:write","x-rivier-graphql":"Mutation.modelsTranslationCreate","x-rivier-sdk":"models.translation.create","x-rivier-cli":"models translation create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","pattern":"^[a-z][a-z0-9._-]{0,39}$","description":"A completions route"},"text":{"anyOf":[{"type":"string","minLength":1,"maxLength":20000},{"type":"array","items":{"type":"string","minLength":1,"maxLength":20000},"minItems":1,"maxItems":50}]},"source":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"target":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"terms":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string","minLength":1,"maxLength":200},"target":{"type":"string","minLength":1,"maxLength":200},"keep":{"type":"boolean"}},"required":["source"],"additionalProperties":false},"maxItems":200,"description":"A term kept as it is (keep) or always rendered as target"},"purpose":{"anyOf":[{"type":"string","pattern":"^[a-z0-9][a-z0-9._-]{0,39}$"},{"type":"null"}]}},"required":["model","text","target"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"translation"},"source":{"type":["string","null"]},"target":{"type":"string"},"translations":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"terms_missed":{"type":"array","items":{"type":"string"}},"cost":{"type":"object","properties":{"usd":{"type":"number"}},"required":["usd"],"additionalProperties":false}},"required":["object","source","target","translations","terms_missed"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/models/v1/usage":{"get":{"operationId":"models.usage.get","summary":"What the project has used of the model service: its token allowances this period, how far it is into its spending limits for today and this month, as a share, and today's calls, tokens and cost by route and purpose.","tags":["models"],"parameters":[],"x-rivier-scope":"models:read","x-rivier-graphql":"Query.modelsUsageGet","x-rivier-sdk":"models.usage.get","x-rivier-cli":"models usage get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"usage"},"at":{"type":"string"},"service":{"type":"object","properties":{"on":{"type":"boolean"},"message":{"type":"string"}},"required":["on"],"additionalProperties":false},"tokens":{"type":"array","items":{"type":"object","properties":{"meter":{"type":"string"},"label":{"type":"string"},"period":{"type":"string"},"resetsAt":{"type":["string","null"]},"included":{"type":["number","null"]},"used":{"type":"number"},"remaining":{"type":["number","null"]}},"required":["meter","label","period","resetsAt","included","used","remaining"],"additionalProperties":true}},"budget":{"type":"object","properties":{"day":{"type":"object","properties":{"used":{"type":["number","null"]},"resetsAt":{"type":"string"}},"required":["used","resetsAt"],"additionalProperties":false},"month":{"type":"object","properties":{"used":{"type":["number","null"]},"resetsAt":{"type":"string"}},"required":["used","resetsAt"],"additionalProperties":false}},"required":["day","month"],"additionalProperties":false},"today":{"type":"object","properties":{"costUsd":{"type":"number"},"routes":{"type":"array","items":{"type":"object","properties":{"route":{"type":"string"},"purpose":{"type":"string"},"calls":{"type":"number"},"tokensIn":{"type":"number"},"tokensOut":{"type":"number"},"costUsd":{"type":"number"}},"required":["route","purpose","calls","tokensIn","tokensOut","costUsd"],"additionalProperties":false}}},"required":["costUsd","routes"],"additionalProperties":false}},"required":["object","at","service","tokens","budget","today"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/monitor":{"get":{"operationId":"analytics.monitor.list","summary":"Watched questions.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_monitor","x-rivier-graphql":"Query.analyticsMonitorList","x-rivier-sdk":"analytics.monitor.list","x-rivier-cli":"analytics monitor list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"analytics.monitor.create","summary":"Watch a question and be told when its answer changes.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsMonitorCreate","x-rivier-sdk":"analytics.monitor.create","x-rivier-cli":"analytics monitor create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":1000},"webhookUrl":{"type":"string","format":"uri"}},"required":["query"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/monitor/{id}":{"get":{"operationId":"analytics.monitor.get","summary":"One watched question.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsMonitorGet","x-rivier-sdk":"analytics.monitor.get","x-rivier-cli":"analytics monitor get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"analytics.monitor.delete","summary":"Stop watching.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsMonitorDelete","x-rivier-sdk":"analytics.monitor.delete","x-rivier-cli":"analytics monitor delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/feed":{"post":{"operationId":"campaigns.notifyFeed.add","summary":"Put a notice in a person's in-app feed.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_feed_add","x-rivier-graphql":"Mutation.campaignsNotifyFeedAdd","x-rivier-sdk":"campaigns.notifyFeed.add","x-rivier-cli":"campaigns notify feed add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","maxLength":1000,"default":""},"url":{"type":"string","format":"uri","maxLength":1000},"icon":{"type":"string","format":"uri","maxLength":1000},"userRef":{"type":"string","minLength":1,"maxLength":200,"description":"Your own id for the person; Rivier keeps it as given and never shows it to anyone else"},"category":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,39}$","default":"general"},"data":{"type":"object","additionalProperties":{}}},"required":["title","userRef"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"campaigns.notifyFeed.list","summary":"A person's notices, newest first, with the unread count.","tags":["campaigns"],"parameters":[{"name":"userRef","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Your own id for the person; Rivier keeps it as given and never shows it to anyone else"}},{"name":"unread","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_feed","x-rivier-graphql":"Query.campaignsNotifyFeedList","x-rivier-sdk":"campaigns.notifyFeed.list","x-rivier-cli":"campaigns notify feed list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/feed/read":{"post":{"operationId":"campaigns.notifyFeed.read","summary":"Mark some or all of a person's notices read.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_feed_read","x-rivier-graphql":"Mutation.campaignsNotifyFeedRead","x-rivier-sdk":"campaigns.notifyFeed.read","x-rivier-cli":"campaigns notify feed read","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userRef":{"type":"string","minLength":1,"maxLength":200,"description":"Your own id for the person; Rivier keeps it as given and never shows it to anyone else"},"ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200},"all":{"type":"boolean"}},"required":["userRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/feed/{id}":{"delete":{"operationId":"campaigns.notifyFeed.remove","summary":"Remove one notice from a feed.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_feed_remove","x-rivier-graphql":"Mutation.campaignsNotifyFeedRemove","x-rivier-sdk":"campaigns.notifyFeed.remove","x-rivier-cli":"campaigns notify feed remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/preferences/{userRef}":{"get":{"operationId":"campaigns.notifyPrefs.get","summary":"A person's notification choices: channel order, address, number, language, muted categories, and whether the feed is on.","tags":["campaigns"],"parameters":[{"name":"userRef","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_preferences","x-rivier-graphql":"Query.campaignsNotifyPrefsGet","x-rivier-sdk":"campaigns.notifyPrefs.get","x-rivier-cli":"campaigns notify prefs get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"campaigns.notifyPrefs.put","summary":"Set a person's notification choices.","tags":["campaigns"],"parameters":[{"name":"userRef","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_preferences_put","x-rivier-graphql":"Mutation.campaignsNotifyPrefsPut","x-rivier-sdk":"campaigns.notifyPrefs.put","x-rivier-cli":"campaigns notify prefs put","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channels":{"type":"array","items":{"type":"string","enum":["push","email","sms","whatsapp"]},"maxItems":4,"default":["push","email"]},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}],"default":null},"phone":{"anyOf":[{"type":"string","pattern":"^\\+\\d{6,15}$"},{"type":"null"}],"default":null},"language":{"anyOf":[{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},{"type":"null"}],"default":null},"muted":{"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,39}$"},"maxItems":50,"default":[]},"feed":{"type":"boolean","default":true}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/push/key":{"get":{"operationId":"campaigns.notifyPush.key","summary":"The public key a page passes to pushManager.subscribe as applicationServerKey.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_push_key","x-rivier-graphql":"Query.campaignsNotifyPushKey","x-rivier-sdk":"campaigns.notifyPush.key","x-rivier-cli":"campaigns notify push key","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"publicKey":{"type":"string"}},"required":["publicKey"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/push/send":{"post":{"operationId":"campaigns.notifyPush.send","summary":"Push a notice to a person's browsers (or one subscription): title, body, an address to open, a tag that replaces an earlier notice. A subscription the push service says has ended is marked and raised as campaigns.push.expired.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_push_send","x-rivier-graphql":"Mutation.campaignsNotifyPushSend","x-rivier-sdk":"campaigns.notifyPush.send","x-rivier-cli":"campaigns notify push send","x-rivier-events":["campaigns.push.expired"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","maxLength":1000,"default":""},"url":{"type":"string","format":"uri","maxLength":1000},"icon":{"type":"string","format":"uri","maxLength":1000},"userRef":{"type":"string","minLength":1,"maxLength":200,"description":"Your own id for the person; Rivier keeps it as given and never shows it to anyone else"},"subscriptionId":{"type":"string","format":"uuid"},"tag":{"type":"string","maxLength":64,"description":"A later notice with the same tag replaces this one on the device"},"data":{"type":"object","additionalProperties":{}},"ttlSeconds":{"type":"integer","minimum":0,"maximum":2419200,"default":86400},"urgency":{"type":"string","enum":["very-low","low","normal","high"],"default":"normal"},"topic":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,32}$","description":"A push waiting with the same topic is replaced at the push service"}},"required":["title"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/push/subscriptions":{"post":{"operationId":"campaigns.notifyPush.subscribe","summary":"Keep a browser's push subscription under your own id for the person. Only the browsers' push services are accepted as endpoints.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_push_subscribe","x-rivier-graphql":"Mutation.campaignsNotifyPushSubscribe","x-rivier-sdk":"campaigns.notifyPush.subscribe","x-rivier-cli":"campaigns notify push subscribe","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userRef":{"type":"string","minLength":1,"maxLength":200,"description":"Your own id for the person; Rivier keeps it as given and never shows it to anyone else"},"subscription":{"type":"object","properties":{"endpoint":{"type":"string","format":"uri","maxLength":1000},"keys":{"type":"object","properties":{"p256dh":{"type":"string","minLength":80,"maxLength":120},"auth":{"type":"string","minLength":16,"maxLength":40}},"required":["p256dh","auth"],"additionalProperties":false}},"required":["endpoint","keys"],"additionalProperties":false,"description":"The PushSubscription a page got from pushManager.subscribe, as its toJSON() gives it"},"userAgent":{"type":"string","maxLength":300}},"required":["userRef","subscription"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"campaigns.notifyPush.list","summary":"A person's push subscriptions, with when each last took a push and whether it has ended.","tags":["campaigns"],"parameters":[{"name":"userRef","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_push_subscriptions","x-rivier-graphql":"Query.campaignsNotifyPushList","x-rivier-sdk":"campaigns.notifyPush.list","x-rivier-cli":"campaigns notify push list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"subscriptions":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["subscriptions"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/push/subscriptions/{id}":{"delete":{"operationId":"campaigns.notifyPush.remove","summary":"Forget a push subscription.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_push_unsubscribe","x-rivier-graphql":"Mutation.campaignsNotifyPushRemove","x-rivier-sdk":"campaigns.notifyPush.remove","x-rivier-cli":"campaigns notify push remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/send":{"post":{"operationId":"campaigns.notify.send","summary":"Tell a person something: it goes in their feed, then each channel in their order (push, email, text, WhatsApp) is tried until one carries it, falling back when one fails. A template set chooses the words in their language. The same idempotency key sends once.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_send","x-rivier-graphql":"Mutation.campaignsNotifySend","x-rivier-sdk":"campaigns.notify.send","x-rivier-cli":"campaigns notify send","x-rivier-events":["campaigns.notification.sent","campaigns.notification.failed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userRef":{"type":"string","minLength":1,"maxLength":200,"description":"Your own id for the person; Rivier keeps it as given and never shows it to anyone else"},"category":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,39}$","default":"general"},"template":{"type":"string","pattern":"^[a-z0-9][a-z0-9_.-]{0,59}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"data":{"type":"object","additionalProperties":{},"default":{}},"content":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","maxLength":1000,"default":""},"url":{"type":"string","format":"uri","maxLength":1000},"icon":{"type":"string","format":"uri","maxLength":1000}},"required":["title"],"additionalProperties":false,"description":"The words, when no template is named"},"channels":{"type":"array","items":{"type":"string","enum":["push","email","sms","whatsapp"]},"maxItems":4,"description":"Try these channels in this order instead of the person's"},"all":{"type":"boolean","default":false,"description":"Send on every channel in the order instead of stopping at the first that carries it"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["userRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/templates":{"get":{"operationId":"campaigns.notifyTemplate.list","summary":"The project's notification template sets, with their languages.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_templates","x-rivier-graphql":"Query.campaignsNotifyTemplateList","x-rivier-sdk":"campaigns.notifyTemplate.list","x-rivier-cli":"campaigns notify template list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["templates"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/templates/{name}":{"get":{"operationId":"campaigns.notifyTemplate.get","summary":"One template set: its fallback language and the words of each channel in each language.","tags":["campaigns"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":60}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_template","x-rivier-graphql":"Query.campaignsNotifyTemplateGet","x-rivier-sdk":"campaigns.notifyTemplate.get","x-rivier-cli":"campaigns notify template get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"campaigns.notifyTemplate.put","summary":"Create or replace a template set: one name, a fallback language, and per language the push and feed title and body, the mail subject and body, a text, and the approved WhatsApp template with the data keys that fill it.","tags":["campaigns"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":60}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_template_put","x-rivier-graphql":"Mutation.campaignsNotifyTemplatePut","x-rivier-sdk":"campaigns.notifyTemplate.put","x-rivier-cli":"campaigns notify template put","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fallback":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$","description":"The language used when the asked one and its base language are missing"},"languages":{"type":"object","additionalProperties":{"type":"object","properties":{"title":{"type":"string","maxLength":200,"description":"Push and feed title"},"body":{"type":"string","maxLength":1000,"description":"Push and feed body"},"url":{"type":"string","maxLength":1000},"subject":{"type":"string","maxLength":998,"description":"Mail subject"},"html":{"type":"string","maxLength":200000},"text":{"type":"string","maxLength":100000,"description":"Mail plain text; defaults to the body"},"sms":{"type":"string","maxLength":1600,"description":"A text message; defaults to the title and body"},"whatsappTemplate":{"type":"string","maxLength":80,"description":"The id of an approved WhatsApp template (POST /phone/templates) in this language"},"whatsappVariables":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":20,"description":"The data keys that fill the WhatsApp template's variables, in order"}},"additionalProperties":false},"propertyNames":{"pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}}},"required":["fallback","languages"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"campaigns.notifyTemplate.remove","summary":"Remove a template set.","tags":["campaigns"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":60}}],"x-rivier-scope":"campaigns:write","x-rivier-mcp":"rivier_notify_template_remove","x-rivier-graphql":"Mutation.campaignsNotifyTemplateRemove","x-rivier-sdk":"campaigns.notifyTemplate.remove","x-rivier-cli":"campaigns notify template remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/notify/templates/{name}/render":{"post":{"operationId":"campaigns.notifyTemplate.render","summary":"The words a template set gives in a language for some data: the asked language, then its base language, then the fallback; names with no value are listed.","tags":["campaigns"],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":60}}],"x-rivier-scope":"campaigns:read","x-rivier-mcp":"rivier_notify_template_render","x-rivier-graphql":"Query.campaignsNotifyTemplateRender","x-rivier-sdk":"campaigns.notifyTemplate.render","x-rivier-cli":"campaigns notify template render","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},"data":{"type":"object","additionalProperties":{},"default":{}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers":{"get":{"operationId":"voice.number.list","summary":"The project's phone numbers.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_personas_number_list","x-rivier-graphql":"Query.voiceNumberList","x-rivier-sdk":"voice.number.list","x-rivier-cli":"voice number list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.number.buy","summary":"Ask to buy a number. Nothing is bought: the price is recorded and a signed-in owner or manager confirms it.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_personas_number_buy","x-rivier-graphql":"Mutation.voiceNumberBuy","x-rivier-sdk":"voice.number.buy","x-rivier-cli":"voice number buy","x-rivier-events":["voice.number.bought"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/cost":{"get":{"operationId":"voice.number.cost","summary":"What the numbers cost this month.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceNumberCost","x-rivier-sdk":"voice.number.cost","x-rivier-cli":"voice number cost","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/search":{"get":{"operationId":"voice.number.search","summary":"Numbers available to buy.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_personas_number_search","x-rivier-graphql":"Query.voiceNumberSearch","x-rivier-sdk":"voice.number.search","x-rivier-cli":"voice number search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}":{"get":{"operationId":"voice.number.get","summary":"One number with its agents.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceNumberGet","x-rivier-sdk":"voice.number.get","x-rivier-cli":"voice number get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"voice.number.update","summary":"Change a number's settings.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceNumberUpdate","x-rivier-sdk":"voice.number.update","x-rivier-cli":"voice number update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}/agents":{"get":{"operationId":"voice.number.agents","summary":"The agents that answer a number.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceNumberAgents","x-rivier-sdk":"voice.number.agents","x-rivier-cli":"voice number agents","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}/agents/{agentId}":{"put":{"operationId":"voice.number.addAgent","summary":"Let an agent answer a number.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"agentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceNumberAddAgent","x-rivier-sdk":"voice.number.addAgent","x-rivier-cli":"voice number add agent","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"voice.number.removeAgent","summary":"Stop an agent answering a number.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"agentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceNumberRemoveAgent","x-rivier-sdk":"voice.number.removeAgent","x-rivier-cli":"voice number remove agent","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}/onboarding/{kind}":{"post":{"operationId":"voice.number.onboarding","summary":"Record a carrier onboarding step.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceNumberOnboarding","x-rivier-sdk":"voice.number.onboarding","x-rivier-cli":"voice number onboarding","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}/release":{"post":{"operationId":"voice.number.release","summary":"Give a number back.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_personas_number_release","x-rivier-graphql":"Mutation.voiceNumberRelease","x-rivier-sdk":"voice.number.release","x-rivier-cli":"voice number release","x-rivier-events":["voice.number.released"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}/resume":{"post":{"operationId":"voice.number.resume","summary":"Resume a number.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceNumberResume","x-rivier-sdk":"voice.number.resume","x-rivier-cli":"voice number resume","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/numbers/{id}/suspend":{"post":{"operationId":"voice.number.suspend","summary":"Pause a number.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceNumberSuspend","x-rivier-sdk":"voice.number.suspend","x-rivier-cli":"voice number suspend","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/oauth/apps":{"get":{"operationId":"keys.app.list","summary":"The third-party apps registered for the project.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-sdk":"keys.app.list","x-rivier-cli":"keys app list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"apps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string"},"name":{"type":"string"},"clientId":{"type":"string"},"redirectUris":{"type":"array","items":{"type":"string"}},"scopes":{"type":"array","items":{"type":"string"}},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"disabledAt":{"type":["string","null"]}},"required":["id","tenantId","name","clientId","redirectUris","scopes","createdBy","createdAt","disabledAt"],"additionalProperties":false}}},"required":["apps"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"keys.app.create","summary":"Register an app: its redirect addresses and the most it may ask for. A confidential client's secret is returned once.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.app.create","x-rivier-cli":"keys app create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"redirectUris":{"type":"array","items":{"type":"string","maxLength":500},"minItems":1,"maxItems":10},"scopes":{"type":"array","items":{"type":"string","maxLength":40},"minItems":1,"maxItems":60},"confidential":{"type":"boolean"}},"required":["name","redirectUris","scopes"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string"},"name":{"type":"string"},"clientId":{"type":"string"},"redirectUris":{"type":"array","items":{"type":"string"}},"scopes":{"type":"array","items":{"type":"string"}},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"disabledAt":{"type":["string","null"]},"clientSecret":{"type":"string"}},"required":["id","tenantId","name","clientId","redirectUris","scopes","createdBy","createdAt","disabledAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/oauth/apps/{id}":{"delete":{"operationId":"keys.app.remove","summary":"Switch an app off and end every grant it holds.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.app.remove","x-rivier-cli":"keys app remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"number"}},"required":["revoked"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/oauth/authorize":{"get":{"operationId":"keys.consent.get","summary":"What the consent screen shows: the app, the scopes (bounded by the person's role) and where it returns.","tags":["keys"],"parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","maxLength":100}},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","maxLength":500}},{"name":"response_type","in":"query","required":true,"schema":{"type":"string","maxLength":20}},{"name":"scope","in":"query","required":true,"schema":{"type":"string","maxLength":2000}},{"name":"state","in":"query","required":false,"schema":{"type":"string","maxLength":500}},{"name":"code_challenge","in":"query","required":true,"schema":{"type":"string","maxLength":200}},{"name":"code_challenge_method","in":"query","required":true,"schema":{"type":"string","maxLength":20}}],"x-rivier-scope":"keys:read","x-rivier-sdk":"keys.consent.get","x-rivier-cli":"keys consent get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"app":{"type":"object","properties":{"name":{"type":"string"},"clientId":{"type":"string"}},"required":["name","clientId"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"redirectUri":{"type":"string"},"state":{"type":"string"}},"required":["app","scopes","redirectUri"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"keys.consent.decide","summary":"The person's decision; answers the address to send the browser to.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:write","x-rivier-sdk":"keys.consent.decide","x-rivier-cli":"keys consent decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"type":"string","maxLength":100},"redirect_uri":{"type":"string","maxLength":500},"response_type":{"type":"string","maxLength":20},"scope":{"type":"string","maxLength":2000},"state":{"type":"string","maxLength":500},"code_challenge":{"type":"string","maxLength":200},"code_challenge_method":{"type":"string","maxLength":20},"approve":{"type":"boolean"}},"required":["client_id","redirect_uri","response_type","scope","code_challenge","code_challenge_method","approve"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"redirect":{"type":"string"}},"required":["redirect"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/oauth/grants":{"delete":{"operationId":"keys.grant.revoke","summary":"Take back what you handed out: every app, or one with ?appId.","tags":["keys"],"parameters":[{"name":"appId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:write","x-rivier-sdk":"keys.grant.revoke","x-rivier-cli":"keys grant revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"number"}},"required":["revoked"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/contacts/adopt":{"post":{"operationId":"workspace.orgLibraryContact.adopt","summary":"Take a contact another project shared into this one. It arrives without consent and a pending record is written; a person may carry the consent along when the organisation allows it.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibraryContactAdopt","x-rivier-sdk":"workspace.orgLibraryContact.adopt","x-rivier-cli":"workspace org library contact adopt","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromProject":{"type":"string","format":"uuid"},"contactId":{"type":"string","format":"uuid"},"consent":{"type":"string","enum":["rerequest","carry"],"default":"rerequest"}},"required":["fromProject","contactId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/items":{"post":{"operationId":"workspace.orgLibrary.publish","summary":"Share one of this project's templates, segments, forms or brand assets with the organisation's other projects. Sharing it again publishes a new version.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibraryPublish","x-rivier-sdk":"workspace.orgLibrary.publish","x-rivier-cli":"workspace org library publish","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["template","asset","segment","form"]},"ref":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","minLength":1,"maxLength":160},"folder":{"type":"string","maxLength":80},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20},"language":{"type":"string","maxLength":10},"note":{"type":"string","maxLength":300}},"required":["kind","ref"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"workspace.orgLibrary.list","summary":"What the organisation has shared: templates, brand assets, segments and forms, with folders and tags, and which ones this project already uses.","tags":["workspace"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["template","asset","segment","form"]}},{"name":"folder","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":40}},{"name":"language","in":"query","required":false,"schema":{"type":"string","maxLength":10}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgLibraryList","x-rivier-sdk":"workspace.orgLibrary.list","x-rivier-cli":"workspace org library list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/items/{id}":{"get":{"operationId":"workspace.orgLibrary.get","summary":"One shared item in full, with its versions and how many projects use it.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgLibraryGet","x-rivier-sdk":"workspace.orgLibrary.get","x-rivier-cli":"workspace org library get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.orgLibrary.update","summary":"Rename a shared item, move it to a folder, tag it or set its language.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibraryUpdate","x-rivier-sdk":"workspace.orgLibrary.update","x-rivier-cli":"workspace org library update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"folder":{"type":"string","maxLength":80},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20},"language":{"type":"string","maxLength":10}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.orgLibrary.remove","summary":"Take an item out of the organisation library. Copies already in projects are kept.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibraryRemove","x-rivier-sdk":"workspace.orgLibrary.remove","x-rivier-cli":"workspace org library remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/items/{id}/use":{"post":{"operationId":"workspace.orgLibrary.use","summary":"Use a shared item in this project: a copy that remembers where it came from. With refresh, bring an earlier copy up to the latest version.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibraryUse","x-rivier-sdk":"workspace.orgLibrary.use","x-rivier-cli":"workspace org library use","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"refresh":{"type":"boolean"},"name":{"type":"string","minLength":1,"maxLength":160}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/items/{id}/versions":{"post":{"operationId":"workspace.orgLibrary.newVersion","summary":"Publish a new version of a shared item from this project's changed copy. Projects using it are offered the update.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibraryNewVersion","x-rivier-sdk":"workspace.orgLibrary.newVersion","x-rivier-cli":"workspace org library new version","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ref":{"type":"string","minLength":1,"maxLength":120},"note":{"type":"string","maxLength":300}},"required":["ref"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/settings":{"get":{"operationId":"workspace.orgLibrarySettings.get","summary":"Whether this organisation lets a contact's consent travel with it between projects.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgLibrarySettingsGet","x-rivier-sdk":"workspace.orgLibrarySettings.get","x-rivier-cli":"workspace org library settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"workspace.orgLibrarySettings.set","summary":"Allow or forbid consent travelling with a contact between projects. A person sets this.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceOrgLibrarySettingsSet","x-rivier-sdk":"workspace.orgLibrarySettings.set","x-rivier-cli":"workspace org library settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"allowConsentCarry":{"type":"boolean"}},"required":["allowConsentCarry"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org-library/updates":{"get":{"operationId":"workspace.orgLibrary.updates","summary":"Copies in this project that are behind the organisation library.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgLibraryUpdates","x-rivier-sdk":"workspace.orgLibrary.updates","x-rivier-cli":"workspace org library updates","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/branding":{"get":{"operationId":"workspace.orgBranding.get","summary":"The branding documents are printed with: names, address, tax and registration numbers, bank details, footer, accent colour, font, sender name, reply-to, and whether a logo is set.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_branding_get","x-rivier-graphql":"Query.workspaceOrgBrandingGet","x-rivier-sdk":"workspace.orgBranding.get","x-rivier-cli":"branding get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"branding":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid"},"organizationName":{"type":"string"},"displayName":{"type":"string"},"legalName":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"bank":{"type":"string"},"footer":{"type":"string"},"accent":{"type":"string"},"font":{"type":"string"},"fromName":{"type":"string"},"replyTo":{"type":"string"},"language":{"type":"string"},"hasLogo":{"type":"boolean"},"logoMime":{"type":["string","null"]},"hasDarkLogo":{"type":"boolean"},"darkLogoMime":{"type":["string","null"]},"updatedBy":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["organizationId","displayName","legalName","address","country","taxId","registration","bank","footer","accent","font","fromName","replyTo","language","hasLogo","logoMime","hasDarkLogo","darkLogoMime","updatedBy","updatedAt"],"additionalProperties":false}},"required":["branding"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"workspace.orgBranding.set","summary":"Change the branding; fields left out stay as they are. Needs an admin (a person who is owner or admin, or an admin key).","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.orgBranding.set","x-rivier-cli":"branding set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"displayName":{"type":"string","maxLength":200},"legalName":{"type":"string","maxLength":200},"address":{"type":"string","maxLength":1000},"country":{"type":"string","maxLength":2,"pattern":"^([A-Za-z]{2})?$"},"taxId":{"type":"string","maxLength":60},"registration":{"type":"string","maxLength":60},"bank":{"type":"string","maxLength":2000},"footer":{"type":"string","maxLength":1000},"accent":{"anyOf":[{"type":"string","const":""},{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}]},"font":{"type":"string","enum":["system","sans","serif","rounded","mono"]},"fromName":{"type":"string","maxLength":120},"replyTo":{"anyOf":[{"type":"string","const":""},{"type":"string","format":"email","maxLength":254}]},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20},"removeLogo":{"type":"boolean"},"removeDarkLogo":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"branding":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid"},"organizationName":{"type":"string"},"displayName":{"type":"string"},"legalName":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"bank":{"type":"string"},"footer":{"type":"string"},"accent":{"type":"string"},"font":{"type":"string"},"fromName":{"type":"string"},"replyTo":{"type":"string"},"language":{"type":"string"},"hasLogo":{"type":"boolean"},"logoMime":{"type":["string","null"]},"hasDarkLogo":{"type":"boolean"},"darkLogoMime":{"type":["string","null"]},"updatedBy":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["organizationId","displayName","legalName","address","country","taxId","registration","bank","footer","accent","font","fromName","replyTo","language","hasLogo","logoMime","hasDarkLogo","darkLogoMime","updatedBy","updatedAt"],"additionalProperties":false}},"required":["branding"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/branding/logo":{"put":{"operationId":"workspace.orgBranding.logoSet","summary":"Set the logo (variant light or dark): base64 PNG, JPEG, WebP or SVG up to 512 KB; an SVG is sanitised. Needs an admin.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.orgBranding.logoSet","x-rivier-cli":"branding logo set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variant":{"type":"string","enum":["light","dark"],"default":"light"},"mime":{"type":"string","enum":["image/png","image/jpeg","image/svg+xml","image/webp"]},"data":{"type":"string","minLength":1,"maxLength":699251}},"required":["mime","data"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"branding":{"type":"object","properties":{"organizationId":{"type":"string","format":"uuid"},"organizationName":{"type":"string"},"displayName":{"type":"string"},"legalName":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"bank":{"type":"string"},"footer":{"type":"string"},"accent":{"type":"string"},"font":{"type":"string"},"fromName":{"type":"string"},"replyTo":{"type":"string"},"language":{"type":"string"},"hasLogo":{"type":"boolean"},"logoMime":{"type":["string","null"]},"hasDarkLogo":{"type":"boolean"},"darkLogoMime":{"type":["string","null"]},"updatedBy":{"type":"string"},"updatedAt":{"type":["string","null"]}},"required":["organizationId","displayName","legalName","address","country","taxId","registration","bank","footer","accent","font","fromName","replyTo","language","hasLogo","logoMime","hasDarkLogo","darkLogoMime","updatedBy","updatedAt"],"additionalProperties":false}},"required":["branding"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"workspace.orgBranding.logoGet","summary":"The logo file (variant light or dark).","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"variant","in":"query","required":false,"schema":{"type":"string","enum":["light","dark"],"default":"light"}}],"x-rivier-scope":"workspace:read","x-rivier-sdk":"workspace.orgBranding.logoGet","x-rivier-cli":"branding logo get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients":{"get":{"operationId":"workspace.orgClient.list","summary":"The organization's clients: search by name, email or tag, active ones by default (archived: include or only), paged.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"archived","in":"query","required":false,"schema":{"type":"string","enum":["include","only"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":100000,"default":0}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_clients_list","x-rivier-graphql":"Query.workspaceOrgClientList","x-rivier-sdk":"workspace.orgClient.list","x-rivier-cli":"clients list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"clients":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"legalName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"currency":{"type":["string","null"]},"language":{"type":"string"},"paymentDays":{"type":["number","null"]},"notes":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","name","legalName","email","phone","address","country","taxId","registration","currency","language","paymentDays","notes","tags","projectId","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":false}},"total":{"type":"number"}},"required":["clients","total"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.orgClient.create","summary":"Add a client (a name is unique among the organization's active clients). Editor and above.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_clients_create","x-rivier-graphql":"Mutation.workspaceOrgClientCreate","x-rivier-sdk":"workspace.orgClient.create","x-rivier-cli":"clients create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"legalName":{"type":"string","maxLength":200,"default":""},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","const":""}],"default":""},"phone":{"type":"string","maxLength":60,"default":""},"address":{"type":"string","maxLength":1000,"default":""},"country":{"type":"string","maxLength":2,"pattern":"^([A-Za-z]{2})?$","default":""},"taxId":{"type":"string","maxLength":60,"default":""},"registration":{"type":"string","maxLength":60,"default":""},"currency":{"anyOf":[{"type":"string","pattern":"^[a-z]{3}$"},{"type":"null"}],"default":null},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20,"default":"en"},"paymentDays":{"anyOf":[{"type":"integer","minimum":0,"maximum":365},{"type":"null"}],"default":null},"notes":{"type":"string","maxLength":4000,"default":""},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20,"default":[]},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"default":null}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"legalName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"currency":{"type":["string","null"]},"language":{"type":"string"},"paymentDays":{"type":["number","null"]},"notes":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","name","legalName","email","phone","address","country","taxId","registration","currency","language","paymentDays","notes","tags","projectId","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":false}},"required":["client"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/import":{"post":{"operationId":"workspace.orgClient.import","summary":"Load clients from CSV text. With apply false (the default) it shows what would be created, changed or skipped and writes nothing.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_clients_import","x-rivier-graphql":"Mutation.workspaceOrgClientImport","x-rivier-sdk":"workspace.orgClient.import","x-rivier-cli":"clients import","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1,"maxLength":1000000},"apply":{"type":"boolean","default":false}},"required":["csv"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"applied":{"type":"boolean"},"rows":{"type":"array","items":{"type":"object","properties":{"line":{"type":"number"},"action":{"type":"string","enum":["create","update","unchanged","skip"]},"name":{"type":"string"},"email":{"type":"string"},"reason":{"type":"string"},"clientId":{"type":"string","format":"uuid"}},"required":["line","action","name","email"],"additionalProperties":false}},"summary":{"type":"object","properties":{"create":{"type":"number"},"update":{"type":"number"},"unchanged":{"type":"number"},"skip":{"type":"number"}},"required":["create","update","unchanged","skip"],"additionalProperties":false}},"required":["applied","rows","summary"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{clientId}/documents":{"get":{"operationId":"workspace.orgClient.documents","summary":"Every quote, proposal and invoice of a client across the organization's projects, newest first.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"clientId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":100}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_clients_documents","x-rivier-graphql":"Query.workspaceOrgClientDocuments","x-rivier-sdk":"workspace.orgClient.documents","x-rivier-cli":"clients documents","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"documents":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["quote","proposal","invoice"]},"id":{"type":"string","format":"uuid"},"tenantId":{"type":"string","format":"uuid"},"projectName":{"type":"string"},"number":{"type":["string","null"]},"status":{"type":"string"},"title":{"type":"string"},"currency":{"type":"string"},"totalMinor":{"type":"number"},"createdAt":{"type":"string"},"sentAt":{"type":["string","null"]}},"required":["kind","id","tenantId","projectName","number","status","title","currency","totalMinor","createdAt","sentAt"],"additionalProperties":false}}},"required":["documents"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{id}":{"get":{"operationId":"workspace.orgClient.get","summary":"One client with its contacts.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_clients_get","x-rivier-graphql":"Query.workspaceOrgClientGet","x-rivier-sdk":"workspace.orgClient.get","x-rivier-cli":"clients get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"legalName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"currency":{"type":["string","null"]},"language":{"type":"string"},"paymentDays":{"type":["number","null"]},"notes":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]},"contacts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string"},"isPrimary":{"type":"boolean"},"ccDefault":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","clientId","name","email","phone","role","isPrimary","ccDefault","createdAt"],"additionalProperties":false}}},"required":["id","organizationId","name","legalName","email","phone","address","country","taxId","registration","currency","language","paymentDays","notes","tags","projectId","createdBy","createdAt","updatedAt","archivedAt","contacts"],"additionalProperties":false}},"required":["client"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.orgClient.update","summary":"Change any part of a client; fields left out stay as they are.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_clients_update","x-rivier-graphql":"Mutation.workspaceOrgClientUpdate","x-rivier-sdk":"workspace.orgClient.update","x-rivier-cli":"clients update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"legalName":{"type":"string","maxLength":200,"default":""},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","const":""}],"default":""},"phone":{"type":"string","maxLength":60,"default":""},"address":{"type":"string","maxLength":1000,"default":""},"country":{"type":"string","maxLength":2,"pattern":"^([A-Za-z]{2})?$","default":""},"taxId":{"type":"string","maxLength":60,"default":""},"registration":{"type":"string","maxLength":60,"default":""},"currency":{"anyOf":[{"type":"string","pattern":"^[a-z]{3}$"},{"type":"null"}],"default":null},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20,"default":"en"},"paymentDays":{"anyOf":[{"type":"integer","minimum":0,"maximum":365},{"type":"null"}],"default":null},"notes":{"type":"string","maxLength":4000,"default":""},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"maxItems":20,"default":[]},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"default":null}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"legalName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"currency":{"type":["string","null"]},"language":{"type":"string"},"paymentDays":{"type":["number","null"]},"notes":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","name","legalName","email","phone","address","country","taxId","registration","currency","language","paymentDays","notes","tags","projectId","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":false}},"required":["client"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{id}/archive":{"post":{"operationId":"workspace.orgClient.archive","summary":"Archive a client: hidden from lists and pickers, its history and documents kept.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.orgClient.archive","x-rivier-cli":"clients archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"legalName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"currency":{"type":["string","null"]},"language":{"type":"string"},"paymentDays":{"type":["number","null"]},"notes":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","name","legalName","email","phone","address","country","taxId","registration","currency","language","paymentDays","notes","tags","projectId","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":false}},"required":["client"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{id}/contacts":{"get":{"operationId":"workspace.orgContact.list","summary":"The contacts of a client.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_clients_contacts","x-rivier-graphql":"Query.workspaceOrgContactList","x-rivier-sdk":"workspace.orgContact.list","x-rivier-cli":"clients contacts list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string"},"isPrimary":{"type":"boolean"},"ccDefault":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","clientId","name","email","phone","role","isPrimary","ccDefault","createdAt"],"additionalProperties":false}}},"required":["contacts"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.orgContact.add","summary":"Add a contact to a client (a name or an email address is needed; one can be primary, several can be copied by default).","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_clients_contact_add","x-rivier-graphql":"Mutation.workspaceOrgContactAdd","x-rivier-sdk":"workspace.orgContact.add","x-rivier-cli":"clients contacts add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","const":""}],"default":""},"phone":{"type":"string","maxLength":60,"default":""},"role":{"type":"string","maxLength":80,"default":""},"isPrimary":{"type":"boolean","default":false},"ccDefault":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string"},"isPrimary":{"type":"boolean"},"ccDefault":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","clientId","name","email","phone","role","isPrimary","ccDefault","createdAt"],"additionalProperties":false}},"required":["contact"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{id}/contacts/{contactId}":{"patch":{"operationId":"workspace.orgContact.update","summary":"Change a contact of a client.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_clients_contact_update","x-rivier-graphql":"Mutation.workspaceOrgContactUpdate","x-rivier-sdk":"workspace.orgContact.update","x-rivier-cli":"clients contacts update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200},"email":{"anyOf":[{"type":"string","format":"email","maxLength":254},{"type":"string","const":""}]},"phone":{"type":"string","maxLength":60},"role":{"type":"string","maxLength":80},"isPrimary":{"type":"boolean"},"ccDefault":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"clientId":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"role":{"type":"string"},"isPrimary":{"type":"boolean"},"ccDefault":{"type":"boolean"},"createdAt":{"type":"string"}},"required":["id","clientId","name","email","phone","role","isPrimary","ccDefault","createdAt"],"additionalProperties":false}},"required":["contact"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.orgContact.remove","summary":"Remove a contact from a client.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"contactId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.orgContact.remove","x-rivier-cli":"clients contacts remove","security":[{"bearerAuth":[]}],"responses":{"204":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{id}/events":{"get":{"operationId":"workspace.orgClient.events","summary":"What happened to a client, newest first.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":100}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_clients_events","x-rivier-graphql":"Query.workspaceOrgClientEvents","x-rivier-sdk":"workspace.orgClient.events","x-rivier-cli":"clients events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"number"},"clientId":{"type":"string","format":"uuid"},"type":{"type":"string"},"actor":{"type":"string"},"data":{"type":"object","additionalProperties":{}},"at":{"type":"string"}},"required":["seq","clientId","type","actor","data","at"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/clients/{id}/restore":{"post":{"operationId":"workspace.orgClient.restore","summary":"Bring an archived client back.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_clients_restore","x-rivier-graphql":"Mutation.workspaceOrgClientRestore","x-rivier-sdk":"workspace.orgClient.restore","x-rivier-cli":"clients restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"name":{"type":"string"},"legalName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"address":{"type":"string"},"country":{"type":"string"},"taxId":{"type":"string"},"registration":{"type":"string"},"currency":{"type":["string","null"]},"language":{"type":"string"},"paymentDays":{"type":["number","null"]},"notes":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"projectId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","name","legalName","email","phone","address","country","taxId","registration","currency","language","paymentDays","notes","tags","projectId","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":false}},"required":["client"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates":{"get":{"operationId":"workspace.orgTemplate.list","summary":"The organization's own templates (archived: include or only) with the starter gallery, optionally for one kind and language.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["quote","proposal","invoice"]}},{"name":"archived","in":"query","required":false,"schema":{"type":"string","enum":["include","only"]}},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["en","dv","ar"],"default":"en"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_templates_list","x-rivier-graphql":"Query.workspaceOrgTemplateList","x-rivier-sdk":"workspace.orgTemplate.list","x-rivier-cli":"templates list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"gallery":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}}},"required":["key","kind","layout","useCase","language","name","description","languages"],"additionalProperties":true}}},"required":["templates","gallery"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.orgTemplate.create","summary":"Make a template: by hand, from a gallery starter (fromGallery), or from a document's content (a body with lines, which drops any tax field on them). Editor and above.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_templates_create","x-rivier-graphql":"Mutation.workspaceOrgTemplateCreate","x-rivier-sdk":"workspace.orgTemplate.create","x-rivier-cli":"templates create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string","minLength":1,"maxLength":120},"layout":{"type":"string","enum":["minimal","classic","modern","bold"],"default":"minimal"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20,"default":"en"},"useCase":{"type":"string","maxLength":60,"default":""},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":60},"type":{"type":"string","enum":["header","parties","meta","intro","section","lines","totals","payment","terms","acceptance","footer"]},"title":{"type":"string","maxLength":200,"default":""},"body":{"type":"string","maxLength":10000,"default":""}},"required":["id","type"],"additionalProperties":false},"maxItems":60,"default":[]},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"default":""},"quantity":{"type":"number","minimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":40,"default":""},"unitPriceMinor":{"type":"integer","minimum":0,"maximum":1000000000000,"default":0}},"additionalProperties":false},"maxItems":100,"default":[]},"terms":{"type":"string","maxLength":20000,"default":""},"paymentDetails":{"type":"string","maxLength":4000,"default":""},"emailSubject":{"type":"string","maxLength":300,"default":""},"emailBody":{"type":"string","maxLength":10000,"default":""}},"required":["kind","name"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string","minLength":1,"maxLength":120},"layout":{"type":"string","enum":["minimal","classic","modern","bold"],"default":"minimal"},"useCase":{"type":"string","maxLength":60,"default":""},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20,"default":"en"},"fromGallery":{"type":"string","maxLength":80},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":60},"type":{"type":"string","enum":["header","parties","meta","intro","section","lines","totals","payment","terms","acceptance","footer"]},"title":{"type":"string","maxLength":200,"default":""},"body":{"type":"string","maxLength":10000,"default":""}},"required":["id","type"],"additionalProperties":false},"maxItems":60},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"default":""},"quantity":{"type":"number","minimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":40,"default":""},"unitPriceMinor":{"type":"integer","minimum":0,"maximum":1000000000000,"default":0}},"additionalProperties":false},"maxItems":100},"terms":{"type":"string","maxLength":20000},"paymentDetails":{"type":"string","maxLength":4000},"emailSubject":{"type":"string","maxLength":300},"emailBody":{"type":"string","maxLength":10000}},"required":["kind","name"],"additionalProperties":false}]}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"required":["template"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates/apply":{"post":{"operationId":"workspace.orgTemplate.apply","summary":"A copy of a template's (or a gallery starter's) content to place into a new document; nothing is saved.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_templates_apply","x-rivier-graphql":"Mutation.workspaceOrgTemplateApply","x-rivier-sdk":"workspace.orgTemplate.apply","x-rivier-cli":"templates apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"galleryKey":{"type":"string","maxLength":80},"language":{"type":"string","enum":["en","dv","ar"]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"kind":{"type":"string","enum":["quote","proposal","invoice"]}},"required":["kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"applied":{"type":"object","properties":{},"additionalProperties":true}},"required":["applied"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates/gallery":{"get":{"operationId":"workspace.orgTemplate.gallery","summary":"The starter gallery: four layouts per kind (minimal, classic, modern, bold) and, for proposals, four use cases, in English, Dhivehi and Arabic.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["quote","proposal","invoice"]}},{"name":"useCase","in":"query","required":false,"schema":{"type":"string","enum":["web-project","marketing-retainer","campaign","consulting"]}},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["en","dv","ar"],"default":"en"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_templates_gallery","x-rivier-graphql":"Query.workspaceOrgTemplateGallery","x-rivier-sdk":"workspace.orgTemplate.gallery","x-rivier-cli":"templates gallery","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"gallery":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}}},"required":["key","kind","layout","useCase","language","name","description","languages"],"additionalProperties":true}}},"required":["gallery"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates/preview":{"post":{"operationId":"workspace.orgTemplate.preview","summary":"The renderable view of a template or starter with the organization's branding and sample figures; nothing is saved.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_templates_preview","x-rivier-graphql":"Mutation.workspaceOrgTemplatePreview","x-rivier-sdk":"workspace.orgTemplate.preview","x-rivier-cli":"templates preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid"},"galleryKey":{"type":"string","maxLength":80},"language":{"type":"string","enum":["en","dv","ar"]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"client":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"address":{"type":"string","maxLength":1000,"default":""},"email":{"type":"string","maxLength":254,"default":""}},"additionalProperties":false},"currency":{"type":"string","pattern":"^[a-z]{3}$","default":"usd"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"preview":{"type":"object","properties":{},"additionalProperties":true}},"required":["preview"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates/{id}":{"get":{"operationId":"workspace.orgTemplate.get","summary":"One template.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_templates_get","x-rivier-graphql":"Query.workspaceOrgTemplateGet","x-rivier-sdk":"workspace.orgTemplate.get","x-rivier-cli":"templates get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"required":["template"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.orgTemplate.update","summary":"Change a template; fields left out stay as they are. An editor changes templates they made, an admin any.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_templates_update","x-rivier-graphql":"Mutation.workspaceOrgTemplateUpdate","x-rivier-sdk":"workspace.orgTemplate.update","x-rivier-cli":"templates update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string","maxLength":60},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":60},"type":{"type":"string","enum":["header","parties","meta","intro","section","lines","totals","payment","terms","acceptance","footer"]},"title":{"type":"string","maxLength":200,"default":""},"body":{"type":"string","maxLength":10000,"default":""}},"required":["id","type"],"additionalProperties":false},"maxItems":60},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","maxLength":500,"default":""},"quantity":{"type":"number","minimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":40,"default":""},"unitPriceMinor":{"type":"integer","minimum":0,"maximum":1000000000000,"default":0}},"additionalProperties":false},"maxItems":100},"terms":{"type":"string","maxLength":20000},"paymentDetails":{"type":"string","maxLength":4000},"emailSubject":{"type":"string","maxLength":300},"emailBody":{"type":"string","maxLength":10000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"required":["template"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.orgTemplate.archive","summary":"Archive a template: out of the pickers, its copies in documents untouched. Needs an admin.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.orgTemplate.archive","x-rivier-cli":"templates archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"required":["template"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates/{id}/default":{"post":{"operationId":"workspace.orgTemplate.default","summary":"Make a template the default of its kind (isDefault false clears it). Needs an admin.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-sdk":"workspace.orgTemplate.default","x-rivier-cli":"templates default","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"isDefault":{"type":"boolean","default":true}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"required":["template"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/org/{orgId}/templates/{id}/duplicate":{"post":{"operationId":"workspace.orgTemplate.duplicate","summary":"A copy of a template (optionally named); the copy is never the default.","tags":["workspace"],"parameters":[{"name":"orgId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_templates_duplicate","x-rivier-graphql":"Mutation.workspaceOrgTemplateDuplicate","x-rivier-sdk":"workspace.orgTemplate.duplicate","x-rivier-cli":"templates duplicate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"template":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"organizationId":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"name":{"type":"string"},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"useCase":{"type":"string"},"language":{"type":"string"},"isDefault":{"type":"boolean"},"blocks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"}},"required":["id","type"],"additionalProperties":true}},"linePresets":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"quantity":{"type":"number"},"unit":{"type":"string"},"unitPriceMinor":{"type":"number"}},"required":["description","quantity","unit","unitPriceMinor"],"additionalProperties":true}},"terms":{"type":"string"},"paymentDetails":{"type":"string"},"emailSubject":{"type":"string"},"emailBody":{"type":"string"},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"archivedAt":{"type":["string","null"]}},"required":["id","organizationId","kind","name","layout","useCase","language","isDefault","blocks","linePresets","terms","paymentDetails","emailSubject","emailBody","createdBy","createdAt","updatedAt","archivedAt"],"additionalProperties":true}},"required":["template"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations":{"get":{"operationId":"workspace.organization.list","summary":"The organisations the person belongs to.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrganizationList","x-rivier-sdk":"workspace.organization.list","x-rivier-cli":"workspace organization list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.organization.create","summary":"Create an organisation. An account token needs account:write.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrganizationCreate","x-rivier-sdk":"workspace.organization.create","x-rivier-cli":"workspace org create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}":{"patch":{"operationId":"workspace.organization.update","summary":"Rename an organisation.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrganizationUpdate","x-rivier-sdk":"workspace.organization.update","x-rivier-cli":"workspace organization update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.organization.delete","summary":"Delete an organisation.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrganizationDelete","x-rivier-sdk":"workspace.organization.delete","x-rivier-cli":"workspace organization delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/activate":{"post":{"operationId":"workspace.organization.activate","summary":"Work inside an organisation.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrganizationActivate","x-rivier-sdk":"workspace.organization.activate","x-rivier-cli":"workspace organization activate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/archive-retention":{"get":{"operationId":"workspace.orgRetention.get","summary":"How many days an archived workspace is kept before it is retired, with the allowed range.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgRetentionGet","x-rivier-sdk":"workspace.orgRetention.get","x-rivier-cli":"workspace org retention get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"workspace.orgRetention.set","summary":"Change how long archived workspaces are kept (30 to 365 days).","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgRetentionSet","x-rivier-sdk":"workspace.orgRetention.set","x-rivier-cli":"workspace org retention set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":30,"maximum":365}},"required":["days"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/audit":{"get":{"operationId":"workspace.audit.list","summary":"Who did what in the organisation; filter by action, actor and dates.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_audit_list","x-rivier-graphql":"Query.workspaceAuditList","x-rivier-sdk":"workspace.audit.list","x-rivier-cli":"workspace audit list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/audit.csv":{"get":{"operationId":"workspace.audit.csv","summary":"The audit log as CSV.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-sdk":"workspace.audit.csv","x-rivier-cli":"workspace audit csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/capabilities":{"get":{"operationId":"workspace.orgCapability.list","summary":"What the person can do in the organisation, with the reason for each thing they cannot.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_organisation_capabilities","x-rivier-graphql":"Query.workspaceOrgCapabilityList","x-rivier-sdk":"workspace.orgCapability.list","x-rivier-cli":"workspace org capability list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/compliance/profile":{"get":{"operationId":"workspace.organization.complianceProfile","summary":"An organisation's compliance defaults.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrganizationComplianceProfile","x-rivier-sdk":"workspace.organization.complianceProfile","x-rivier-cli":"workspace organization compliance profile","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"workspace.organization.setComplianceProfile","summary":"Set an organisation's compliance defaults.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrganizationSetComplianceProfile","x-rivier-sdk":"workspace.organization.setComplianceProfile","x-rivier-cli":"workspace organization set compliance profile","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/delete-request":{"get":{"operationId":"workspace.orgDeletion.get","summary":"Whether deletion of the organisation is waiting, and the phrase to type.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgDeletionGet","x-rivier-sdk":"workspace.orgDeletion.get","x-rivier-cli":"workspace org deletion get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.orgDeletion.request","summary":"Ask for the organisation to be deleted after a 14-day cooling-off.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgDeletionRequest","x-rivier-sdk":"workspace.orgDeletion.request","x-rivier-cli":"workspace org deletion request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirm":{"type":"string","minLength":1,"maxLength":300}},"required":["confirm"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.orgDeletion.cancel","summary":"Cancel a pending organisation deletion.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgDeletionCancel","x-rivier-sdk":"workspace.orgDeletion.cancel","x-rivier-cli":"workspace org deletion cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/domains":{"get":{"operationId":"workspace.orgDomain.list","summary":"The organisation's domains across its workspaces, and whether ownership is proven by the DNS record.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgDomainList","x-rivier-sdk":"workspace.orgDomain.list","x-rivier-cli":"workspace org domain list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/invitations":{"get":{"operationId":"workspace.invitation.list","summary":"Invitations not yet accepted, with state and expiry.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_invitations_list","x-rivier-graphql":"Query.workspaceInvitationList","x-rivier-sdk":"workspace.invitation.list","x-rivier-cli":"workspace invitation list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/members":{"get":{"operationId":"workspace.member.list","summary":"An organisation's members and which invitations are still pending. An account token needs account:members.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceMemberList","x-rivier-sdk":"workspace.member.list","x-rivier-cli":"workspace org member list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.member.invite","summary":"Invite a member by address with a role, and an optional language for the invitation mail. An address with no account gets a link to set a password. An account token needs account:members and can invite approver, editor, member or viewer, never admin or owner.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceMemberInvite","x-rivier-sdk":"workspace.member.invite","x-rivier-cli":"workspace org member invite","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/members/{mid}":{"patch":{"operationId":"workspace.member.update","summary":"Change a member's role. An account token needs account:members, can set approver, editor, member or viewer, and cannot change an admin or owner.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"mid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceMemberUpdate","x-rivier-sdk":"workspace.member.update","x-rivier-cli":"workspace org member role","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.member.remove","summary":"Remove a member. An account token needs account:members and cannot remove an admin or owner.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"mid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceMemberRemove","x-rivier-sdk":"workspace.member.remove","x-rivier-cli":"workspace org member remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/members/{mid}/invitation":{"delete":{"operationId":"workspace.invitation.revoke","summary":"Withdraw an invitation that was not accepted.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"mid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceInvitationRevoke","x-rivier-sdk":"workspace.invitation.revoke","x-rivier-cli":"workspace invitation revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/members/{mid}/resend":{"post":{"operationId":"workspace.invitation.resend","summary":"Send an invitation again with a new expiry.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"mid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-mcp":"rivier_invitation_resend","x-rivier-graphql":"Mutation.workspaceInvitationResend","x-rivier-sdk":"workspace.invitation.resend","x-rivier-cli":"workspace invitation resend","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/profile":{"get":{"operationId":"workspace.orgProfile.get","summary":"The organisation's legal entity, address, billing contact, defaults and data region in words.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_organisation_profile_get","x-rivier-graphql":"Query.workspaceOrgProfileGet","x-rivier-sdk":"workspace.orgProfile.get","x-rivier-cli":"workspace org profile get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.orgProfile.update","summary":"Change the organisation's profile (owner, admin).","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-mcp":"rivier_organisation_profile_update","x-rivier-graphql":"Mutation.workspaceOrgProfileUpdate","x-rivier-sdk":"workspace.orgProfile.update","x-rivier-cli":"workspace org profile update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"logo_url":{"anyOf":[{"type":"string","maxLength":500,"format":"uri"},{"type":"null"}]},"legal_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"address":{"type":"object","properties":{"line1":{"type":"string","maxLength":200},"line2":{"type":"string","maxLength":200},"city":{"type":"string","maxLength":100},"region":{"type":"string","maxLength":100},"postal_code":{"type":"string","maxLength":32},"country":{"type":"string","minLength":2,"maxLength":2}},"additionalProperties":false},"billing_contact_email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"default_language":{"anyOf":[{"type":"string","enum":["en","de","es","fr","ja","ar","sv","dv"]},{"type":"null"}]},"default_currency":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{3}$"},{"type":"null"}]},"default_time_zone":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/role-definitions":{"get":{"operationId":"workspace.roleDefinition.list","summary":"The permission table: the built-in roles and the organisation's custom roles.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceRoleDefinitionList","x-rivier-sdk":"workspace.roleDefinition.list","x-rivier-cli":"workspace role definition list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.roleDefinition.create","summary":"Make a custom role: a built-in role plus areas granted and denied.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceRoleDefinitionCreate","x-rivier-sdk":"workspace.roleDefinition.create","x-rivier-cli":"workspace role definition create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/role-definitions/{rid}":{"patch":{"operationId":"workspace.roleDefinition.update","summary":"Change a custom role.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceRoleDefinitionUpdate","x-rivier-sdk":"workspace.roleDefinition.update","x-rivier-cli":"workspace role definition update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.roleDefinition.archive","summary":"Archive a custom role; people keep the built-in role it was based on.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceRoleDefinitionArchive","x-rivier-sdk":"workspace.roleDefinition.archive","x-rivier-cli":"workspace role definition archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/roles":{"get":{"operationId":"workspace.role.list","summary":"The roles in plain words.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceRoleList","x-rivier-sdk":"workspace.role.list","x-rivier-cli":"workspace role list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/transfer":{"get":{"operationId":"workspace.transfer.get","summary":"A waiting ownership hand-over, if any.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceTransferGet","x-rivier-sdk":"workspace.transfer.get","x-rivier-cli":"workspace transfer get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.transfer.request","summary":"Hand ownership to a member; they become owner when they accept.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceTransferRequest","x-rivier-sdk":"workspace.transfer.request","x-rivier-cli":"workspace transfer request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","format":"email"},"confirm":{"type":"string","minLength":1}},"required":["to","confirm"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"workspace.transfer.cancel","summary":"Cancel a waiting hand-over.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceTransferCancel","x-rivier-sdk":"workspace.transfer.cancel","x-rivier-cli":"workspace transfer cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/transfer/accept":{"post":{"operationId":"workspace.transfer.accept","summary":"Accept ownership that was handed to you.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceTransferAccept","x-rivier-sdk":"workspace.transfer.accept","x-rivier-cli":"workspace transfer accept","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces":{"get":{"operationId":"workspace.orgWorkspace.list","summary":"An organisation's workspaces.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgWorkspaceList","x-rivier-sdk":"workspace.orgWorkspace.list","x-rivier-cli":"workspace org workspace list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.orgWorkspace.create","summary":"Add a workspace.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceCreate","x-rivier-sdk":"workspace.orgWorkspace.create","x-rivier-cli":"workspace org workspace create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/archived":{"get":{"operationId":"workspace.orgWorkspace.archived","summary":"The archived workspaces.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgWorkspaceArchived","x-rivier-sdk":"workspace.orgWorkspace.archived","x-rivier-cli":"workspace org workspace archived","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}":{"delete":{"operationId":"workspace.orgWorkspace.delete","summary":"Remove a workspace.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceDelete","x-rivier-sdk":"workspace.orgWorkspace.delete","x-rivier-cli":"workspace org workspace delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.orgWorkspace.rename","summary":"Rename a workspace, or move it to another organisation by giving organizationId (an owner or admin of both; a person signs in for this, a key cannot).","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceRename","x-rivier-sdk":"workspace.orgWorkspace.rename","x-rivier-cli":"workspace org workspace rename","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"organizationId":{"type":"string","format":"uuid"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}/clear":{"post":{"operationId":"workspace.orgWorkspace.clear","summary":"Remove the data of some areas, or all of them, and keep the workspace, its settings, keys, members, plan and domains.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceClear","x-rivier-sdk":"workspace.orgWorkspace.clear","x-rivier-cli":"workspace org workspace clear","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"areas":{"anyOf":[{"type":"string","const":"everything"},{"type":"array","items":{"type":"string","maxLength":40},"maxItems":20}]},"confirmName":{"type":"string","maxLength":400},"acknowledgeIrreversible":{"type":"boolean","const":true}},"required":["areas","confirmName","acknowledgeIrreversible"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}/clear-plan":{"get":{"operationId":"workspace.orgWorkspace.clearPlan","summary":"What clearing some areas of a workspace removes, and which other areas must be cleared with them.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}},{"name":"areas","in":"query","required":false,"schema":{"type":"string","maxLength":400}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgWorkspaceClearPlan","x-rivier-sdk":"workspace.orgWorkspace.clearPlan","x-rivier-cli":"workspace org workspace clear plan","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}/export":{"post":{"operationId":"workspace.orgWorkspace.export","summary":"Make the export of a workspace's records, kept for seven days.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceExport","x-rivier-sdk":"workspace.orgWorkspace.export","x-rivier-cli":"workspace org workspace export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"workspace.orgWorkspace.exportDownload","summary":"Download the export made for a workspace.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:read","x-rivier-sdk":"workspace.orgWorkspace.exportDownload","x-rivier-cli":"workspace org workspace export download","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}/restore":{"post":{"operationId":"workspace.orgWorkspace.restore","summary":"Bring an archived workspace back, within the plan's limit.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceRestore","x-rivier-sdk":"workspace.orgWorkspace.restore","x-rivier-cli":"workspace org workspace restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}/retire":{"post":{"operationId":"workspace.orgWorkspace.retire","summary":"Remove an archived workspace for good. The name is typed and the loss acknowledged; the domain registration and DNS are never touched.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceOrgWorkspaceRetire","x-rivier-sdk":"workspace.orgWorkspace.retire","x-rivier-cli":"workspace org workspace retire","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"confirmName":{"type":"string","maxLength":400},"acknowledgeIrreversible":{"type":"boolean","const":true},"removeHostedSite":{"type":"boolean"}},"required":["confirmName","acknowledgeIrreversible"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/organizations/{id}/workspaces/{wid}/retire-plan":{"get":{"operationId":"workspace.orgWorkspace.retirePlan","summary":"What retiring an archived workspace removes, by area with counts and sizes, what stops it, and when the schedule would retire it.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"wid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOrgWorkspaceRetirePlan","x-rivier-sdk":"workspace.orgWorkspace.retirePlan","x-rivier-cli":"workspace org workspace retire plan","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts":{"get":{"operationId":"shop.paymentAccount.list","summary":"The payment accounts of the project with their state in plain words.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.paymentAccount.list","x-rivier-cli":"shop payment account list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["accounts"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.paymentAccount.connect","summary":"Connect a payment account (the business's own Stripe through a connection, or Skerry).","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.connect","x-rivier-cli":"shop payment account connect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["skerry","stripe","mock"]},"mode":{"type":"string","enum":["test","live"],"default":"test"},"label":{"type":"string","maxLength":80,"default":""},"connectionId":{"type":"string","maxLength":100},"legalName":{"type":"string","maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"country":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["provider"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/approve-live":{"post":{"operationId":"shop.paymentAccount.approveLive","summary":"Approve live money on a verified account.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.approveLive","x-rivier-cli":"shop payment account approve live","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/default":{"put":{"operationId":"shop.paymentAccount.setDefault","summary":"Make an account the default for its mode.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.setDefault","x-rivier-cli":"shop payment account set default","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/identity-link":{"post":{"operationId":"shop.paymentAccount.identityLink","summary":"Open the provider's identity check for an account.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.identityLink","x-rivier-cli":"shop payment account identity link","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/receiving-accounts":{"post":{"operationId":"shop.paymentResource.addReceivingAccount","summary":"Open a receiving account that delivers to a wallet.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentResource.addReceivingAccount","x-rivier-cli":"shop payment resource add receiving account","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currency":{"type":"string","enum":["usd","eur"]},"walletId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["currency","walletId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/refresh":{"post":{"operationId":"shop.paymentAccount.refresh","summary":"Ask the provider where onboarding stands.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.refresh","x-rivier-cli":"shop payment account refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/resources":{"get":{"operationId":"shop.paymentResource.list","summary":"The wallets, receiving accounts and payees kept for an account.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.paymentResource.list","x-rivier-cli":"shop payment resource list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["resources"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/resources/refresh":{"post":{"operationId":"shop.paymentResource.refresh","summary":"Read what the provider holds for an account now.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentResource.refresh","x-rivier-cli":"shop payment resource refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["resources"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/resources/{rid}":{"put":{"operationId":"shop.paymentResource.label","summary":"Name a wallet or account.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"rid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentResource.label","x-rivier-cli":"shop payment resource label","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","maxLength":80}},"required":["label"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/revoke-live":{"post":{"operationId":"shop.paymentAccount.revokeLive","summary":"Take live approval away.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.revokeLive","x-rivier-cli":"shop payment account revoke live","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/setup-link":{"post":{"operationId":"shop.paymentAccount.setupLink","summary":"Open the provider's set-up pages for an account.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentAccount.setupLink","x-rivier-cli":"shop payment account setup link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"returnPath":{"type":"string","maxLength":300,"pattern":"^\\/app(\\/[A-Za-z0-9_-]+)*$","default":"/app"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/accounts/{id}/wallets":{"post":{"operationId":"shop.paymentResource.addWallet","summary":"Add a wallet to an account.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.paymentResource.addWallet","x-rivier-cli":"shop payment resource add wallet","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chain":{"type":"string","enum":["base","ethereum","solana","tron"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["chain"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/checkouts":{"post":{"operationId":"shop.checkout.create","summary":"Open a checkout for any reference (an order, a booking, an invoice, or your own id as other): the payment carries the reference and the payment events name it. Repeat with the same idempotency key to get the same checkout.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_payments_checkout_create","x-rivier-graphql":"Mutation.shopCheckoutCreate","x-rivier-sdk":"shop.checkout.create","x-rivier-cli":"shop checkout create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reference":{"type":"object","properties":{"kind":{"type":"string","enum":["order","booking","invoice","reservation","link","other"]},"id":{"type":"string","minLength":1,"maxLength":120}},"required":["kind","id"],"additionalProperties":false},"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"lines":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"quantity":{"type":"integer","minimum":1,"maximum":100000},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999}},"required":["name","quantity","unitAmountMinor"],"additionalProperties":false},"maxItems":100,"default":[]},"customer":{"type":"object","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string","maxLength":160}},"additionalProperties":false,"default":{}},"successUrl":{"type":"string","format":"uri","maxLength":2000},"cancelUrl":{"type":"string","format":"uri","maxLength":2000},"expiresAt":{"type":"string","format":"date-time"},"capture":{"type":"string","enum":["automatic","manual"],"default":"automatic"},"saveMethod":{"type":"boolean","default":false},"form":{"type":"string","enum":["hosted","embedded","headless"],"default":"hosted"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["reference","amountMinor","currency","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.checkout.list","summary":"Checkouts by reference or state.","tags":["shop"],"parameters":[{"name":"referenceKind","in":"query","required":false,"schema":{"type":"string","enum":["order","booking","invoice","reservation","link","other"]}},{"name":"referenceId","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["open","complete","expired","canceled"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_payments_checkouts","x-rivier-graphql":"Query.shopCheckoutList","x-rivier-sdk":"shop.checkout.list","x-rivier-cli":"shop checkout list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"checkouts":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["checkouts"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/checkouts/{id}":{"get":{"operationId":"shop.checkout.get","summary":"One checkout and where it stands; refresh=1 asks the provider first.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}}],"x-rivier-scope":"shop:read","x-rivier-graphql":"Query.shopCheckoutGet","x-rivier-sdk":"shop.checkout.get","x-rivier-cli":"shop checkout get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/checkouts/{id}/expire":{"post":{"operationId":"shop.checkout.expire","summary":"Close an open checkout so it can no longer be paid.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_payments_checkout_expire","x-rivier-graphql":"Mutation.shopCheckoutExpire","x-rivier-sdk":"shop.checkout.expire","x-rivier-cli":"shop checkout expire","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/mismatches":{"get":{"operationId":"shop.mismatch.list","summary":"Differences found between the books and the provider.","tags":["shop"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","resolved","dismissed"]}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_payments_mismatches","x-rivier-graphql":"Query.paymentMismatches","x-rivier-sdk":"shop.mismatch.list","x-rivier-cli":"shop mismatch list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"mismatches":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["mismatches"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/mismatches/{id}/resolve":{"post":{"operationId":"shop.mismatch.resolve","summary":"Close a difference with a note, or dismiss it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.mismatch.resolve","x-rivier-cli":"shop mismatch resolve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dismiss":{"type":"boolean"},"note":{"type":"string","minLength":1,"maxLength":300}},"required":["note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/payments":{"get":{"operationId":"shop.payment.list","summary":"Payments by reference (an order, a booking), status or page.","tags":["shop"],"parameters":[{"name":"referenceKind","in":"query","required":false,"schema":{"type":"string","enum":["order","booking","invoice","reservation","link","other"]}},{"name":"referenceId","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["requires_payment_method","requires_action","processing","authorized","succeeded","failed","canceled","refunded","partially_refunded","disputed"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_payments_list","x-rivier-graphql":"Query.payments","x-rivier-sdk":"shop.payment.list","x-rivier-cli":"shop payment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"accountId":{"type":"string"},"providerRef":{"type":"string"},"checkoutId":{"type":["string","null"]},"status":{"type":"string"},"amountMinor":{"type":"number"},"amountReceivedMinor":{"type":"number"},"amountRefundedMinor":{"type":"number"},"feeMinor":{"type":"number"},"currency":{"type":"string"},"railLabel":{"type":["string","null"]},"invoiceId":{"type":["string","null"]},"reference":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string"},"id":{"type":"string"}},"required":["kind","id"],"additionalProperties":true},{"type":"null"}]},"succeededAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","accountId","providerRef","checkoutId","status","amountMinor","amountReceivedMinor","amountRefundedMinor","feeMinor","currency","railLabel","invoiceId","reference","succeededAt","createdAt"],"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/payments/{id}":{"get":{"operationId":"shop.payment.get","summary":"One payment with its status, what was received and refunded, and the fee.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_payments_get","x-rivier-graphql":"Query.payment","x-rivier-sdk":"shop.payment.get","x-rivier-cli":"shop payment get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"accountId":{"type":"string"},"providerRef":{"type":"string"},"checkoutId":{"type":["string","null"]},"status":{"type":"string"},"amountMinor":{"type":"number"},"amountReceivedMinor":{"type":"number"},"amountRefundedMinor":{"type":"number"},"feeMinor":{"type":"number"},"currency":{"type":"string"},"railLabel":{"type":["string","null"]},"invoiceId":{"type":["string","null"]},"reference":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string"},"id":{"type":"string"}},"required":["kind","id"],"additionalProperties":true},{"type":"null"}]},"succeededAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","accountId","providerRef","checkoutId","status","amountMinor","amountReceivedMinor","amountRefundedMinor","feeMinor","currency","railLabel","invoiceId","reference","succeededAt","createdAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/policy":{"get":{"operationId":"shop.moneyPolicy.get","summary":"The money limits: the largest refund in one action and in a day, and the payment links an agent may make.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.moneyPolicy.get","x-rivier-cli":"shop money policy get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"shop.moneyPolicy.set","summary":"Set the money limits.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.moneyPolicy.set","x-rivier-cli":"shop money policy set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"policy":{"type":"object","properties":{"refunds":{"type":"object","properties":{"maxPerActionMinor":{"type":"integer","minimum":0,"default":0},"maxPerDayMinor":{"type":"integer","minimum":0,"default":0}},"additionalProperties":false,"default":{}},"links":{"type":"object","properties":{"maxAmountMinor":{"type":"integer","minimum":0,"default":0},"maxPerDay":{"type":"integer","minimum":0,"default":0}},"additionalProperties":false,"default":{}}},"additionalProperties":false},"ifRev":{"type":"integer","minimum":0}},"required":["policy"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/reconcile":{"post":{"operationId":"shop.reconcile.run","summary":"Compare the last days of payments with the provider and record differences. Nothing is corrected automatically.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.reconcile.run","x-rivier-cli":"shop reconcile run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sinceDays":{"type":"integer","minimum":1,"maximum":90,"default":7}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/refunds":{"get":{"operationId":"shop.refund.list","summary":"Refunds by state or payment.","tags":["shop"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","maxLength":30}},{"name":"paymentId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_payments_refunds_list","x-rivier-graphql":"Query.refunds","x-rivier-sdk":"shop.refund.list","x-rivier-cli":"shop refund list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"refunds":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"paymentId":{"type":"string"},"amountMinor":{"type":"number"},"currency":{"type":"string"},"reason":{"type":"string"},"state":{"type":"string"},"requestedBy":{"type":"string"},"approvedBy":{"type":["string","null"]},"error":{"type":["string","null"]},"executedAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","paymentId","amountMinor","currency","reason","state","requestedBy","approvedBy","error","executedAt","createdAt"],"additionalProperties":true}}},"required":["refunds"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.refund.request","summary":"Ask for a refund. It waits for a person's approval; the limits of the money policy apply.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_payments_refund_request","x-rivier-graphql":"Mutation.requestRefund","x-rivier-sdk":"shop.refund.request","x-rivier-cli":"shop refund request","x-rivier-events":["shop.refund.requested"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"paymentId":{"type":"string","format":"uuid"},"amountMinor":{"type":"integer","exclusiveMinimum":0,"maximum":99999999999},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"reason":{"type":"string","maxLength":300,"default":""},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["paymentId","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/refunds/{id}/approve":{"post":{"operationId":"shop.refund.approve","summary":"Approve a refund; it is sent to the provider once.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.refund.approve","x-rivier-cli":"shop refund approve","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/payments/refunds/{id}/reject":{"post":{"operationId":"shop.refund.reject","summary":"Reject a refund request.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.refund.reject","x-rivier-cli":"shop refund reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/persona/screen":{"post":{"operationId":"agents.persona.screen","summary":"Check a draft against the persona rules without saving.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_persona_screen","x-rivier-graphql":"Query.agentsPersonaScreen","x-rivier-sdk":"agents.persona.screen","x-rivier-cli":"agents persona screen","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/conversations":{"get":{"operationId":"voice.phoneConversation.list","summary":"Conversations by person, newest first, with the ones waiting for an answer marked.","tags":["voice"],"parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["sms","mms","whatsapp"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_phone_conversations","x-rivier-graphql":"Query.voicePhoneConversationList","x-rivier-sdk":"voice.phoneConversation.list","x-rivier-cli":"voice phone conversation list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"threads":{"type":"array","items":{"type":"object","properties":{"peer":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"last":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"direction":{"type":"string","enum":["out","in"]},"peer":{"type":"string"},"own":{"type":"string"},"body":{"type":"string"},"media":{"type":"array","items":{"type":"string"}},"state":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"segments":{"type":"number"},"templateId":{"type":["string","null"]},"at":{"type":"string"}},"required":["id","channel","direction","peer","own","body","media","state","code","detail","segments","templateId","at"],"additionalProperties":false},"messages":{"type":"number"},"unanswered":{"type":"boolean"}},"required":["peer","channel","last","messages","unanswered"],"additionalProperties":false}}},"required":["threads"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/conversations/{peer}":{"get":{"operationId":"voice.phoneConversation.get","summary":"Everything said with one person, whether they have agreed to hear from you, and until when a WhatsApp reply can be free text.","tags":["voice"],"parameters":[{"name":"peer","in":"path","required":true,"schema":{"type":"string","pattern":"^\\+\\d{6,15}$"}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_phone_conversation","x-rivier-graphql":"Query.voicePhoneConversationGet","x-rivier-sdk":"voice.phoneConversation.get","x-rivier-cli":"voice phone conversation get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"peer":{"type":"string"},"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"direction":{"type":"string","enum":["out","in"]},"peer":{"type":"string"},"own":{"type":"string"},"body":{"type":"string"},"media":{"type":"array","items":{"type":"string"}},"state":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"segments":{"type":"number"},"templateId":{"type":["string","null"]},"at":{"type":"string"}},"required":["id","channel","direction","peer","own","body","media","state","code","detail","segments","templateId","at"],"additionalProperties":false}},"windowOpensUntil":{"type":["string","null"]},"optedIn":{"type":"boolean"},"optedOut":{"type":"boolean"}},"required":["peer","messages","windowOpensUntil","optedIn","optedOut"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/messages":{"post":{"operationId":"voice.phoneMessage.send","summary":"Send a text, a picture message or a WhatsApp message. Checks opt-out, agreement, the WhatsApp window, the country's rules and the plan allowance first, and refuses with a plain reason and the next step rather than dropping anything. Marketing needs the person's recorded agreement.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_send","x-rivier-graphql":"Mutation.voicePhoneMessageSend","x-rivier-sdk":"voice.phoneMessage.send","x-rivier-cli":"voice phone message send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","pattern":"^\\+\\d{6,15}$"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"body":{"type":"string","maxLength":1600},"mediaUrls":{"type":"array","items":{"type":"string","format":"uri"},"maxItems":10},"templateId":{"type":"string","maxLength":80},"variables":{"type":"object","additionalProperties":{"type":"string","maxLength":1000}},"senderId":{"type":"string","maxLength":80},"serviceId":{"type":"string","maxLength":80},"purpose":{"type":"string","enum":["service","marketing"]},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["to"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"direction":{"type":"string","enum":["out","in"]},"peer":{"type":"string"},"own":{"type":"string"},"body":{"type":"string"},"media":{"type":"array","items":{"type":"string"}},"state":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"segments":{"type":"number"},"templateId":{"type":["string","null"]},"at":{"type":"string"}},"required":["id","channel","direction","peer","own","body","media","state","code","detail","segments","templateId","at"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"voice.phoneMessage.list","summary":"Recent texts and WhatsApp messages, both ways, with where each one stands.","tags":["voice"],"parameters":[{"name":"peer","in":"query","required":false,"schema":{"type":"string","pattern":"^\\+\\d{6,15}$"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["sms","mms","whatsapp"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePhoneMessageList","x-rivier-sdk":"voice.phoneMessage.list","x-rivier-cli":"voice phone message list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"direction":{"type":"string","enum":["out","in"]},"peer":{"type":"string"},"own":{"type":"string"},"body":{"type":"string"},"media":{"type":"array","items":{"type":"string"}},"state":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"segments":{"type":"number"},"templateId":{"type":["string","null"]},"at":{"type":"string"}},"required":["id","channel","direction","peer","own","body","media","state","code","detail","segments","templateId","at"],"additionalProperties":false}}},"required":["messages"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/messages/{id}":{"get":{"operationId":"voice.phoneMessage.get","summary":"One message and where it stands.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePhoneMessageGet","x-rivier-sdk":"voice.phoneMessage.get","x-rivier-cli":"voice phone message get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"direction":{"type":"string","enum":["out","in"]},"peer":{"type":"string"},"own":{"type":"string"},"body":{"type":"string"},"media":{"type":"array","items":{"type":"string"}},"state":{"type":"string"},"code":{"type":["string","null"]},"detail":{"type":["string","null"]},"segments":{"type":"number"},"templateId":{"type":["string","null"]},"at":{"type":"string"}},"required":["id","channel","direction","peer","own","body","media","state","code","detail","segments","templateId","at"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/numbers/search":{"get":{"operationId":"voice.phoneNumber.search","summary":"Phone numbers available to buy in a country, with monthly price and what the country requires. Searching costs nothing and buys nothing.","tags":["voice"],"parameters":[{"name":"country","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":2}},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["local","mobile","toll-free"]}},{"name":"areaCode","in":"query","required":false,"schema":{"type":"string","maxLength":10}},{"name":"contains","in":"query","required":false,"schema":{"type":"string","maxLength":15}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_phone_number_search","x-rivier-graphql":"Query.voicePhoneNumberSearch","x-rivier-sdk":"voice.phoneNumber.search","x-rivier-cli":"voice phone number search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["numbers"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/opt-in":{"post":{"operationId":"voice.phoneContact.optIn","summary":"Record how and where a person agreed to receive messages. Needed before marketing and before a WhatsApp template to someone who has not written first.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_opt_in","x-rivier-graphql":"Mutation.voicePhoneContactOptIn","x-rivier-sdk":"voice.phoneContact.optIn","x-rivier-cli":"voice phone contact opt in","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"peer":{"type":"string","pattern":"^\\+\\d{6,15}$"},"channel":{"type":"string","enum":["sms","mms","whatsapp"],"default":"sms"},"source":{"type":"string","minLength":3,"maxLength":300}},"required":["peer","source"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"peer":{"type":"string"},"optedIn":{"type":"boolean"},"optInSource":{"type":"string"},"optInAt":{"type":["string","null"]},"optedOutAt":{"type":["string","null"]},"lastInboundAt":{"type":["string","null"]}},"required":["id","channel","peer","optedIn","optInSource","optInAt","optedOutAt","lastInboundAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/opt-out":{"post":{"operationId":"voice.phoneContact.optOut","summary":"Record that a person does not want messages. They stay off the list until they opt back in.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_opt_out","x-rivier-graphql":"Mutation.voicePhoneContactOptOut","x-rivier-sdk":"voice.phoneContact.optOut","x-rivier-cli":"voice phone contact opt out","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"peer":{"type":"string","pattern":"^\\+\\d{6,15}$"},"channel":{"type":"string","enum":["sms","mms","whatsapp"],"default":"sms"}},"required":["peer"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string","enum":["sms","mms","whatsapp"]},"peer":{"type":"string"},"optedIn":{"type":"boolean"},"optInSource":{"type":"string"},"optInAt":{"type":["string","null"]},"optedOutAt":{"type":["string","null"]},"lastInboundAt":{"type":["string","null"]}},"required":["id","channel","peer","optedIn","optInSource","optInAt","optedOutAt","lastInboundAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/people/{peer}":{"delete":{"operationId":"voice.phoneContact.erase","summary":"Remove every message and agreement record held for one phone number.","tags":["voice"],"parameters":[{"name":"peer","in":"path","required":true,"schema":{"type":"string","pattern":"^\\+\\d{6,15}$"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneContactErase","x-rivier-sdk":"voice.phoneContact.erase","x-rivier-cli":"voice phone contact erase","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"number"}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/purchases":{"post":{"operationId":"voice.phonePurchase.request","summary":"Ask to buy a number. Nothing is bought: this records the price and waits for a person to confirm it.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_purchase_request","x-rivier-graphql":"Mutation.voicePhonePurchaseRequest","x-rivier-sdk":"voice.phonePurchase.request","x-rivier-cli":"voice phone purchase request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","pattern":"^\\+\\d{6,15}$"},"country":{"type":"string","minLength":2,"maxLength":2},"type":{"type":"string","enum":["local","mobile","toll-free"]},"label":{"type":"string","minLength":1,"maxLength":120}},"required":["number","country","label"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"country":{"type":"string"},"type":{"type":"string"},"label":{"type":"string"},"quoteMicros":{"type":["number","null"]},"currency":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"title":{"type":"string"},"blocksPurchase":{"type":"boolean"}},"required":["kind","title","blocksPurchase"],"additionalProperties":false}},"state":{"type":"string","enum":["pending","confirmed","bought","declined","expired","failed"]},"requestedBy":{"type":"string"},"decidedBy":{"type":["string","null"]},"numberId":{"type":["string","null"]},"note":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":"string"}},"required":["id","number","country","type","label","quoteMicros","currency","requirements","state","requestedBy","decidedBy","numberId","note","createdAt","expiresAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"voice.phonePurchase.list","summary":"Requests to buy a number and how each ended.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePhonePurchaseList","x-rivier-sdk":"voice.phonePurchase.list","x-rivier-cli":"voice phone purchase list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"purchases":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"country":{"type":"string"},"type":{"type":"string"},"label":{"type":"string"},"quoteMicros":{"type":["number","null"]},"currency":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"title":{"type":"string"},"blocksPurchase":{"type":"boolean"}},"required":["kind","title","blocksPurchase"],"additionalProperties":false}},"state":{"type":"string","enum":["pending","confirmed","bought","declined","expired","failed"]},"requestedBy":{"type":"string"},"decidedBy":{"type":["string","null"]},"numberId":{"type":["string","null"]},"note":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":"string"}},"required":["id","number","country","type","label","quoteMicros","currency","requirements","state","requestedBy","decidedBy","numberId","note","createdAt","expiresAt"],"additionalProperties":false}}},"required":["purchases"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/purchases/{id}/confirm":{"post":{"operationId":"voice.phonePurchase.confirm","summary":"Confirm a purchase request: the number is bought and the monthly cost starts. Only a signed-in person can do this.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhonePurchaseConfirm","x-rivier-sdk":"voice.phonePurchase.confirm","x-rivier-cli":"voice phone purchase confirm","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"country":{"type":"string"},"type":{"type":"string"},"label":{"type":"string"},"quoteMicros":{"type":["number","null"]},"currency":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"title":{"type":"string"},"blocksPurchase":{"type":"boolean"}},"required":["kind","title","blocksPurchase"],"additionalProperties":false}},"state":{"type":"string","enum":["pending","confirmed","bought","declined","expired","failed"]},"requestedBy":{"type":"string"},"decidedBy":{"type":["string","null"]},"numberId":{"type":["string","null"]},"note":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":"string"}},"required":["id","number","country","type","label","quoteMicros","currency","requirements","state","requestedBy","decidedBy","numberId","note","createdAt","expiresAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/purchases/{id}/decline":{"post":{"operationId":"voice.phonePurchase.decline","summary":"Decline a purchase request.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhonePurchaseDecline","x-rivier-sdk":"voice.phonePurchase.decline","x-rivier-cli":"voice phone purchase decline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"country":{"type":"string"},"type":{"type":"string"},"label":{"type":"string"},"quoteMicros":{"type":["number","null"]},"currency":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"title":{"type":"string"},"blocksPurchase":{"type":"boolean"}},"required":["kind","title","blocksPurchase"],"additionalProperties":false}},"state":{"type":"string","enum":["pending","confirmed","bought","declined","expired","failed"]},"requestedBy":{"type":"string"},"decidedBy":{"type":["string","null"]},"numberId":{"type":["string","null"]},"note":{"type":"string"},"createdAt":{"type":"string"},"expiresAt":{"type":"string"}},"required":["id","number","country","type","label","quoteMicros","currency","requirements","state","requestedBy","decidedBy","numberId","note","createdAt","expiresAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/registrations":{"get":{"operationId":"voice.phoneRegistration.list","summary":"What each country asks of a sender (sender names, 10DLC, toll-free verification, DLT), where each registration stands, and what it needs from the owner.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_phone_registrations","x-rivier-graphql":"Query.voicePhoneRegistrationList","x-rivier-sdk":"voice.phoneRegistration.list","x-rivier-cli":"voice phone registration list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"countries":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string"},"name":{"type":"string"},"confirm":{"type":"boolean"},"notes":{"type":"array","items":{"type":"string"}},"twoWay":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"state":{"type":"string"}},"required":["id","kind","state"],"additionalProperties":true}}},"required":["country","name","confirm","notes","twoWay","items"],"additionalProperties":false}}},"required":["countries"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"voice.phoneRegistration.set","summary":"Record where a registration stands, with the details the owner entered.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneRegistrationSet","x-rivier-sdk":"voice.phoneRegistration.set","x-rivier-cli":"voice phone registration set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string","minLength":2,"maxLength":2},"kind":{"type":"string","enum":["sender_id","a2p_10dlc","toll_free","dlt","whatsapp_business"]},"state":{"type":"string","enum":["not_started","owner_input_needed","submitted","approved","rejected"]},"details":{"type":"object","additionalProperties":{"type":"string","maxLength":500}},"note":{"type":"string","maxLength":500}},"required":["country","kind","state"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/senders":{"get":{"operationId":"voice.phoneSender.list","summary":"Everything the project can send from: its numbers, sender names and WhatsApp numbers, and which are ready.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_phone_senders","x-rivier-graphql":"Query.voicePhoneSenderList","x-rivier-sdk":"voice.phoneSender.list","x-rivier-cli":"voice phone sender list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"senders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["number","alphanumeric","whatsapp"]},"value":{"type":"string"},"countries":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","pending","rejected","needs_owner"]},"note":{"type":"string"},"oneWay":{"type":"boolean"},"numberId":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","kind","value","countries","status","note","oneWay","numberId","createdAt"],"additionalProperties":false}}},"required":["senders"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.phoneSender.add","summary":"Add a sender name or a WhatsApp number. A name that a country wants registered waits until the registration is approved.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneSenderAdd","x-rivier-sdk":"voice.phoneSender.add","x-rivier-cli":"voice phone sender add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["alphanumeric","whatsapp"]},"value":{"type":"string","minLength":3,"maxLength":20},"countries":{"type":"array","items":{"type":"string","minLength":2,"maxLength":2},"maxItems":30}},"required":["kind","value"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["number","alphanumeric","whatsapp"]},"value":{"type":"string"},"countries":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","pending","rejected","needs_owner"]},"note":{"type":"string"},"oneWay":{"type":"boolean"},"numberId":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","kind","value","countries","status","note","oneWay","numberId","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/senders/{id}":{"delete":{"operationId":"voice.phoneSender.remove","summary":"Remove a sender name or WhatsApp number.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneSenderRemove","x-rivier-sdk":"voice.phoneSender.remove","x-rivier-cli":"voice phone sender remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/services":{"get":{"operationId":"voice.phoneService.list","summary":"Messaging services: pools of numbers that send as one, keeping each person with the same number.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePhoneServiceList","x-rivier-sdk":"voice.phoneService.list","x-rivier-cli":"voice phone service list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sticky":{"type":"boolean"},"pool":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"}},"required":["id","name","sticky","pool","createdAt"],"additionalProperties":false}}},"required":["services"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.phoneService.create","summary":"Create a messaging service, optionally with numbers already in its pool.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneServiceCreate","x-rivier-sdk":"voice.phoneService.create","x-rivier-cli":"voice phone service create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":64},"sticky":{"type":"boolean"},"pool":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":50}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sticky":{"type":"boolean"},"pool":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"}},"required":["id","name","sticky","pool","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/services/{id}":{"delete":{"operationId":"voice.phoneService.delete","summary":"Delete a messaging service.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneServiceDelete","x-rivier-sdk":"voice.phoneService.delete","x-rivier-cli":"voice phone service delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/services/{id}/pool":{"post":{"operationId":"voice.phoneService.addNumber","summary":"Put a number into a messaging service's pool.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneServiceAddNumber","x-rivier-sdk":"voice.phoneService.addNumber","x-rivier-cli":"voice phone service add number","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"senderId":{"type":"string","minLength":1,"maxLength":80}},"required":["senderId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sticky":{"type":"boolean"},"pool":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"}},"required":["id","name","sticky","pool","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/services/{id}/pool/{senderId}":{"delete":{"operationId":"voice.phoneService.dropNumber","summary":"Take a number out of a messaging service's pool.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"senderId","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneServiceDropNumber","x-rivier-sdk":"voice.phoneService.dropNumber","x-rivier-cli":"voice phone service drop number","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"sticky":{"type":"boolean"},"pool":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"}},"required":["id","name","sticky","pool","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/status":{"get":{"operationId":"voice.phoneStatus.get","summary":"Whether the phone account is live, in test mode or a mock, and the addresses the carrier calls back on.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePhoneStatusGet","x-rivier-sdk":"voice.phoneStatus.get","x-rivier-cli":"voice phone status get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["live","test","mock"]},"hooks":{"type":"object","properties":{"inbound":{"type":"string"},"status":{"type":"string"}},"required":["inbound","status"],"additionalProperties":false},"note":{"type":"string"},"whatsapp":{"type":"object","properties":{"connected":{"type":"boolean"},"reason":{"anyOf":[{"type":"string","enum":["no_account","no_sender","sender_not_ready","needs_reconnect"]},{"type":"null"}]},"message":{"type":["string","null"]},"senders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["number","alphanumeric","whatsapp"]},"value":{"type":"string"},"countries":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","pending","rejected","needs_owner"]},"note":{"type":"string"},"oneWay":{"type":"boolean"},"numberId":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","kind","value","countries","status","note","oneWay","numberId","createdAt"],"additionalProperties":false}}},"required":["connected","reason","message","senders"],"additionalProperties":false}},"required":["mode","hooks","note","whatsapp"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/templates":{"get":{"operationId":"voice.phoneTemplate.list","summary":"WhatsApp message templates and whether WhatsApp has approved each.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_phone_templates","x-rivier-graphql":"Query.voicePhoneTemplateList","x-rivier-sdk":"voice.phoneTemplate.list","x-rivier-cli":"voice phone template list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"language":{"type":"string"},"category":{"type":"string","enum":["utility","marketing","authentication"]},"body":{"type":"string"},"variables":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["draft","pending","approved","rejected","paused"]},"reason":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","language","category","body","variables","status","reason","createdAt","updatedAt"],"additionalProperties":false}}},"required":["templates"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.phoneTemplate.create","summary":"Write a WhatsApp template. Placeholders are {{1}}, {{2}}. It cannot be sent until WhatsApp approves it.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_template_create","x-rivier-graphql":"Mutation.voicePhoneTemplateCreate","x-rivier-sdk":"voice.phoneTemplate.create","x-rivier-cli":"voice phone template create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":3,"maxLength":60},"language":{"type":"string","pattern":"^[a-z]{2}(_[A-Z]{2})?$","default":"en"},"category":{"type":"string","enum":["utility","marketing","authentication"]},"body":{"type":"string","minLength":1,"maxLength":1024}},"required":["name","category","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"language":{"type":"string"},"category":{"type":"string","enum":["utility","marketing","authentication"]},"body":{"type":"string"},"variables":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["draft","pending","approved","rejected","paused"]},"reason":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","language","category","body","variables","status","reason","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/templates/{id}":{"delete":{"operationId":"voice.phoneTemplate.delete","summary":"Delete a template.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePhoneTemplateDelete","x-rivier-sdk":"voice.phoneTemplate.delete","x-rivier-cli":"voice phone template delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/templates/{id}/refresh":{"post":{"operationId":"voice.phoneTemplate.refresh","summary":"Ask WhatsApp where a template's approval stands.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_template_refresh","x-rivier-graphql":"Mutation.voicePhoneTemplateRefresh","x-rivier-sdk":"voice.phoneTemplate.refresh","x-rivier-cli":"voice phone template refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"language":{"type":"string"},"category":{"type":"string","enum":["utility","marketing","authentication"]},"body":{"type":"string"},"variables":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["draft","pending","approved","rejected","paused"]},"reason":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","language","category","body","variables","status","reason","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/phone/templates/{id}/submit":{"post":{"operationId":"voice.phoneTemplate.submit","summary":"Send a template to WhatsApp for approval.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_phone_template_submit","x-rivier-graphql":"Mutation.voicePhoneTemplateSubmit","x-rivier-sdk":"voice.phoneTemplate.submit","x-rivier-cli":"voice phone template submit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"language":{"type":"string"},"category":{"type":"string","enum":["utility","marketing","authentication"]},"body":{"type":"string"},"variables":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["draft","pending","approved","rejected","paused"]},"reason":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","language","category","body","variables","status","reason","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/platform-customers":{"post":{"operationId":"contacts.platformCustomer.put","summary":"A customer known once to the platform, under its own id for them (ref), with an address and a number: made once, then updated with what is given.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsPlatformCustomerPut","x-rivier-sdk":"contacts.platformCustomer.put","x-rivier-cli":"contacts platform customer put","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ref":{"type":"string","minLength":1,"maxLength":200,"description":"The platform's own id for the person"},"email":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"phone":{"anyOf":[{"type":"string","pattern":"^\\+\\d{6,15}$"},{"type":"null"}]},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]}},"required":["ref"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"contacts.platformCustomer.list","summary":"The platform's customers, by ref or address.","tags":["contacts"],"parameters":[{"name":"ref","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"email","in":"query","required":false,"schema":{"type":"string","maxLength":320}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsPlatformCustomerList","x-rivier-sdk":"contacts.platformCustomer.list","x-rivier-cli":"contacts platform customer list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/platform-customers/{id}":{"get":{"operationId":"contacts.platformCustomer.get","summary":"One customer, with the connected businesses they dealt with and their contact in each.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsPlatformCustomerGet","x-rivier-sdk":"contacts.platformCustomer.get","x-rivier-cli":"contacts platform customer get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"contacts.platformCustomer.forget","summary":"Forget the platform's record of a customer and its links. Each business's contact stays that business's own record.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsPlatformCustomerForget","x-rivier-sdk":"contacts.platformCustomer.forget","x-rivier-cli":"contacts platform customer forget","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/platform-customers/{id}/link":{"post":{"operationId":"contacts.platformCustomer.link","summary":"The customer dealt with a connected business: their contact in that business's own project is found or made (only where the business granted contacts) and the link kept. The business sees its own contact and nothing of the platform's other businesses.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsPlatformCustomerLink","x-rivier-sdk":"contacts.platformCustomer.link","x-rivier-cli":"contacts platform customer link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"connectionId":{"type":"string","format":"uuid"}},"required":["connectionId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/certificates":{"get":{"operationId":"content.certificate.list","summary":"Certificates of authenticity that were issued.","tags":["content"],"parameters":[{"name":"entryId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_portfolio_certificates","x-rivier-sdk":"content.certificate.list","x-rivier-cli":"content certificate list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"certificates":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["certificates"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.certificate.issue","summary":"Issue a certificate of authenticity for a work or one numbered edition, with a serial number anyone can check.","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.certificate.issue","x-rivier-cli":"content certificate issue","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":160},"artist":{"type":"string","minLength":1,"maxLength":160},"medium":{"type":"string","maxLength":200,"default":""},"year":{"type":"integer","minimum":1000,"maximum":3000},"editionNo":{"type":"integer","minimum":1},"editionSize":{"type":"integer","minimum":1},"assetId":{"type":"string","format":"uuid"}},"required":["entryId","title","artist"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/certificates/{id}/void":{"post":{"operationId":"content.certificate.void","summary":"Void a certificate, with the reason. It stays on record and shows as void.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.certificate.void","x-rivier-cli":"content certificate void","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":400}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/offers":{"get":{"operationId":"content.offer.list","summary":"Licence offers and where each stands (offered, accepted, declined, paid, withdrawn, expired).","tags":["content"],"parameters":[{"name":"entryId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_portfolio_offers","x-rivier-sdk":"content.offer.list","x-rivier-cli":"content offer list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"offers":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["offers"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.offer.create","summary":"Offer a licence: what it allows, where, for how long, whether exclusive, and the price. The buyer answers at a private link; no money moves here.","tags":["content"],"parameters":[],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.offer.create","x-rivier-cli":"content offer create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"assetId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":160},"usage":{"type":"string","minLength":1,"maxLength":600},"territory":{"type":"string","maxLength":120,"default":"worldwide"},"termMonths":{"type":"integer","minimum":1,"maximum":1200},"exclusive":{"type":"boolean","default":false},"priceMinor":{"type":"integer","minimum":0},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"buyerName":{"type":"string","maxLength":160,"default":""},"days":{"type":"integer","minimum":1,"maximum":90,"default":30}},"required":["entryId","title","usage","priceMinor","currency"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/offers/{id}/settle":{"post":{"operationId":"content.offer.settle","summary":"Mark an accepted offer paid when the money arrived, or take an offer back.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:admin","x-rivier-sdk":"content.offer.settle","x-rivier-cli":"content offer settle","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["paid","withdrawn"]}},"required":["status"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/proofs":{"get":{"operationId":"content.proof.list","summary":"The private links made for a page, with how many pictures were approved, rejected or commented on.","tags":["content"],"parameters":[{"name":"entryId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_portfolio_proofs","x-rivier-sdk":"content.proof.list","x-rivier-cli":"content proof list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["links"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.proof.create","summary":"Make a private link for a client to look at a set of pictures, comment on them and approve them. The token is shown once.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-sdk":"content.proof.create","x-rivier-cli":"content proof create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"label":{"type":"string","maxLength":120,"default":""},"days":{"type":"integer","minimum":1,"maximum":60,"default":14},"canComment":{"type":"boolean","default":true},"canApprove":{"type":"boolean","default":true},"forEmail":{"type":"string","format":"email","maxLength":254}},"required":["entryId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/proofs/{id}":{"delete":{"operationId":"content.proof.revoke","summary":"Switch a client link off.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-sdk":"content.proof.revoke","x-rivier-cli":"content proof revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"type":"boolean","const":true}},"required":["revoked"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/portfolio/proofs/{id}/marks":{"get":{"operationId":"content.proof.marks","summary":"What the client approved, rejected or said, picture by picture.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_cms_portfolio_proof_marks","x-rivier-sdk":"content.proof.marks","x-rivier-cli":"content proof marks","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"marks":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["marks"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/predictions/insights":{"get":{"operationId":"analytics.insights.list","summary":"Prediction insights, highest likelihood first","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_personas_predict_insights","x-rivier-graphql":"Query.analyticsInsightsList","x-rivier-sdk":"analytics.insights.list","x-rivier-cli":"analytics insights list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/predictions/insights/{id}/decide":{"post":{"operationId":"analytics.insights.decide","summary":"A person keeps or sets aside an insight","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsInsightsDecide","x-rivier-sdk":"analytics.insights.decide","x-rivier-cli":"analytics insights decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/predictions/run":{"post":{"operationId":"analytics.predictions.run","summary":"Score current leads or bookings from the project's own history","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-mcp":"rivier_personas_predict_run","x-rivier-graphql":"Mutation.analyticsPredictionsRun","x-rivier-sdk":"analytics.predictions.run","x-rivier-cli":"analytics predictions run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/products":{"get":{"operationId":"workspace.product.list","summary":"The products of the project.","tags":["workspace"],"parameters":[{"name":"archived","in":"query","required":false,"schema":{"type":"string","const":"1"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_personas_product_list","x-rivier-graphql":"Query.workspaceProductList","x-rivier-sdk":"workspace.product.list","x-rivier-cli":"workspace product list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":true}}},"required":["products"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.product.create","summary":"Add a product.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_personas_product_create","x-rivier-graphql":"Mutation.workspaceProductCreate","x-rivier-sdk":"workspace.product.create","x-rivier-cli":"workspace product create","x-rivier-events":["workspace.product.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/products/{id}":{"get":{"operationId":"workspace.product.get","summary":"A product with its profile.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_personas_product_get","x-rivier-graphql":"Query.workspaceProductGet","x-rivier-sdk":"workspace.product.get","x-rivier-cli":"workspace product get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.product.update","summary":"Change a product.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_personas_product_update","x-rivier-graphql":"Mutation.workspaceProductUpdate","x-rivier-sdk":"workspace.product.update","x-rivier-cli":"workspace product update","x-rivier-events":["workspace.product.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/products/{id}/archive":{"post":{"operationId":"workspace.product.archive","summary":"Take a product out of use.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_personas_product_archive","x-rivier-graphql":"Mutation.workspaceProductArchive","x-rivier-sdk":"workspace.product.archive","x-rivier-cli":"workspace product archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/products/{id}/links":{"get":{"operationId":"workspace.product.links","summary":"The brand items a product uses.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceProductLinks","x-rivier-sdk":"workspace.product.links","x-rivier-cli":"workspace product links","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.product.link","summary":"Attach an asset or collection to a product.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_personas_product_link","x-rivier-graphql":"Mutation.workspaceProductLink","x-rivier-sdk":"workspace.product.link","x-rivier-cli":"workspace product link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"refId":{"type":"string","format":"uuid"},"role":{"type":"string","maxLength":40}},"required":["kind","refId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/products/{id}/links/{kind}/{refId}":{"delete":{"operationId":"workspace.product.unlink","summary":"Detach a brand item from a product.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"kind","in":"path","required":true,"schema":{"type":"string"}},{"name":"refId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceProductUnlink","x-rivier-sdk":"workspace.product.unlink","x-rivier-cli":"workspace product unlink","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/products/{id}/restore":{"post":{"operationId":"workspace.product.restore","summary":"Bring an archived product back.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceProductRestore","x-rivier-sdk":"workspace.product.restore","x-rivier-cli":"workspace product restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/project-hub":{"get":{"operationId":"workspace.projectHub.get","summary":"The project as one page: counts of campaigns, templates, segments, lists, forms and contacts, domains, numbers and assets, the sender, recent campaigns, library updates, setup progress and what is blocking.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceProjectHubGet","x-rivier-sdk":"workspace.projectHub.get","x-rivier-cli":"workspace project hub get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/project-hub/campaign-from-brief":{"post":{"operationId":"workspace.projectHub.draftFromBrief","summary":"Draft a campaign from a brief: picks the segment among those that can be written to, reuses the best template (the organisation's if the project has none), writes the copy in the audience language and runs the check. It stops at a draft: a person approves it before anything is sent.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceProjectHubDraftFromBrief","x-rivier-sdk":"workspace.projectHub.draftFromBrief","x-rivier-cli":"workspace project hub draft from brief","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":10,"maxLength":2000},"language":{"type":"string","maxLength":10},"channel":{"type":"string","enum":["email","sms"],"default":"email"}},"required":["brief"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/project-hub/search":{"get":{"operationId":"workspace.projectHub.search","summary":"Search across the project's contacts, campaigns, templates, segments, forms, brand assets, domains, numbers and the organisation library.","tags":["workspace"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceProjectHubSearch","x-rivier-sdk":"workspace.projectHub.search","x-rivier-cli":"workspace project hub search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/projects":{"get":{"operationId":"usage.project.list","summary":"The projects you own, by name. A key sees the one project it belongs to.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageProjectList","x-rivier-sdk":"usage.project.list","x-rivier-cli":"usage project list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"projects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"package":{"type":"string"},"organization_id":{"type":["string","null"]},"created_at":{"type":"string"}},"required":["id","name","kind","package","organization_id","created_at"],"additionalProperties":true}}},"required":["projects"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-gaps":{"get":{"operationId":"analytics.prompt.gaps","summary":"Prompts where the business is not cited.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsPromptGaps","x-rivier-sdk":"analytics.prompt.gaps","x-rivier-cli":"analytics prompt gaps","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-gaps.csv":{"get":{"operationId":"analytics.prompt.gapsCsv","summary":"The gaps as CSV.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-sdk":"analytics.prompt.gapsCsv","x-rivier-cli":"analytics prompt gaps csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-runs":{"get":{"operationId":"analytics.prompt.runs","summary":"Prompt run results.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsPromptRuns","x-rivier-sdk":"analytics.prompt.runs","x-rivier-cli":"analytics prompt runs","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-runs.csv":{"get":{"operationId":"analytics.prompt.runsCsv","summary":"The runs as CSV.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-sdk":"analytics.prompt.runsCsv","x-rivier-cli":"analytics prompt runs csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-sentiment":{"get":{"operationId":"analytics.prompt.sentiment","summary":"How answers describe the business.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsPromptSentiment","x-rivier-sdk":"analytics.prompt.sentiment","x-rivier-cli":"analytics prompt sentiment","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-sentiment.csv":{"get":{"operationId":"analytics.prompt.sentimentCsv","summary":"The sentiment as CSV.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-sdk":"analytics.prompt.sentimentCsv","x-rivier-cli":"analytics prompt sentiment csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-sets":{"get":{"operationId":"analytics.prompt.sets","summary":"Prompt sets tracked across answer engines.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsPromptSets","x-rivier-sdk":"analytics.prompt.sets","x-rivier-cli":"analytics prompt sets","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"analytics.prompt.createSet","summary":"Create a prompt set.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsPromptCreateSet","x-rivier-sdk":"analytics.prompt.createSet","x-rivier-cli":"analytics prompt create set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-sets/{id}":{"delete":{"operationId":"analytics.prompt.deleteSet","summary":"Delete a prompt set.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsPromptDeleteSet","x-rivier-sdk":"analytics.prompt.deleteSet","x-rivier-cli":"analytics prompt delete set","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-sets/{id}/prompts":{"get":{"operationId":"analytics.prompt.list","summary":"The prompts of a set.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsPromptList","x-rivier-sdk":"analytics.prompt.list","x-rivier-cli":"analytics prompt list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"analytics.prompt.add","summary":"Add a prompt.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsPromptAdd","x-rivier-sdk":"analytics.prompt.add","x-rivier-cli":"analytics prompt add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":1000}},"required":["text"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompt-sets/{id}/suggestions":{"get":{"operationId":"analytics.prompt.suggest","summary":"Suggested prompts for a set.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsPromptSuggest","x-rivier-sdk":"analytics.prompt.suggest","x-rivier-cli":"analytics prompt suggest","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/prompts/{id}":{"delete":{"operationId":"analytics.prompt.delete","summary":"Delete a prompt.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsPromptDelete","x-rivier-sdk":"analytics.prompt.delete","x-rivier-cli":"analytics prompt delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals":{"get":{"operationId":"shop.proposal.list","summary":"Proposals by status, client or a search, newest first.","tags":["shop"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(draft|sent|viewed|accepted|declined|expired|void|converted)(,(draft|sent|viewed|accepted|declined|expired|void|converted))*$"}},{"name":"clientId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_proposals_list","x-rivier-graphql":"Query.shopProposalList","x-rivier-sdk":"shop.proposal.list","x-rivier-cli":"proposals list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.proposal.create","summary":"Draft a proposal for a client; idempotent on the key (the body's idempotencyKey or the Idempotency-Key header). It has no number until it is sent.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_proposals_create","x-rivier-graphql":"Mutation.shopProposalCreate","x-rivier-sdk":"shop.proposal.create","x-rivier-cli":"proposals create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","maxLength":60},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":60},"registration":{"type":"string","maxLength":60},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"recipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5,"default":[]},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20},"title":{"type":"string","maxLength":200},"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"notes":{"type":"string","maxLength":4000},"terms":{"type":"string","maxLength":10000},"paymentInstructions":{"type":"string","maxLength":2000},"templateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"taxInclusive":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"quantity":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":10,"default":"C62"},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999},"discountMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"optional":{"type":"boolean","default":false},"selected":{"type":"boolean","default":true}},"required":["description","unitAmountMinor"],"additionalProperties":false},"maxItems":200},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"useCase":{"type":"string","maxLength":80},"sections":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["scope","deliverables","timeline","pricing","terms","custom"]},"title":{"type":"string","maxLength":120,"default":""},"body":{"type":"string","maxLength":20000,"default":""},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":300},"detail":{"type":"string","maxLength":1000,"default":""},"when":{"type":"string","maxLength":60,"default":""}},"required":["label"],"additionalProperties":false},"maxItems":60,"default":[]}},"required":["key"],"additionalProperties":false},"maxItems":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}":{"get":{"operationId":"shop.proposal.get","summary":"One proposal with its lines, tax groups, sections, status and the client's answer.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_proposals_get","x-rivier-graphql":"Query.shopProposalGet","x-rivier-sdk":"shop.proposal.get","x-rivier-cli":"proposals get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.proposal.update","summary":"Change a proposal; fields left out stay as they are. A sent proposal becomes a new revision and goes back to draft.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_proposals_update","x-rivier-graphql":"Mutation.shopProposalUpdate","x-rivier-sdk":"shop.proposal.update","x-rivier-cli":"proposals update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","maxLength":60},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":60},"registration":{"type":"string","maxLength":60},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"recipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5,"default":[]},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20},"title":{"type":"string","maxLength":200},"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"notes":{"type":"string","maxLength":4000},"terms":{"type":"string","maxLength":10000},"paymentInstructions":{"type":"string","maxLength":2000},"templateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"taxInclusive":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"quantity":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":10,"default":"C62"},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999},"discountMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"optional":{"type":"boolean","default":false},"selected":{"type":"boolean","default":true}},"required":["description","unitAmountMinor"],"additionalProperties":false},"maxItems":200},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"useCase":{"type":"string","maxLength":80},"sections":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["scope","deliverables","timeline","pricing","terms","custom"]},"title":{"type":"string","maxLength":120,"default":""},"body":{"type":"string","maxLength":20000,"default":""},"items":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":300},"detail":{"type":"string","maxLength":1000,"default":""},"when":{"type":"string","maxLength":60,"default":""}},"required":["label"],"additionalProperties":false},"maxItems":60,"default":[]}},"required":["key"],"additionalProperties":false},"maxItems":30},"expectedVersion":{"type":"integer","minimum":1}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/certificate":{"get":{"operationId":"shop.proposal.certificate","summary":"The certificate of completion of an accepted proposal as a PDF: who accepted, when, from where, and the fingerprint of what they accepted.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.proposal.certificate","x-rivier-cli":"proposals certificate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/convert":{"post":{"operationId":"shop.proposal.convert","summary":"Turn an accepted proposal into a quote (the default) or into invoices. The proposal becomes converted.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.proposal.convert","x-rivier-cli":"proposals convert","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","enum":["quote","invoice"],"default":"quote"},"depositPercent":{"type":"integer","minimum":1,"maximum":99},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"document":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true},"quote":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true},"invoices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"number":{"type":["string","null"]},"status":{"type":"string"},"totalMinor":{"type":"number"},"purpose":{"type":"string","enum":["full","deposit","balance"]}},"required":["id","number","status","totalMinor","purpose"],"additionalProperties":false}}},"required":["document"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/duplicate":{"post":{"operationId":"shop.proposal.duplicate","summary":"A new draft copied from a proposal, without its number; idempotent on the key.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_proposals_duplicate","x-rivier-graphql":"Mutation.shopProposalDuplicate","x-rivier-sdk":"shop.proposal.duplicate","x-rivier-cli":"proposals duplicate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/events":{"get":{"operationId":"shop.proposal.events","summary":"What happened to a proposal, in order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_proposals_events","x-rivier-graphql":"Query.shopProposalEvents","x-rivier-sdk":"shop.proposal.events","x-rivier-cli":"proposals events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"number"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"type":{"type":"string"},"actor":{"type":"string"},"data":{"type":"object","additionalProperties":{}},"at":{"type":"string"}},"required":["seq","kind","docId","type","actor","data","at"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/link":{"post":{"operationId":"shop.proposal.link","summary":"A fresh private link to a sent proposal, to paste into a message; the address is shown once. With replace true the older links stop working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_proposals_link","x-rivier-graphql":"Mutation.shopProposalLink","x-rivier-sdk":"shop.proposal.link","x-rivier-cli":"proposals link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30},"replace":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"token":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["url","token","link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/links":{"get":{"operationId":"shop.proposal.links","summary":"The private links of a proposal: expiry, how often each was opened, whether it was revoked.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_proposals_links","x-rivier-graphql":"Query.shopProposalLinks","x-rivier-sdk":"shop.proposal.links","x-rivier-cli":"proposals links","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}}},"required":["links"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/links/{linkId}/regenerate":{"post":{"operationId":"shop.proposal.linkRegenerate","summary":"Replace a link of a proposal with a new one; the old address stops working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.proposal.linkRegenerate","x-rivier-cli":"proposals links regenerate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"token":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["url","token","link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/links/{linkId}/revoke":{"post":{"operationId":"shop.proposal.linkRevoke","summary":"Switch one link of a proposal off.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.proposal.linkRevoke","x-rivier-cli":"proposals links revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/pdf":{"get":{"operationId":"shop.proposal.pdf","summary":"The proposal as a PDF.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.proposal.pdf","x-rivier-cli":"proposals pdf","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/preview":{"post":{"operationId":"shop.proposal.preview","summary":"The mail that sending the proposal would produce, the PDF size and the checks that would stop it; nothing is sent.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_proposals_preview","x-rivier-graphql":"Mutation.shopProposalPreview","x-rivier-sdk":"shop.proposal.preview","x-rivier-cli":"proposals preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","link"],"default":"email"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"attachPdf":{"type":"boolean","default":true},"linkDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["quote","proposal","invoice"]},"status":{"type":"string"},"subject":{"type":"string"},"message":{"type":"string"},"text":{"type":"string"},"html":{"type":"string"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["email"],"additionalProperties":true}},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["email"],"additionalProperties":true}},"pdf":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"bytes":{"type":"number"}},"required":["filename","bytes"],"additionalProperties":false},{"type":"null"}]},"problems":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"type":"string","enum":["error","warning"]},"message":{"type":"string"}},"required":["code","severity","message"],"additionalProperties":false}},"ready":{"type":"boolean"},"linkNote":{"type":"string"}},"required":["kind","status","subject","message","text","html","to","cc","pdf","problems","ready","linkNote"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/send":{"post":{"operationId":"shop.proposal.send","summary":"Send the proposal to the client by mail with its PDF and private link, or with channel link return the link without mail. The first send numbers it and fixes its content; sending again is a resend.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_proposals_send","x-rivier-sdk":"shop.proposal.send","x-rivier-cli":"proposals send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","link"],"default":"email"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"attachPdf":{"type":"boolean","default":true},"linkDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean"},"channel":{"type":"string","enum":["email","link"]},"url":{"type":"string"},"linkId":{"type":"string","format":"uuid"},"resend":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string","enum":["to","cc"]},"ok":{"type":"boolean"},"reason":{"type":"string"},"detail":{"type":"string"}},"required":["email","role","ok"],"additionalProperties":false}},"number":{"type":["string","null"]},"status":{"type":"string"}},"required":["sent","channel","url","linkId","resend","results","number","status"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/proposals/{id}/void":{"post":{"operationId":"shop.proposal.void","summary":"Void a proposal with the reason; it stays on record and its links stop working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.proposal.void","x-rivier-cli":"proposals void","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/availability":{"get":{"operationId":"bookings.public.slots","summary":"Free times of a published service.","tags":["bookings"],"parameters":[{"name":"serviceId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"durationMinutes","in":"query","required":false,"schema":{"type":"integer","minimum":5,"maximum":1440}},{"name":"partySize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"resourceIds","in":"query","required":false,"schema":{"allOf":[{"type":"string","maxLength":1000},{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20}]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":200}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicBookingAvailability","x-rivier-sdk":"bookings.public.slots","x-rivier-cli":"bookings public slots","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/book":{"post":{"operationId":"bookings.public.book","summary":"Book from a hold or a quote; answers with the booking, its terms and a link to manage it.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.createPublicBooking","x-rivier-sdk":"bookings.public.book","x-rivier-cli":"bookings public book","x-rivier-events":["bookings.booking.created"],"x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"sessionId":{"type":"string","format":"uuid"},"quote":{"type":"string","maxLength":4000},"holdId":{"type":"string","format":"uuid"},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"locale":{"type":"string","maxLength":20}},"required":["name"],"additionalProperties":false},"consent":{"type":"object","properties":{"email":{"type":"boolean"},"sms":{"type":"boolean"},"voice":{"type":"boolean"},"whatsapp":{"type":"boolean"}},"additionalProperties":false,"default":{}},"intake":{"type":"object","additionalProperties":{},"default":{}},"notes":{"type":"string","maxLength":2000,"default":""},"channel":{"type":"string","enum":["owner","widget","api","mcp","phone","chat","import"],"default":"api"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["serviceId","start","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/holds":{"post":{"operationId":"bookings.public.hold","summary":"Hold a time for the visitor; limited per visitor.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.holdPublicBooking","x-rivier-sdk":"bookings.public.hold","x-rivier-cli":"bookings public hold","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"sessionId":{"type":"string","format":"uuid"},"quote":{"type":"string","maxLength":4000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["serviceId","start","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/holds/{id}":{"delete":{"operationId":"bookings.public.release","summary":"Release the visitor's own hold.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.releasePublicBookingHold","x-rivier-sdk":"bookings.public.release","x-rivier-cli":"bookings public release","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"released":{"type":"boolean","const":true}},"required":["released"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/link":{"get":{"operationId":"bookings.public.link","summary":"A booking by its signed link.","tags":["bookings"],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":10,"maxLength":4000}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicBookingLink","x-rivier-sdk":"bookings.public.link","x-rivier-cli":"bookings public link","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/link/cancel":{"post":{"operationId":"bookings.public.cancel","summary":"Cancel by the signed link; the policy decides the money.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.cancelPublicBooking","x-rivier-sdk":"bookings.public.cancel","x-rivier-cli":"bookings public cancel","x-rivier-events":["bookings.booking.cancelled"],"x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":4000},"reason":{"type":"string","maxLength":300,"default":""}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/link/reschedule":{"post":{"operationId":"bookings.public.reschedule","summary":"Move by the signed link while the policy still makes that free.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.reschedulePublicBooking","x-rivier-sdk":"bookings.public.reschedule","x-rivier-cli":"bookings public reschedule","x-rivier-events":["bookings.booking.rescheduled"],"x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"start":{"type":"string","format":"date-time"},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120},"reason":{"type":"string","maxLength":300,"default":""},"token":{"type":"string","minLength":10,"maxLength":4000}},"required":["start","idempotencyKey","token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/quotes":{"post":{"operationId":"bookings.public.quote","summary":"A signed quote for a published service.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicBookingQuote","x-rivier-sdk":"bookings.public.quote","x-rivier-cli":"bookings public quote","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"start":{"type":"string","format":"date-time"},"durationMinutes":{"type":"integer","minimum":5,"maximum":1440},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"resourceIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":20},"sessionId":{"type":"string","format":"uuid"}},"required":["serviceId","start"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/services":{"get":{"operationId":"bookings.public.services","summary":"Published services, as the widget shows them.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicBookingServices","x-rivier-sdk":"bookings.public.services","x-rivier-cli":"bookings public services","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["services"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/bookings/waitlist":{"post":{"operationId":"bookings.waitlist.publicJoin","summary":"A visitor puts themselves in the line when nothing is free.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-sdk":"bookings.waitlist.publicJoin","x-rivier-cli":"bookings waitlist public join","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"serviceId":{"type":"string","format":"uuid"},"from":{"type":"string","format":"date-time"},"to":{"type":"string","format":"date-time"},"partySize":{"type":"integer","minimum":1,"maximum":10000,"default":1},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"}},"required":["name"],"additionalProperties":false},"notes":{"type":"string","maxLength":500,"default":""}},"required":["serviceId","from","to","contact"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/certificates/{serial}":{"get":{"operationId":"content.certificate.verify","summary":"Check a certificate by serial number: what it certifies, the edition, the date and whether it was voided.","tags":["content"],"parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.certificate.verify","x-rivier-cli":"content certificate verify","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/comments/{entryId}":{"get":{"operationId":"content.readerComment.public","summary":"The comments readers may see under a page, and the guard's token for the form.","tags":["content"],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.readerComment.public","x-rivier-cli":"content reader comment public","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.readerComment.submit","summary":"A reader writes a comment. The form guard judges it: abuse is refused, anything unsure is held for a person.","tags":["content"],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.readerComment.submit","x-rivier-cli":"content reader comment submit","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"email":{"type":"string","format":"email","maxLength":254},"body":{"type":"string","minLength":1,"maxLength":2000},"parentId":{"type":"string","format":"uuid"},"token":{"type":"string","maxLength":2000},"proof":{"type":"string","maxLength":64},"shownMs":{"type":"integer","minimum":0,"maximum":86400000},"honeypot":{"type":"string","maxLength":200}},"required":["name","body"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["published","held"]}},"required":["status"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/entitlements/check":{"post":{"operationId":"content.entitlement.check","summary":"At request time: may this reader see the body now. Counts a metered read once per page per month.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.entitlement.check","x-rivier-cli":"content entitlement check","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"token":{"type":"string","maxLength":4000},"readerKey":{"type":"string","minLength":8,"maxLength":120}},"required":["entryId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"allowed":{"type":"boolean"},"reason":{"type":"string"},"meterRemaining":{"type":["number","null"]}},"required":["allowed","reason","meterRemaining"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/entitlements/entry/{entryId}":{"get":{"operationId":"content.entitlement.entry","summary":"For a site build: whether a page is free, metered or paid, which fields everyone may read, which rich-text fields are behind the wall and how many blocks of them are shown, and which tiers open it.","tags":["content"],"parameters":[{"name":"entryId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.entitlement.entry","x-rivier-cli":"content entitlement entry","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/entitlements/reveal":{"post":{"operationId":"content.entitlement.reveal","summary":"For a reader the check lets in: the gated rich-text fields of the page in full, and nothing for anyone else. A metered read is counted once, as in check.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.entitlement.reveal","x-rivier-cli":"content entitlement reveal","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"token":{"type":"string","maxLength":4000},"readerKey":{"type":"string","minLength":8,"maxLength":120}},"required":["entryId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/amenities":{"get":{"operationId":"bookings.publicStay.amenities","summary":"Facilities of the property and amenities of each published room type, labelled in the asked language.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":12}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingAmenities","x-rivier-sdk":"bookings.publicStay.amenities","x-rivier-cli":"bookings public stay amenities","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/areas":{"get":{"operationId":"bookings.publicStay.areas","summary":"Buildings, floors and areas of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingAreas","x-rivier-sdk":"bookings.publicStay.areas","x-rivier-cli":"bookings public stay areas","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"areas":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["areas"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/availability":{"get":{"operationId":"bookings.publicStay.availability","summary":"What can be sold for a stay, on the direct rate plans.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"arrival","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"departure","in":"query","required":true,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},{"name":"adults","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":2}},{"name":"children","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":20,"default":0}},{"name":"infants","in":"query","required":false,"schema":{"type":"integer","minimum":0,"maximum":10,"default":0}},{"name":"roomTypeId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"ratePlanId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"promoCode","in":"query","required":false,"schema":{"type":"string","maxLength":24}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingAvailability","x-rivier-sdk":"bookings.publicStay.availability","x-rivier-cli":"bookings public stay availability","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/currencies":{"get":{"operationId":"bookings.publicStay.currencies","summary":"The property's own currency and the display currencies with their rates, dates and sources, for showing an approximate price.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingCurrencies","x-rivier-sdk":"bookings.publicStay.currencies","x-rivier-cli":"bookings public stay currencies","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/extras":{"get":{"operationId":"bookings.publicStay.extras","summary":"Extras and fees a guest can add to a stay.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingExtras","x-rivier-sdk":"bookings.publicStay.extras","x-rivier-cli":"bookings public stay extras","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"extras":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["extras"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/feed":{"get":{"operationId":"bookings.publicStay.feed","summary":"A listing feed of a property: one listing per room type, or per room for a villa, rental or apartment hotel, with capacity, beds, amenities, pictures, coordinates, check-in times, rules and the lowest price.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":12}},{"name":"url","in":"query","required":false,"schema":{"type":"string"}},{"name":"mapUrl","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingFeed","x-rivier-sdk":"bookings.publicStay.feed","x-rivier-cli":"bookings public stay feed","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/holds":{"post":{"operationId":"bookings.publicStay.hold","summary":"Hold the nights for the visitor; limited per visitor.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.holdPublicStay","x-rivier-sdk":"bookings.publicStay.hold","x-rivier-cli":"bookings public stay hold","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"infants":{"type":"integer","minimum":0,"maximum":10,"default":0},"promoCode":{"type":"string","maxLength":24},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]},"quote":{"type":"string","maxLength":4000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["propertyId","roomTypeId","ratePlanId","arrival","departure","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/holds/{id}":{"delete":{"operationId":"bookings.publicStay.release","summary":"Release the visitor's own hold.","tags":["bookings"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.releasePublicStayHold","x-rivier-sdk":"bookings.publicStay.release","x-rivier-cli":"bookings public stay release","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"released":{"type":"boolean","const":true}},"required":["released"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/link":{"get":{"operationId":"bookings.publicStay.link","summary":"A reservation by its signed link.","tags":["bookings"],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":10,"maxLength":4000}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicReservationLink","x-rivier-sdk":"bookings.publicStay.link","x-rivier-cli":"bookings public stay link","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/link/cancel":{"post":{"operationId":"bookings.publicStay.cancel","summary":"Cancel by the signed link; the policy decides the money.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.cancelPublicReservation","x-rivier-sdk":"bookings.publicStay.cancel","x-rivier-cli":"bookings public stay cancel","x-rivier-events":["bookings.reservation.cancelled"],"x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":4000},"reason":{"type":"string","maxLength":300,"default":""}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/link/check-in":{"post":{"operationId":"bookings.publicStay.checkIn","summary":"Digital check-in from the reservation's own link: who is coming, when they arrive, that they read the house rules. It is kept for the desk; no identity document is asked for.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.checkInAhead","x-rivier-sdk":"bookings.publicStay.checkIn","x-rivier-cli":"bookings public stay check in","x-rivier-events":["bookings.reservation.precheckin"],"x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":600},"arrivalTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"guests":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"nationality":{"type":"string","pattern":"^[A-Za-z]{2}$"}},"required":["name"],"additionalProperties":false},"minItems":1,"maxItems":30},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"vehiclePlate":{"type":"string","maxLength":20},"notes":{"type":"string","maxLength":1000,"default":""},"acceptedHouseRules":{"type":"boolean","const":true}},"required":["token","guests","acceptedHouseRules"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/open-graph":{"get":{"operationId":"bookings.public.openGraph","summary":"Open Graph and card fields for the property page in one language, with the other languages as alternates.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"langTemplate","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingOpenGraph","x-rivier-sdk":"bookings.public.openGraph","x-rivier-cli":"bookings public open graph","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/pois":{"get":{"operationId":"bookings.publicStay.pois","summary":"Nearby places and transport links of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingPois","x-rivier-sdk":"bookings.publicStay.pois","x-rivier-cli":"bookings public stay pois","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"pois":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["pois"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/properties":{"get":{"operationId":"bookings.publicStay.properties","summary":"Properties, as the widget shows them.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingProperties","x-rivier-sdk":"bookings.publicStay.properties","x-rivier-cli":"bookings public stay properties","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"properties":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["properties"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/quotes":{"post":{"operationId":"bookings.publicStay.quote","summary":"A signed quote for a stay.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingQuote","x-rivier-sdk":"bookings.publicStay.quote","x-rivier-cli":"bookings public stay quote","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"infants":{"type":"integer","minimum":0,"maximum":10,"default":0},"promoCode":{"type":"string","maxLength":24},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]}},"required":["propertyId","roomTypeId","ratePlanId","arrival","departure"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/rate-plans":{"get":{"operationId":"bookings.publicStay.ratePlans","summary":"The direct rate plans a visitor can choose, with kind, meal plan, stay limits, included extras and cancellation terms in words.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingRatePlans","x-rivier-sdk":"bookings.publicStay.ratePlans","x-rivier-cli":"bookings public stay rate plans","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ratePlans":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["ratePlans"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/reserve":{"post":{"operationId":"bookings.publicStay.reserve","summary":"Reserve from a hold or a quote; answers with the reservation, its terms, a payment step when a deposit is due, and a link to manage it.","tags":["bookings"],"parameters":[],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Mutation.createPublicReservation","x-rivier-sdk":"bookings.publicStay.reserve","x-rivier-cli":"bookings public stay reserve","x-rivier-events":["bookings.reservation.created"],"x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyId":{"type":"string","format":"uuid"},"roomTypeId":{"type":"string","format":"uuid"},"ratePlanId":{"type":"string","format":"uuid"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"adults":{"type":"integer","minimum":1,"maximum":20,"default":2},"children":{"type":"integer","minimum":0,"maximum":20,"default":0},"infants":{"type":"integer","minimum":0,"maximum":10,"default":0},"promoCode":{"type":"string","maxLength":24},"extras":{"type":"array","items":{"type":"object","properties":{"extraId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":50,"default":1}},"required":["extraId"],"additionalProperties":false},"maxItems":20,"default":[]},"quote":{"type":"string","maxLength":4000},"holdId":{"type":"string","format":"uuid"},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"},"locale":{"type":"string","maxLength":20},"company":{"type":"string","maxLength":160},"vatId":{"type":"string","maxLength":40}},"required":["name"],"additionalProperties":false},"consent":{"type":"object","properties":{"email":{"type":"boolean"},"sms":{"type":"boolean"},"whatsapp":{"type":"boolean"}},"additionalProperties":false,"default":{}},"specialRequests":{"type":"string","maxLength":2000,"default":""},"channel":{"type":"string","enum":["owner","widget","api","mcp","phone","chat","import"],"default":"api"},"source":{"type":"string","maxLength":40,"default":"direct"},"externalId":{"type":"string","maxLength":80},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["propertyId","roomTypeId","ratePlanId","arrival","departure","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/room-types":{"get":{"operationId":"bookings.publicStay.roomTypes","summary":"Published room types of a property.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicRoomTypes","x-rivier-sdk":"bookings.publicStay.roomTypes","x-rivier-cli":"bookings public stay room types","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"roomTypes":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["roomTypes"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/schema-org":{"get":{"operationId":"bookings.publicStay.schemaOrg","summary":"schema.org markup for a property and its published room types (type from the kind of property, address, coordinates, star rating, check-in times, languages, amenities with hours, rooms with beds and size), ready to place on a page.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":12}},{"name":"url","in":"query","required":false,"schema":{"type":"string"}},{"name":"mapUrl","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingSchemaOrg","x-rivier-sdk":"bookings.publicStay.schemaOrg","x-rivier-cli":"bookings public stay schema org","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/lodging/sitemap":{"get":{"operationId":"bookings.public.sitemap","summary":"The lodging pages of a site as sitemap entries, each with its address in every language the property speaks and an x-default.","tags":["bookings"],"parameters":[{"name":"propertyId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"url","in":"query","required":true,"schema":{"type":"string"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string"}},{"name":"roomPath","in":"query","required":false,"schema":{"type":"string"}},{"name":"langTemplate","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"bookings:read","x-rivier-graphql":"Query.publicLodgingSitemap","x-rivier-sdk":"bookings.public.sitemap","x-rivier-cli":"bookings public sitemap","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["entries"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/loyalty":{"get":{"operationId":"contacts.loyalty.public","summary":"The programme as a visitor sees it: how points are earned, the levels and the rewards. Nothing about anyone's card.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-sdk":"contacts.loyalty.public","x-rivier-cli":"contacts loyalty public","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/members/sign-in":{"post":{"operationId":"content.member.signIn","summary":"Ask for a sign-in code by email. The answer is the same whether or not the address is a member.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.member.signIn","x-rivier-cli":"content member sign in","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"}},"required":["email"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean","const":true}},"required":["sent"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/members/verify":{"post":{"operationId":"content.member.verify","summary":"Check the code a member was mailed and get their tokens. Every failure looks the same; five wrong tries end the code.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.member.verify","x-rivier-cli":"content member verify","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"code":{"type":"string","pattern":"^\\d{8}$"}},"required":["email","code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/carts":{"post":{"operationId":"shop.publicCart.create","summary":"Start a cart.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCart.create","x-rivier-cli":"shop public cart create","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currency":{"type":"string","pattern":"^[a-z]{3}$"},"country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"string","const":""}],"default":""},"channel":{"type":"string","maxLength":40,"default":"storefront"}},"required":["currency"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/carts/{id}":{"get":{"operationId":"shop.publicCart.get","summary":"A cart priced as it stands.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"shippingRateId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"query","required":false,"schema":{"type":"string","maxLength":10}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCart.get","x-rivier-cli":"shop public cart get","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.publicCart.update","summary":"Set the cart's country and discount codes.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCart.update","x-rivier-cli":"shop public cart update","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"string","const":""}]},"discountCodes":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{2,40}$"},"maxItems":5}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/carts/{id}/lines":{"post":{"operationId":"shop.publicCart.addLine","summary":"Add a variant to the cart.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCart.addLine","x-rivier-cli":"shop public cart add line","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["variantId","quantity"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/carts/{id}/lines/{variantId}":{"put":{"operationId":"shop.publicCart.setLine","summary":"Change a line's quantity; zero removes it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"variantId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCart.setLine","x-rivier-cli":"shop public cart set line","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quantity":{"type":"integer","minimum":0,"maximum":1000}},"required":["quantity"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/catalog":{"get":{"operationId":"shop.publicCatalog.list","summary":"The storefront catalogue: prices, options and whether each variant can be bought.","tags":["shop"],"parameters":[{"name":"currency","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z]{3}$"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Z]{2}$"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"collection","in":"query","required":false,"schema":{"type":"string","maxLength":63}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCatalog.list","x-rivier-cli":"shop public catalog list","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["products"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/checkout":{"post":{"operationId":"shop.publicCheckout.place","summary":"Place the order and, unless told not to, start the payment; answers with the order, its link and the payment address.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicCheckout.place","x-rivier-cli":"shop public checkout place","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cartId":{"type":"string","format":"uuid"},"contact":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"name":{"type":"string","minLength":1,"maxLength":200},"phone":{"type":"string","maxLength":40}},"required":["email","name"],"additionalProperties":false},"shippingAddress":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"line1":{"type":"string","minLength":1,"maxLength":200},"line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":10,"default":""},"postalCode":{"type":"string","minLength":1,"maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"phone":{"type":"string","maxLength":40}},"required":["name","line1","city","postalCode","country"],"additionalProperties":false},"billingAddress":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"line1":{"type":"string","minLength":1,"maxLength":200},"line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":10,"default":""},"postalCode":{"type":"string","minLength":1,"maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"phone":{"type":"string","maxLength":40}},"required":["name","line1","city","postalCode","country"],"additionalProperties":false},"shippingRateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":120},"returnUrl":{"type":"string","format":"uri","maxLength":500},"agent":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"model":{"type":"string","maxLength":100},"runId":{"type":"string","maxLength":100}},"required":["name"],"additionalProperties":false},"pay":{"type":"boolean"}},"required":["cartId","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/orders/{id}":{"get":{"operationId":"shop.publicOrder.get","summary":"An order, through its own link.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":10,"maxLength":4000}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicOrder.get","x-rivier-cli":"shop public order get","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/orders/{id}/cancel":{"post":{"operationId":"shop.publicOrder.cancel","summary":"Cancel an unpaid order through its link.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicOrder.cancel","x-rivier-cli":"shop public order cancel","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":4000},"reason":{"type":"string","maxLength":300,"default":""}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/orders/{id}/downloads":{"get":{"operationId":"shop.publicOrder.downloads","summary":"The files a buyer is owed, as short-lived addresses, once the order is paid.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":10,"maxLength":4000}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicOrder.downloads","x-rivier-cli":"shop public order downloads","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/orders/{id}/pay":{"post":{"operationId":"shop.publicOrder.pay","summary":"A fresh payment address for an unpaid order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicOrder.pay","x-rivier-cli":"shop public order pay","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":10,"maxLength":4000}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/shop/orders/{id}/returns":{"post":{"operationId":"shop.publicOrder.return","summary":"Ask to return shipped lines, through the order's link.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.publicOrder.return","x-rivier-cli":"shop public order return","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"object","properties":{"lineId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["lineId","quantity"],"additionalProperties":false},"minItems":1,"maxItems":50},"reason":{"type":"string","minLength":1,"maxLength":500},"restock":{"type":"boolean","default":true},"token":{"type":"string","minLength":10,"maxLength":4000}},"required":["lines","reason","token"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/site/comments":{"get":{"operationId":"hosting.siteComment.list","summary":"The approved comments of a published page (name, text, time).","tags":["hosting"],"parameters":[{"name":"site","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","maxLength":120}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","maxLength":20}}],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.siteComment.list","x-rivier-cli":"hosting site comment list","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.siteComment.submit","summary":"A visitor's comment on a published page: checked for spam and abuse; doubtful ones wait for the owner.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.siteComment.submit","x-rivier-cli":"hosting site comment submit","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"site":{"type":"string","format":"uuid"},"path":{"type":"string","maxLength":120},"name":{"type":"string","minLength":1,"maxLength":60},"email":{"type":"string","maxLength":200},"text":{"type":"string","minLength":1,"maxLength":1500},"hp":{"type":"string","maxLength":200},"locale":{"type":"string","maxLength":20}},"required":["site","path","name","text"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/site/gate":{"post":{"operationId":"hosting.siteGate.open","summary":"Open a password-protected project: the password in the body; right answers return the project's markup. Rate limited; the same answer for a wrong password and an unknown project.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-sdk":"hosting.siteGate.open","x-rivier-cli":"hosting site gate open","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"site":{"type":"string","format":"uuid"},"path":{"type":"string","maxLength":120},"password":{"type":"string","minLength":1,"maxLength":128}},"required":["site","path","password"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/subscriptions/plans":{"get":{"operationId":"content.plan.list","summary":"The tiers a visitor can choose from, with where to pay.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-sdk":"content.plan.list","x-rivier-cli":"content plan list","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"plans":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["plans"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/public/subscriptions/{tierId}/checkout":{"post":{"operationId":"content.plan.checkout","summary":"Start buying a paid tier: a pending membership and a hosted checkout address. The membership starts when the payment succeeds.","tags":["content"],"parameters":[{"name":"tierId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.plan.checkout","x-rivier-cli":"content plan checkout","x-rivier-publishable":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string","maxLength":200}},"required":["email"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes":{"get":{"operationId":"shop.quote.list","summary":"Quotes by status, client or a search, newest first.","tags":["shop"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(draft|sent|viewed|accepted|declined|expired|void|converted)(,(draft|sent|viewed|accepted|declined|expired|void|converted))*$"}},{"name":"clientId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_quotes_list","x-rivier-graphql":"Query.shopQuoteList","x-rivier-sdk":"shop.quote.list","x-rivier-cli":"quotes list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}},"total":{"type":"number"}},"required":["items","total"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.quote.create","summary":"Draft a quote for a client; idempotent on the key (the body's idempotencyKey or the Idempotency-Key header). It has no number until it is sent.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_quotes_create","x-rivier-graphql":"Mutation.shopQuoteCreate","x-rivier-sdk":"shop.quote.create","x-rivier-cli":"quotes create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","maxLength":60},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":60},"registration":{"type":"string","maxLength":60},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"recipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5,"default":[]},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20},"title":{"type":"string","maxLength":200},"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"notes":{"type":"string","maxLength":4000},"terms":{"type":"string","maxLength":10000},"paymentInstructions":{"type":"string","maxLength":2000},"templateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"taxInclusive":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"quantity":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":10,"default":"C62"},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999},"discountMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"optional":{"type":"boolean","default":false},"selected":{"type":"boolean","default":true}},"required":["description","unitAmountMinor"],"additionalProperties":false},"maxItems":200},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}":{"get":{"operationId":"shop.quote.get","summary":"One quote with its lines, tax groups, status and the client's answer.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_quotes_get","x-rivier-graphql":"Query.shopQuoteGet","x-rivier-sdk":"shop.quote.get","x-rivier-cli":"quotes get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.quote.update","summary":"Change a quote; fields left out stay as they are. A sent quote becomes a new revision and goes back to draft.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_quotes_update","x-rivier-graphql":"Mutation.shopQuoteUpdate","x-rivier-sdk":"shop.quote.update","x-rivier-cli":"quotes update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","maxLength":60},"addressLines":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":6,"default":[]},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"vatId":{"type":"string","maxLength":60},"registration":{"type":"string","maxLength":60},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20}},"required":["name"],"additionalProperties":false},"recipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5,"default":[]},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10,"default":[]}},"additionalProperties":false},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$","maxLength":20},"title":{"type":"string","maxLength":200},"issueDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"validUntil":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"notes":{"type":"string","maxLength":4000},"terms":{"type":"string","maxLength":10000},"paymentInstructions":{"type":"string","maxLength":2000},"templateId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"layout":{"type":"string","enum":["minimal","classic","modern","bold"]},"taxInclusive":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string","minLength":1,"maxLength":500},"quantity":{"type":"number","exclusiveMinimum":0,"maximum":1000000,"default":1},"unit":{"type":"string","maxLength":10,"default":"C62"},"unitAmountMinor":{"type":"integer","minimum":0,"maximum":99999999999},"discountMinor":{"type":"integer","minimum":0,"maximum":99999999999,"default":0},"taxRateBp":{"type":"integer","minimum":0,"maximum":10000},"taxCategory":{"type":"string","enum":["S","Z","E","AE","K","G","O","L","M"],"default":"S"},"optional":{"type":"boolean","default":false},"selected":{"type":"boolean","default":true}},"required":["description","unitAmountMinor"],"additionalProperties":false},"maxItems":200},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"expectedVersion":{"type":"integer","minimum":1}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/certificate":{"get":{"operationId":"shop.quote.certificate","summary":"The certificate of completion of an accepted quote as a PDF: who accepted, when, from where, and the fingerprint of what they accepted.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.quote.certificate","x-rivier-cli":"quotes certificate","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/convert":{"post":{"operationId":"shop.quote.convert","summary":"Turn an accepted quote into an invoice, or with depositPercent a deposit invoice and a balance invoice (both drafts). The quote becomes converted.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.quote.convert","x-rivier-cli":"quotes convert","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"depositPercent":{"type":"integer","minimum":1,"maximum":99},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"document":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true},"invoices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"number":{"type":["string","null"]},"status":{"type":"string"},"totalMinor":{"type":"number"},"purpose":{"type":"string","enum":["full","deposit","balance"]}},"required":["id","number","status","totalMinor","purpose"],"additionalProperties":false}}},"required":["document","invoices"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/duplicate":{"post":{"operationId":"shop.quote.duplicate","summary":"A new draft copied from a quote, without its number; idempotent on the key.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_quotes_duplicate","x-rivier-graphql":"Mutation.shopQuoteDuplicate","x-rivier-sdk":"shop.quote.duplicate","x-rivier-cli":"quotes duplicate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"required":["idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/events":{"get":{"operationId":"shop.quote.events","summary":"What happened to a quote, in order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_quotes_events","x-rivier-graphql":"Query.shopQuoteEvents","x-rivier-sdk":"shop.quote.events","x-rivier-cli":"quotes events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"seq":{"type":"number"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"type":{"type":"string"},"actor":{"type":"string"},"data":{"type":"object","additionalProperties":{}},"at":{"type":"string"}},"required":["seq","kind","docId","type","actor","data","at"],"additionalProperties":false}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/link":{"post":{"operationId":"shop.quote.link","summary":"A fresh private link to a sent quote, to paste into a message; the address is shown once. With replace true the older links stop working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_quotes_link","x-rivier-graphql":"Mutation.shopQuoteLink","x-rivier-sdk":"shop.quote.link","x-rivier-cli":"quotes link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30},"replace":{"type":"boolean","default":false}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"token":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["url","token","link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/links":{"get":{"operationId":"shop.quote.links","summary":"The private links of a quote: expiry, how often each was opened, whether it was revoked.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_quotes_links","x-rivier-graphql":"Query.shopQuoteLinks","x-rivier-sdk":"shop.quote.links","x-rivier-cli":"quotes links","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}}},"required":["links"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/links/{linkId}/regenerate":{"post":{"operationId":"shop.quote.linkRegenerate","summary":"Replace a link of a quote with a new one; the old address stops working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.quote.linkRegenerate","x-rivier-cli":"quotes links regenerate","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":365,"default":30}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"token":{"type":"string"},"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["url","token","link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/links/{linkId}/revoke":{"post":{"operationId":"shop.quote.linkRevoke","summary":"Switch one link of a quote off.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"linkId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.quote.linkRevoke","x-rivier-cli":"quotes links revoke","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"link":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal","invoice"]},"docId":{"type":"string","format":"uuid"},"expiresAt":{"type":["string","null"]},"views":{"type":"number"},"firstViewedAt":{"type":["string","null"]},"lastViewedAt":{"type":["string","null"]},"revokedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"active":{"type":"boolean"}},"required":["id","kind","docId","expiresAt","views","firstViewedAt","lastViewedAt","revokedAt","createdBy","createdAt","active"],"additionalProperties":false}},"required":["link"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/pdf":{"get":{"operationId":"shop.quote.pdf","summary":"The quote as a PDF.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.quote.pdf","x-rivier-cli":"quotes pdf","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/preview":{"post":{"operationId":"shop.quote.preview","summary":"The mail that sending the quote would produce, the PDF size and the checks that would stop it; nothing is sent.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_quotes_preview","x-rivier-graphql":"Mutation.shopQuotePreview","x-rivier-sdk":"shop.quote.preview","x-rivier-cli":"quotes preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","link"],"default":"email"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"attachPdf":{"type":"boolean","default":true},"linkDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["quote","proposal","invoice"]},"status":{"type":"string"},"subject":{"type":"string"},"message":{"type":"string"},"text":{"type":"string"},"html":{"type":"string"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["email"],"additionalProperties":true}},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"}},"required":["email"],"additionalProperties":true}},"pdf":{"anyOf":[{"type":"object","properties":{"filename":{"type":"string"},"bytes":{"type":"number"}},"required":["filename","bytes"],"additionalProperties":false},{"type":"null"}]},"problems":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"severity":{"type":"string","enum":["error","warning"]},"message":{"type":"string"}},"required":["code","severity","message"],"additionalProperties":false}},"ready":{"type":"boolean"},"linkNote":{"type":"string"}},"required":["kind","status","subject","message","text","html","to","cc","pdf","problems","ready","linkNote"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/send":{"post":{"operationId":"shop.quote.send","summary":"Send the quote to the client by mail with its PDF and private link, or with channel link return the link without mail. The first send numbers it and fixes its content; sending again is a resend.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_quotes_send","x-rivier-sdk":"shop.quote.send","x-rivier-cli":"quotes send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["email","link"],"default":"email"},"to":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":5},"cc":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":""},"email":{"type":"string","format":"email","maxLength":254},"contactId":{"type":"string","format":"uuid"}},"required":["email"],"additionalProperties":false},"maxItems":10},"subject":{"type":"string","maxLength":300},"message":{"type":"string","maxLength":5000},"attachPdf":{"type":"boolean","default":true},"linkDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"validDays":{"type":"integer","minimum":1,"maximum":365,"default":30},"idempotencyKey":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean"},"channel":{"type":"string","enum":["email","link"]},"url":{"type":"string"},"linkId":{"type":"string","format":"uuid"},"resend":{"type":"boolean"},"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string","enum":["to","cc"]},"ok":{"type":"boolean"},"reason":{"type":"string"},"detail":{"type":"string"}},"required":["email","role","ok"],"additionalProperties":false}},"number":{"type":["string","null"]},"status":{"type":"string"}},"required":["sent","channel","url","linkId","resend","results","number","status"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/quotes/{id}/void":{"post":{"operationId":"shop.quote.void","summary":"Void a quote with the reason; it stays on record and its links stop working.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.quote.void","x-rivier-cli":"quotes void","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["quote","proposal"]},"organizationId":{"type":"string","format":"uuid"},"clientId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"number":{"type":["string","null"]},"status":{"type":"string","enum":["draft","sent","viewed","accepted","declined","expired","void","converted"]},"currency":{"type":"string"},"language":{"type":"string"},"title":{"type":"string"},"issueDate":{"type":["string","null"]},"validUntil":{"type":["string","null"]},"subtotalMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"revision":{"type":"number"},"version":{"type":"number"},"convertedKind":{"anyOf":[{"type":"string","enum":["quote","invoice"]},{"type":"null"}]},"convertedId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"acceptedAt":{"type":["string","null"]},"acceptedName":{"type":["string","null"]},"declinedAt":{"type":["string","null"]},"sentAt":{"type":["string","null"]},"viewedAt":{"type":["string","null"]},"voidedAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","kind","organizationId","clientId","number","status","currency","language","title","issueDate","validUntil","subtotalMinor","taxMinor","totalMinor","revision","version","convertedKind","convertedId","acceptedAt","acceptedName","declinedAt","sentAt","viewedAt","voidedAt","createdBy","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/effective":{"get":{"operationId":"agents.readingEffective.get","summary":"Read reading effective","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsReadingEffectiveGet","x-rivier-sdk":"agents.readingEffective.get","x-rivier-cli":"agents reading effective get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/proposals":{"get":{"operationId":"agents.readingProposals.get","summary":"Read reading proposals","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_proposals_list","x-rivier-graphql":"Query.agentsReadingProposalsGet","x-rivier-sdk":"agents.readingProposals.get","x-rivier-cli":"agents reading proposals get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.readingProposals.create","summary":"Run reading proposals","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_source_propose","x-rivier-graphql":"Mutation.agentsReadingProposalsCreate","x-rivier-sdk":"agents.readingProposals.create","x-rivier-cli":"agents reading proposals create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/proposals/{id}/decide":{"post":{"operationId":"agents.readingProposals.decide","summary":"Run reading proposals decide (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_proposal_decide","x-rivier-graphql":"Mutation.agentsReadingProposalsDecide","x-rivier-sdk":"agents.readingProposals.decide","x-rivier-cli":"agents reading proposals decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/runs":{"get":{"operationId":"agents.readingRuns.get","summary":"Read reading runs","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_reading_runs","x-rivier-graphql":"Query.agentsReadingRunsGet","x-rivier-sdk":"agents.readingRuns.get","x-rivier-cli":"agents reading runs get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/settings":{"get":{"operationId":"agents.readingSettings.get","summary":"Read reading settings","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsReadingSettingsGet","x-rivier-sdk":"agents.readingSettings.get","x-rivier-cli":"agents reading settings get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"agents.readingSettings.set","summary":"Set reading settings","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_reading_settings_set","x-rivier-graphql":"Mutation.agentsReadingSettingsSet","x-rivier-sdk":"agents.readingSettings.set","x-rivier-cli":"agents reading settings set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/sources":{"get":{"operationId":"agents.readingSources.get","summary":"Read reading sources","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_source_list","x-rivier-graphql":"Query.agentsReadingSourcesGet","x-rivier-sdk":"agents.readingSources.get","x-rivier-cli":"agents reading sources get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.readingSources.create","summary":"Run reading sources","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_source_save","x-rivier-graphql":"Mutation.agentsReadingSourcesCreate","x-rivier-sdk":"agents.readingSources.create","x-rivier-cli":"agents reading sources create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/sources/{id}":{"delete":{"operationId":"agents.readingSources.remove","summary":"Remove reading sources (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsReadingSourcesRemove","x-rivier-sdk":"agents.readingSources.remove","x-rivier-cli":"agents reading sources remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"agents.readingSources.get2","summary":"Read reading sources (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsReadingSourcesGet2","x-rivier-sdk":"agents.readingSources.get2","x-rivier-cli":"agents reading sources get2","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"agents.readingSources.update","summary":"Change reading sources (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsReadingSourcesUpdate","x-rivier-sdk":"agents.readingSources.update","x-rivier-cli":"agents reading sources update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/sources/{id}/pause":{"post":{"operationId":"agents.readingSources.pause","summary":"Run reading sources pause (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_source_pause","x-rivier-graphql":"Mutation.agentsReadingSourcesPause","x-rivier-sdk":"agents.readingSources.pause","x-rivier-cli":"agents reading sources pause","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/sources/{id}/resume":{"post":{"operationId":"agents.readingSources.resume","summary":"Run reading sources resume (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsReadingSourcesResume","x-rivier-sdk":"agents.readingSources.resume","x-rivier-cli":"agents reading sources resume","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/sources/{id}/run":{"post":{"operationId":"agents.readingSources.run","summary":"Run reading sources run (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:write","x-rivier-mcp":"rivier_personas_source_run_now","x-rivier-graphql":"Mutation.agentsReadingSourcesRun","x-rivier-sdk":"agents.readingSources.run","x-rivier-cli":"agents reading sources run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/reading/sources/{id}/status":{"get":{"operationId":"agents.readingSourcesStatus.get","summary":"Read reading sources status (by id)","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"agents:read","x-rivier-mcp":"rivier_personas_source_status","x-rivier-graphql":"Query.agentsReadingSourcesStatusGet","x-rivier-sdk":"agents.readingSourcesStatus.get","x-rivier-cli":"agents reading sources status get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research":{"post":{"operationId":"search.research.start","summary":"Start a multi-step research run.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_research","x-rivier-graphql":"Query.searchResearchStart","x-rivier-sdk":"search.research.start","x-rivier-cli":"search research start","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":1000},"webhookUrl":{"type":"string","format":"uri"},"maxIterations":{"type":"integer","minimum":1,"maximum":3}},"required":["query"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/budget":{"get":{"operationId":"search.research.budget","summary":"What research may still spend.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchResearchBudget","x-rivier-sdk":"search.research.budget","x-rivier-cli":"search research budget","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/conflicts":{"get":{"operationId":"search.conflict.list","summary":"Findings that disagree with memory.","tags":["search"],"parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchConflictList","x-rivier-sdk":"search.conflict.list","x-rivier-cli":"search conflict list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/conflicts/{id}/decide":{"post":{"operationId":"search.conflict.decide","summary":"Resolve a conflict.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchConflictDecide","x-rivier-sdk":"search.conflict.decide","x-rivier-cli":"search conflict decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/effective":{"get":{"operationId":"search.research.effective","summary":"The research settings in force for an agent.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchResearchEffective","x-rivier-sdk":"search.research.effective","x-rivier-cli":"search research effective","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/interests":{"get":{"operationId":"search.interest.list","summary":"Topics an agent keeps watching.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_personas_interest_list","x-rivier-graphql":"Query.searchInterestList","x-rivier-sdk":"search.interest.list","x-rivier-cli":"search interest list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"search.interest.create","summary":"Add a topic to watch.","tags":["search"],"parameters":[],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_personas_interest_save","x-rivier-graphql":"Mutation.searchInterestCreate","x-rivier-sdk":"search.interest.create","x-rivier-cli":"search interest create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/interests/{id}":{"get":{"operationId":"search.interest.get","summary":"One topic.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchInterestGet","x-rivier-sdk":"search.interest.get","x-rivier-cli":"search interest get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"search.interest.update","summary":"Change a topic.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchInterestUpdate","x-rivier-sdk":"search.interest.update","x-rivier-cli":"search interest update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"search.interest.delete","summary":"Stop watching a topic.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchInterestDelete","x-rivier-sdk":"search.interest.delete","x-rivier-cli":"search interest delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/interests/{id}/pause":{"post":{"operationId":"search.interest.pause","summary":"Pause a topic.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_personas_interest_pause","x-rivier-graphql":"Mutation.searchInterestPause","x-rivier-sdk":"search.interest.pause","x-rivier-cli":"search interest pause","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/interests/{id}/resume":{"post":{"operationId":"search.interest.resume","summary":"Resume a topic.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchInterestResume","x-rivier-sdk":"search.interest.resume","x-rivier-cli":"search interest resume","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/interests/{id}/run":{"post":{"operationId":"search.interest.run","summary":"Research a topic now.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_personas_research_run_now","x-rivier-graphql":"Mutation.searchInterestRun","x-rivier-sdk":"search.interest.run","x-rivier-cli":"search interest run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/notes":{"get":{"operationId":"search.note.list","summary":"Findings waiting for a decision.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_personas_notes_review_queue","x-rivier-graphql":"Query.searchNoteList","x-rivier-sdk":"search.note.list","x-rivier-cli":"search note list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/notes/{id}/decide":{"post":{"operationId":"search.note.decide","summary":"Accept or discard a finding.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_personas_notes_decide","x-rivier-graphql":"Mutation.searchNoteDecide","x-rivier-sdk":"search.note.decide","x-rivier-cli":"search note decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/runs":{"get":{"operationId":"search.run.list","summary":"Research runs.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_personas_research_runs","x-rivier-graphql":"Query.searchRunList","x-rivier-sdk":"search.run.list","x-rivier-cli":"search run list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/runs/{id}":{"get":{"operationId":"search.run.get","summary":"One research run.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:read","x-rivier-graphql":"Query.searchRunGet","x-rivier-sdk":"search.run.get","x-rivier-cli":"search run get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/search":{"post":{"operationId":"search.research.search","summary":"A grounded web search for an agent, metered.","tags":["search"],"parameters":[],"x-rivier-scope":"search:write","x-rivier-mcp":"rivier_personas_web_search","x-rivier-graphql":"Mutation.searchResearchSearch","x-rivier-sdk":"search.research.search","x-rivier-cli":"search research search","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/{id}":{"get":{"operationId":"search.research.get","summary":"A research run's state and result.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_research_status","x-rivier-graphql":"Query.searchResearchGet","x-rivier-sdk":"search.research.get","x-rivier-cli":"search research get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/{id}/cancel":{"post":{"operationId":"search.research.cancel","summary":"Stop a research run.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:write","x-rivier-graphql":"Mutation.searchResearchCancel","x-rivier-sdk":"search.research.cancel","x-rivier-cli":"search research cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/research/{id}/events":{"get":{"operationId":"search.research.events","summary":"A research run's progress as server-sent events.","tags":["search"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"search:read","x-rivier-sdk":"search.research.events","x-rivier-cli":"search research events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/resources":{"get":{"operationId":"workspace.resource.list","summary":"Links, documents and handles kept at a level.","tags":["workspace"],"parameters":[{"name":"level","in":"query","required":true,"schema":{"type":"string","enum":["account","organization","project","product","agent"]}},{"name":"scopeId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"inherit","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","maxLength":40}}],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_personas_resource_list","x-rivier-graphql":"Query.workspaceResourceList","x-rivier-sdk":"workspace.resource.list","x-rivier-cli":"workspace resource list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.resource.add","summary":"Keep a resource at a level.","tags":["workspace"],"parameters":[{"name":"level","in":"query","required":true,"schema":{"type":"string","enum":["account","organization","project","product","agent"]}},{"name":"scopeId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_personas_resource_add","x-rivier-graphql":"Mutation.workspaceResourceAdd","x-rivier-sdk":"workspace.resource.add","x-rivier-cli":"workspace resource add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/resources/{id}":{"delete":{"operationId":"workspace.resource.remove","summary":"Remove a resource.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"level","in":"query","required":true,"schema":{"type":"string","enum":["account","organization","project","product","agent"]}},{"name":"scopeId","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100}}],"x-rivier-scope":"workspace:write","x-rivier-mcp":"rivier_personas_resource_remove","x-rivier-graphql":"Mutation.workspaceResourceRemove","x-rivier-sdk":"workspace.resource.remove","x-rivier-cli":"workspace resource remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/safety/check":{"post":{"operationId":"compliance.safety.check","summary":"Check a text, or a picture among the project's files, for the usual harms: whether it is flagged, the categories, a recommendation (allow, hold for review, block and report) and the model that decided. Nothing checked is kept.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_safety_check","x-rivier-graphql":"Query.complianceSafetyCheck","x-rivier-sdk":"compliance.safety.check","x-rivier-cli":"compliance safety check","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":12000},"assetId":{"type":"string","format":"uuid"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"flagged":{"type":"boolean"},"categories":{"type":"array","items":{"type":"string"}},"recommendation":{"type":"string"},"classifier":{"type":"string"},"checkedAt":{"type":"string"}},"required":["flagged","categories","recommendation","classifier","checkedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/safety/reports":{"post":{"operationId":"compliance.safety.report","summary":"Record a report about something posted: what it is, the reason and what the reporter said.","tags":["compliance"],"parameters":[],"x-rivier-scope":"compliance:write","x-rivier-mcp":"rivier_safety_report","x-rivier-graphql":"Mutation.complianceSafetyReport","x-rivier-sdk":"compliance.safety.report","x-rivier-cli":"compliance safety report","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"object","properties":{"kind":{"type":"string","enum":["asset","url","text","other"]},"ref":{"type":"string","minLength":1,"maxLength":500}},"required":["kind","ref"],"additionalProperties":false},"reason":{"type":"string","enum":["abuse","child_safety","hate","violence","sexual","self_harm","illegal","intellectual_property","privacy","spam","other"]},"detail":{"type":"string","maxLength":2000,"default":""},"reporter":{"type":"string","maxLength":200,"default":""}},"required":["subject","reason"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"compliance.safety.reports","summary":"Reports by status: open, dismissed or taken down.","tags":["compliance"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["open","dismissed","taken_down"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"compliance:read","x-rivier-mcp":"rivier_safety_reports","x-rivier-graphql":"Query.complianceSafetyReports","x-rivier-sdk":"compliance.safety.reports","x-rivier-cli":"compliance safety reports","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"reports":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["reports"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/safety/reports/{id}/decide":{"post":{"operationId":"compliance.safety.decide","summary":"Dismiss a report, or take the thing down: a file leaves view and its bytes cannot be uploaded again in this project. A person decides.","tags":["compliance"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"compliance:write","x-rivier-graphql":"Mutation.complianceSafetyDecide","x-rivier-sdk":"compliance.safety.decide","x-rivier-cli":"compliance safety decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["dismiss","take_down"]},"note":{"type":"string","maxLength":500,"default":""}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/sandbox":{"get":{"operationId":"keys.sandbox.get","summary":"Is this key live or test, and does the project have a test project yet?","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-graphql":"Query.keysSandboxGet","x-rivier-sdk":"keys.sandbox.get","x-rivier-cli":"keys sandbox get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["live","test"]},"exists":{"type":"boolean"},"seedModules":{"type":"array","items":{"type":"string"}}},"required":["mode","exists","seedModules"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/sandbox/deliveries":{"get":{"operationId":"keys.sandbox.deliveries","summary":"What the test project would have sent: calls to outside services, recorded and not made.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-graphql":"Query.keysSandboxDeliveries","x-rivier-sdk":"keys.sandbox.deliveries","x-rivier-cli":"keys sandbox deliveries","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deliveries":{"type":"array","items":{"type":"object","properties":{"tenantId":{"type":"string"},"at":{"type":"string"},"method":{"type":"string"},"url":{"type":"string"},"host":{"type":"string"},"bytes":{"type":"number"}},"required":["tenantId","at","method","url","host","bytes"],"additionalProperties":false}}},"required":["deliveries"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/sandbox/seed":{"post":{"operationId":"keys.sandbox.seed","summary":"Fill the test project with a small demo brand per module, made through the API's own routes.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.sandbox.seed","x-rivier-cli":"keys sandbox seed","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"module":{"type":"string"},"label":{"type":"string"},"ok":{"type":"boolean"},"status":{"type":"number"},"error":{"type":"string"}},"required":["module","label","ok","status"],"additionalProperties":false}},"ok":{"type":"number"},"failed":{"type":"number"}},"required":["results","ok","failed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/search":{"post":{"operationId":"search.web.search","summary":"Search the index: highlights with citations.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_search","x-rivier-graphql":"Query.searchWebSearch","x-rivier-sdk":"search.web.search","x-rivier-cli":"search web search","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":1000},"topK":{"type":"integer","minimum":1,"maximum":50}},"required":["query"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"highlights":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["highlights"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/search/fetch":{"post":{"operationId":"search.page.fetch","summary":"One web page as text: its title, readable text (up to 100000 characters), language and canonical address. Public addresses only; a site's robots rules are honoured; 30 pages a minute a project.","tags":["search"],"parameters":[],"x-rivier-scope":"search:read","x-rivier-mcp":"rivier_search_page_fetch","x-rivier-graphql":"Query.searchPageFetch","x-rivier-sdk":"search.page.fetch","x-rivier-cli":"search page fetch","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2000}},"required":["url"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series":{"get":{"operationId":"memory.series.get","summary":"Read series","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_list","x-rivier-graphql":"Query.memorySeriesGet","x-rivier-sdk":"memory.series.get","x-rivier-cli":"memory series get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"memory.series.create","summary":"Run series","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memorySeriesCreate","x-rivier-sdk":"memory.series.create","x-rivier-cli":"memory series create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/operations":{"get":{"operationId":"memory.seriesOperations.get","summary":"Read series operations","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memorySeriesOperationsGet","x-rivier-sdk":"memory.seriesOperations.get","x-rivier-cli":"memory series operations get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}":{"delete":{"operationId":"memory.series.remove","summary":"Remove series (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memorySeriesRemove","x-rivier-sdk":"memory.series.remove","x-rivier-cli":"memory series remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"memory.series.get2","summary":"Read series (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_get","x-rivier-graphql":"Query.memorySeriesGet2","x-rivier-sdk":"memory.series.get2","x-rivier-cli":"memory series get2","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}/aggregate":{"get":{"operationId":"memory.seriesAggregate.get","summary":"Read series aggregate (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_aggregate","x-rivier-graphql":"Query.memorySeriesAggregateGet","x-rivier-sdk":"memory.seriesAggregate.get","x-rivier-cli":"memory series aggregate get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}/anomalies":{"get":{"operationId":"memory.seriesAnomalies.get","summary":"Read series anomalies (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_anomalies","x-rivier-graphql":"Query.memorySeriesAnomaliesGet","x-rivier-sdk":"memory.seriesAnomalies.get","x-rivier-cli":"memory series anomalies get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}/compare":{"get":{"operationId":"memory.seriesCompare.get","summary":"Read series compare (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_compare","x-rivier-graphql":"Query.memorySeriesCompareGet","x-rivier-sdk":"memory.seriesCompare.get","x-rivier-cli":"memory series compare get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}/latest":{"get":{"operationId":"memory.seriesLatest.get","summary":"Read series latest (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_latest","x-rivier-graphql":"Query.memorySeriesLatestGet","x-rivier-sdk":"memory.seriesLatest.get","x-rivier-cli":"memory series latest get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}/link":{"post":{"operationId":"memory.series.link","summary":"Run series link (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_series_link","x-rivier-graphql":"Mutation.memorySeriesLink","x-rivier-sdk":"memory.series.link","x-rivier-cli":"memory series link","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/series/{id}/points":{"get":{"operationId":"memory.seriesPoints.get","summary":"Read series points (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_series_points","x-rivier-graphql":"Query.memorySeriesPointsGet","x-rivier-sdk":"memory.seriesPoints.get","x-rivier-cli":"memory series points get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"memory.series.points","summary":"Run series points (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_series_add_points","x-rivier-graphql":"Mutation.memorySeriesPoints","x-rivier-sdk":"memory.series.points","x-rivier-cli":"memory series points","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/availability/{id}":{"get":{"operationId":"shop.availability.get","summary":"How many of a variant can still be promised (a bundle: the smallest over its parts).","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_availability","x-rivier-graphql":"Query.shopAvailability","x-rivier-sdk":"shop.availability.get","x-rivier-cli":"shop availability get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/bundles":{"put":{"operationId":"shop.bundle.set","summary":"Make a variant a bundle of other variants.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.bundle.set","x-rivier-cli":"shop bundle set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bundleVariantId":{"type":"string","format":"uuid"},"components":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["variantId","quantity"],"additionalProperties":false},"minItems":1,"maxItems":30}},"required":["bundleVariantId","components"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/bundles/{id}":{"get":{"operationId":"shop.bundle.get","summary":"The parts of a bundle variant.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_bundle_get","x-rivier-sdk":"shop.bundle.get","x-rivier-cli":"shop bundle get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"shop.bundle.remove","summary":"Stop selling a variant as a bundle.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.bundle.remove","x-rivier-cli":"shop bundle remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/carts":{"post":{"operationId":"shop.cart.create","summary":"Start a cart in a currency and country.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_cart_create","x-rivier-graphql":"Mutation.createShopCart","x-rivier-sdk":"shop.cart.create","x-rivier-cli":"shop cart create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"currency":{"type":"string","pattern":"^[a-z]{3}$"},"country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"string","const":""}],"default":""},"channel":{"type":"string","maxLength":40,"default":"storefront"}},"required":["currency"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/carts/{id}":{"get":{"operationId":"shop.cart.get","summary":"A cart priced as it stands: lines, discounts, shipping options, tax and total.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"shippingRateId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"region","in":"query","required":false,"schema":{"type":"string","maxLength":10}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_cart_get","x-rivier-graphql":"Query.shopCart","x-rivier-sdk":"shop.cart.get","x-rivier-cli":"shop cart get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.cart.update","summary":"Set the cart's country and discount codes.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_cart_update","x-rivier-graphql":"Mutation.updateShopCart","x-rivier-sdk":"shop.cart.update","x-rivier-cli":"shop cart update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"string","const":""}]},"discountCodes":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{2,40}$"},"maxItems":5}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/carts/{id}/lines":{"post":{"operationId":"shop.cart.addLine","summary":"Add a variant to the cart. The stock is held for the buyer.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_cart_add","x-rivier-graphql":"Mutation.addShopCartLine","x-rivier-sdk":"shop.cart.addLine","x-rivier-cli":"shop cart add line","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["variantId","quantity"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/carts/{id}/lines/{variantId}":{"put":{"operationId":"shop.cart.setLine","summary":"Change a line's quantity; zero removes it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"variantId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_cart_set_quantity","x-rivier-graphql":"Mutation.setShopCartLine","x-rivier-sdk":"shop.cart.setLine","x-rivier-cli":"shop cart set line","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"quantity":{"type":"integer","minimum":0,"maximum":1000}},"required":["quantity"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/catalog":{"get":{"operationId":"shop.catalog.list","summary":"What is for sale: products with variants, the price for a currency and country, and what is in stock.","tags":["shop"],"parameters":[{"name":"currency","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z]{3}$"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Z]{2}$"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"collection","in":"query","required":false,"schema":{"type":"string","maxLength":63}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_catalog","x-rivier-graphql":"Query.shopCatalog","x-rivier-sdk":"shop.catalog.list","x-rivier-cli":"shop catalog list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["products"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/collection-archive/{id}":{"post":{"operationId":"shop.collection.archive","summary":"Retire a collection; its products stay.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_collection_archive","x-rivier-sdk":"shop.collection.archive","x-rivier-cli":"shop collection archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"archived":{"type":"boolean","const":true}},"required":["archived"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/collection-search":{"get":{"operationId":"shop.collection.search","summary":"Collections by name or slug.","tags":["shop"],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","maxLength":120}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_collection_search","x-rivier-sdk":"shop.collection.search","x-rivier-cli":"shop collection search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"collections":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["collections"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/collections":{"get":{"operationId":"shop.collection.list","summary":"Collections and the products in each.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_collections_list","x-rivier-sdk":"shop.collection.list","x-rivier-cli":"shop collection list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"collections":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["collections"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.collection.create","summary":"Add a collection.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_collection_create","x-rivier-sdk":"shop.collection.create","x-rivier-cli":"shop collection create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,62}$"},"kind":{"type":"string","enum":["manual","rule"],"default":"manual"},"rule":{"type":"object","properties":{"match":{"type":"string","enum":["all","any"],"default":"all"},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","pattern":"^(price|stock|on_sale|in_stock|name|slug|tag|attribute:[a-z][a-z0-9_]{0,39})$"},"op":{"type":"string","enum":["eq","neq","gte","lte","gt","lt","contains","in"]},"value":{"anyOf":[{"anyOf":[{"type":"string","maxLength":200},{"type":"number"},{"type":"boolean"}]},{"type":"array","items":{"anyOf":[{"type":"string","maxLength":200},{"type":"number"},{"type":"boolean"}]},"maxItems":50}]}},"required":["field","op","value"],"additionalProperties":false},"minItems":1,"maxItems":10}},"required":["conditions"],"additionalProperties":false}},"required":["name","slug"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/collections/{id}/items":{"post":{"operationId":"shop.collection.addItems","summary":"Add products to a collection.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_collection_add","x-rivier-sdk":"shop.collection.addItems","x-rivier-cli":"shop collection add items","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"productIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":500}},"required":["productIds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"added":{"type":"boolean","const":true}},"required":["added"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/collections/{id}/items/{productId}":{"delete":{"operationId":"shop.collection.removeItem","summary":"Take a product out of a manual collection.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"productId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.collection.removeItem","x-rivier-cli":"shop collection remove item","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/completeness":{"get":{"operationId":"shop.completeness.get","summary":"How complete a product is for a channel (storefront, google, openai, meta): the share of what the channel requires that it has, and what is missing.","tags":["shop"],"parameters":[{"name":"productId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["storefront","google","openai","meta"],"default":"storefront"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{3}$","default":"eur"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_completeness","x-rivier-graphql":"Query.shopCompleteness","x-rivier-sdk":"shop.completeness.get","x-rivier-cli":"shop completeness get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/discounts":{"post":{"operationId":"shop.discount.create","summary":"Add a discount: a code or automatic, percent, fixed or free shipping, with limits.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.discount.create","x-rivier-cli":"shop discount create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{2,40}$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["percent","fixed","free_shipping"]},"percentBp":{"anyOf":[{"type":"integer","minimum":1,"maximum":10000},{"type":"null"}]},"amountMinor":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"currency":{"anyOf":[{"type":"string","pattern":"^[a-z]{3}$"},{"type":"null"}]},"scope":{"type":"object","properties":{"all":{"type":"boolean"},"productIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":500},"collectionIds":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"additionalProperties":false,"default":{"all":true}},"minSubtotalMinor":{"type":"integer","minimum":0,"maximum":9007199254740991,"default":0},"limitTotal":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"limitPerContact":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"stackable":{"type":"boolean","default":false},"automatic":{"type":"boolean","default":false},"validFrom":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"validTo":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["name","kind"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.discount.list","summary":"Discounts with their rule, limits, status and use.","tags":["shop"],"parameters":[{"name":"includeArchived","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_discounts_list","x-rivier-sdk":"shop.discount.list","x-rivier-cli":"shop discount list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"discounts":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["discounts"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/discounts/{id}":{"get":{"operationId":"shop.discount.get","summary":"One discount.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_discount_get","x-rivier-sdk":"shop.discount.get","x-rivier-cli":"shop discount get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/discounts/{id}/status":{"put":{"operationId":"shop.discount.setStatus","summary":"Pause, resume or archive a discount.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.discount.setStatus","x-rivier-cli":"shop discount set status","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["active","paused","archived"]}},"required":["status"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/export.csv":{"get":{"operationId":"shop.catalogue.export","summary":"The catalogue as a spreadsheet: one row per variant, with prices, stock, collections, search text and the addresses of published pictures.","tags":["shop"],"parameters":[{"name":"currency","in":"query","required":false,"schema":{"type":"string","pattern":"^[a-z]{3}$","default":"eur"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_catalogue_export","x-rivier-sdk":"shop.catalogue.export","x-rivier-cli":"shop catalogue export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/feed-links":{"get":{"operationId":"shop.feedLink.list","summary":"The addresses places read this shop's product file from by themselves.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.feedLink.list","x-rivier-cli":"shop feed link list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["links"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.feedLink.create","summary":"Make an address a place (google, openai, meta) reads the product file from on its own schedule.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.feedLink.create","x-rivier-cli":"shop feed link create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["google","openai","meta"]},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"baseUrl":{"type":"string","format":"uri","maxLength":300,"pattern":"^https:\\/\\/"}},"required":["channel","currency","baseUrl"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/feed-links/{id}":{"delete":{"operationId":"shop.feedLink.remove","summary":"Stop an address, so the place can no longer read the file from it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.feedLink.remove","x-rivier-cli":"shop feed link remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/feeds/{channel}":{"get":{"operationId":"shop.feed.get","summary":"The product feed a channel reads (google, openai, meta) as JSON or tab-separated text: one row per variant for every product that has what the channel requires, and the products left out with what each lacks.","tags":["shop"],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","enum":["google","openai","meta"]}},{"name":"currency","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z]{3}$"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Z]{2}$"}},{"name":"baseUrl","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":300}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","tsv"],"default":"json"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_feed","x-rivier-graphql":"Query.shopFeed","x-rivier-sdk":"shop.feed.get","x-rivier-cli":"shop feed get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/import":{"post":{"operationId":"shop.catalogue.import","summary":"Add and change products from a spreadsheet (same columns as the export). Dry run by default: says what would be created or changed. Pictures are fetched from https addresses by the safe reader.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_catalogue_import","x-rivier-sdk":"shop.catalogue.import","x-rivier-cli":"shop catalogue import","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","minLength":1},"currency":{"type":"string","pattern":"^[a-z]{3}$","default":"eur"},"dryRun":{"type":"boolean","default":true}},"required":["csv"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/locations":{"post":{"operationId":"shop.location.create","summary":"Add a stock location (warehouse, shop, supplier or virtual).","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_location_create","x-rivier-sdk":"shop.location.create","x-rivier-cli":"shop location create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["warehouse","shop","supplier","virtual"],"default":"warehouse"},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.location.list","summary":"The places stock is kept.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_locations_list","x-rivier-sdk":"shop.location.list","x-rivier-cli":"shop location list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["locations"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/locations/{id}/archive":{"post":{"operationId":"shop.location.archive","summary":"Retire a stock place that holds nothing.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.location.archive","x-rivier-cli":"shop location archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"archived":{"type":"boolean","const":true}},"required":["archived"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/margin":{"get":{"operationId":"shop.margin.get","summary":"Margin of a variant's price against the cheapest supplier cost.","tags":["shop"],"parameters":[{"name":"variantId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"amountMinor","in":"query","required":false,"schema":{"type":"integer","minimum":1}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":3}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_margin","x-rivier-sdk":"shop.margin.get","x-rivier-cli":"shop margin get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders":{"get":{"operationId":"shop.order.list","summary":"Orders by state or customer.","tags":["shop"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["placed","paid","fulfilled","delivered","completed","cancelled","returned","refunded"]}},{"name":"contactKey","in":"query","required":false,"schema":{"type":"string","maxLength":254}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_orders_list","x-rivier-graphql":"Query.shopOrders","x-rivier-sdk":"shop.order.list","x-rivier-cli":"shop order list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"orders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"state":{"type":"string"},"currency":{"type":"string"},"country":{"type":"string"},"contact":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"required":["email","name"],"additionalProperties":true},"subtotalMinor":{"type":"number"},"discountMinor":{"type":"number"},"shippingMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"paidMinor":{"type":"number"},"refundedMinor":{"type":"number"},"paymentRef":{"type":["string","null"]},"payBy":{"type":["string","null"]},"channel":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"cancelledAt":{"type":["string","null"]},"cancelReason":{"type":["string","null"]},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":true}}},"required":["id","number","state","currency","country","contact","subtotalMinor","discountMinor","shippingMinor","taxMinor","totalMinor","paidMinor","refundedMinor","paymentRef","payBy","channel","createdAt","updatedAt","cancelledAt","cancelReason","lines"],"additionalProperties":true}}},"required":["orders"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.order.place","summary":"Place an order from a cart. Prices, tax and shipping are worked out again; the stock is committed; idempotent on the key.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_place","x-rivier-graphql":"Mutation.placeShopOrder","x-rivier-sdk":"shop.order.place","x-rivier-cli":"shop order place","x-rivier-events":["shop.order.placed"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cartId":{"type":"string","format":"uuid"},"contact":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254},"name":{"type":"string","minLength":1,"maxLength":200},"phone":{"type":"string","maxLength":40}},"required":["email","name"],"additionalProperties":false},"shippingAddress":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"line1":{"type":"string","minLength":1,"maxLength":200},"line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":10,"default":""},"postalCode":{"type":"string","minLength":1,"maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"phone":{"type":"string","maxLength":40}},"required":["name","line1","city","postalCode","country"],"additionalProperties":false},"billingAddress":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"line1":{"type":"string","minLength":1,"maxLength":200},"line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":120},"region":{"type":"string","maxLength":10,"default":""},"postalCode":{"type":"string","minLength":1,"maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"phone":{"type":"string","maxLength":40}},"required":["name","line1","city","postalCode","country"],"additionalProperties":false},"shippingRateId":{"type":"string","format":"uuid"},"idempotencyKey":{"type":"string","minLength":8,"maxLength":120},"returnUrl":{"type":"string","format":"uri","maxLength":500},"agent":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"model":{"type":"string","maxLength":100},"runId":{"type":"string","maxLength":100}},"required":["name"],"additionalProperties":false}},"required":["cartId","contact","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/sync":{"post":{"operationId":"shop.order.sync","summary":"Bring in orders placed on the connected shops and marketplaces since a time (default: since the last order brought in). Each source order is imported once.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_sync","x-rivier-sdk":"shop.order.sync","x-rivier-cli":"shop order sync","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"since":{"type":"string","format":"date-time"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}":{"get":{"operationId":"shop.order.get","summary":"One order with its lines, money and the terms it was sold under.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_order_get","x-rivier-graphql":"Query.shopOrder","x-rivier-sdk":"shop.order.get","x-rivier-cli":"shop order get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"string"},"state":{"type":"string"},"currency":{"type":"string"},"country":{"type":"string"},"contact":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":"string"}},"required":["email","name"],"additionalProperties":true},"subtotalMinor":{"type":"number"},"discountMinor":{"type":"number"},"shippingMinor":{"type":"number"},"taxMinor":{"type":"number"},"totalMinor":{"type":"number"},"paidMinor":{"type":"number"},"refundedMinor":{"type":"number"},"paymentRef":{"type":["string","null"]},"payBy":{"type":["string","null"]},"channel":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"cancelledAt":{"type":["string","null"]},"cancelReason":{"type":["string","null"]},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":true}}},"required":["id","number","state","currency","country","contact","subtotalMinor","discountMinor","shippingMinor","taxMinor","totalMinor","paidMinor","refundedMinor","paymentRef","payBy","channel","createdAt","updatedAt","cancelledAt","cancelReason","lines"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.order.update","summary":"Correct the contact or delivery address of an order that has not shipped.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_update","x-rivier-sdk":"shop.order.update","x-rivier-cli":"shop order update","x-rivier-events":["shop.order.updated"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contact":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"email":{"type":"string","format":"email","maxLength":254},"phone":{"type":"string","pattern":"^\\+?[0-9 ()-]{6,20}$"}},"additionalProperties":false},"shippingAddress":{"type":"object","properties":{"name":{"type":"string","maxLength":160},"line1":{"type":"string","minLength":1,"maxLength":200},"line2":{"type":"string","maxLength":200},"city":{"type":"string","minLength":1,"maxLength":100},"region":{"type":"string","maxLength":40,"default":""},"postalCode":{"type":"string","minLength":1,"maxLength":20},"country":{"type":"string","pattern":"^[A-Z]{2}$"}},"required":["line1","city","postalCode","country"],"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/cancel":{"post":{"operationId":"shop.order.cancel","summary":"Cancel an order nobody has paid for and give its stock back.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_cancel","x-rivier-graphql":"Mutation.cancelShopOrder","x-rivier-sdk":"shop.order.cancel","x-rivier-cli":"shop order cancel","x-rivier-events":["shop.order.cancelled"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/cancel-paid":{"post":{"operationId":"shop.order.cancelPaid","summary":"Cancel a paid order that has not shipped and ask for its refund. A person's decision.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.order.cancelPaid","x-rivier-cli":"shop order cancel paid","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":300,"default":""}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/complete":{"post":{"operationId":"shop.order.complete","summary":"Close a delivered order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.order.complete","x-rivier-cli":"shop order complete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/invoice":{"post":{"operationId":"shop.order.invoice","summary":"Make the invoice for a paid order again (it is made on payment; this retries a failure). Idempotent per order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_invoice","x-rivier-graphql":"Mutation.invoiceShopOrder","x-rivier-sdk":"shop.order.invoice","x-rivier-cli":"shop order invoice","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/pay":{"post":{"operationId":"shop.order.pay","summary":"A hosted checkout address for what is due on an order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_pay_link","x-rivier-graphql":"Mutation.payShopOrder","x-rivier-sdk":"shop.order.pay","x-rivier-cli":"shop order pay","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/payments":{"get":{"operationId":"shop.order.payments","summary":"The payment history of an order: checkout, paid, refund asked, refunded.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_order_payments","x-rivier-sdk":"shop.order.payments","x-rivier-cli":"shop order payments","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/refund":{"post":{"operationId":"shop.order.refund","summary":"Ask for a refund of part or all of what an order paid. A person approves it on the payments side before any money moves.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_refund","x-rivier-graphql":"Mutation.refundShopOrder","x-rivier-sdk":"shop.order.refund","x-rivier-cli":"shop order refund","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amountMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":300}},"required":["reason"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/returns":{"post":{"operationId":"shop.return.request","summary":"Ask to send shipped lines back. Only units that shipped and are not already returned or waiting can be asked for.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_return_request","x-rivier-graphql":"Mutation.requestShopReturn","x-rivier-sdk":"shop.return.request","x-rivier-cli":"shop return request","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"object","properties":{"lineId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["lineId","quantity"],"additionalProperties":false},"minItems":1,"maxItems":50},"reason":{"type":"string","minLength":1,"maxLength":500},"restock":{"type":"boolean","default":true}},"required":["lines","reason"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/ship":{"post":{"operationId":"shop.order.ship","summary":"Ship whole lines of a paid order with a carrier and tracking.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_order_ship","x-rivier-graphql":"Mutation.shipShopOrder","x-rivier-sdk":"shop.order.ship","x-rivier-cli":"shop order ship","x-rivier-events":["shop.order.shipped"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lineIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":100},"carrier":{"type":"string","maxLength":80,"default":""},"tracking":{"type":"string","maxLength":120,"default":""}},"required":["lineIds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/orders/{id}/timeline":{"get":{"operationId":"shop.order.timeline","summary":"What happened to an order, in order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.order.timeline","x-rivier-cli":"shop order timeline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["events"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/price-history":{"get":{"operationId":"shop.price.history","summary":"Every price a variant has been sold at, newest first.","tags":["shop"],"parameters":[{"name":"variantId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"all","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_price_history","x-rivier-sdk":"shop.price.history","x-rivier-cli":"shop price history","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"history":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["history"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/prices":{"post":{"operationId":"shop.price.set","summary":"Set a price. It goes into the price history; it may not go under the floor, and a previous price must be the lowest of the last 30 days.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_price_set","x-rivier-sdk":"shop.price.set","x-rivier-cli":"shop price set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"compareAtMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"minQty":{"type":"integer","minimum":1,"maximum":100000,"default":1},"channel":{"type":"string","maxLength":40,"default":""},"country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"string","const":""}],"default":""},"validFrom":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"validTo":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"reason":{"type":"string","maxLength":200,"default":""}},"required":["variantId","currency","amountMinor"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.price.list","summary":"Live prices of a variant (all, with `all`).","tags":["shop"],"parameters":[{"name":"variantId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"all","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_prices_list","x-rivier-sdk":"shop.price.list","x-rivier-cli":"shop price list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"prices":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["prices"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/prices/{id}/end":{"post":{"operationId":"shop.price.end","summary":"End a live price.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.price.end","x-rivier-cli":"shop price end","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/products":{"get":{"operationId":"shop.product.list","summary":"The owner's product list in any state (draft, active, archived or all), with variants, prices and stock.","tags":["shop"],"parameters":[{"name":"currency","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z]{3}$"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","active","archived","all"],"default":"all"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":2000}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_products_list","x-rivier-sdk":"shop.product.list","x-rivier-cli":"shop product list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"products":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["products"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/products/{id}/status":{"put":{"operationId":"shop.product.setStatus","summary":"Put a product in draft (off the shop), active (on sale) or archived.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.product.setStatus","x-rivier-cli":"shop product set status","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","active","archived"]}},"required":["status"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","const":true}},"required":["saved"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/purchase-orders":{"get":{"operationId":"shop.purchaseOrder.list","summary":"Purchase orders by status.","tags":["shop"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","approved","sent","received","cancelled"]}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_po_list","x-rivier-sdk":"shop.purchaseOrder.list","x-rivier-cli":"shop purchase order list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"purchaseOrders":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["purchaseOrders"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.purchaseOrder.create","summary":"Draft a purchase order.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_po_create","x-rivier-sdk":"shop.purchaseOrder.create","x-rivier-cli":"shop purchase order create","x-rivier-events":["shop.purchaseOrder.drafted"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"supplierId":{"type":"string","minLength":1,"maxLength":80},"lines":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"sku":{"type":"string","maxLength":100},"qty":{"type":"integer","minimum":1,"maximum":10000000},"unitCost":{"type":"object","properties":{"amountMinor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amountMinor","currency"],"additionalProperties":false}},"required":["variantId","qty","unitCost"],"additionalProperties":false},"minItems":1,"maxItems":200},"expectedAt":{"type":"string","format":"date-time"},"note":{"type":"string","maxLength":500}},"required":["supplierId","lines"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/purchase-orders/{id}":{"get":{"operationId":"shop.purchaseOrder.get","summary":"One purchase order.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_po_get","x-rivier-sdk":"shop.purchaseOrder.get","x-rivier-cli":"shop purchase order get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/purchase-orders/{id}/approve":{"post":{"operationId":"shop.purchaseOrder.approve","summary":"Approve a draft purchase order (a person; an agent never approves its own).","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_po_approve","x-rivier-sdk":"shop.purchaseOrder.approve","x-rivier-cli":"shop purchase order approve","x-rivier-events":["shop.purchaseOrder.approved"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/purchase-orders/{id}/cancel":{"post":{"operationId":"shop.purchaseOrder.cancel","summary":"Cancel a purchase order that has not been received.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_po_cancel","x-rivier-sdk":"shop.purchaseOrder.cancel","x-rivier-cli":"shop purchase order cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/purchase-orders/{id}/receive":{"post":{"operationId":"shop.purchaseOrder.receive","summary":"Goods arrived: mark received and put the quantities on the shelf.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_po_receive","x-rivier-sdk":"shop.purchaseOrder.receive","x-rivier-cli":"shop purchase order receive","x-rivier-events":["shop.purchaseOrder.received"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"locationId":{"type":"string","format":"uuid"},"received":{"type":"object","additionalProperties":{"type":"integer","minimum":0,"maximum":10000000},"default":{}}},"required":["locationId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/purchase-orders/{id}/send":{"post":{"operationId":"shop.purchaseOrder.send","summary":"Send an approved purchase order; test mode only until live sending is opened.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"testMode","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"],"default":"true"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_po_send","x-rivier-sdk":"shop.purchaseOrder.send","x-rivier-cli":"shop purchase order send","x-rivier-events":["shop.purchaseOrder.sent"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/rates":{"post":{"operationId":"shop.rate.create","summary":"Add a shipping rate to a zone (by weight, free over a total).","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.rate.create","x-rivier-cli":"shop rate create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"zoneId":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"currency":{"type":"string","pattern":"^[a-z]{3}$"},"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"minWeightG":{"type":"integer","minimum":0,"default":0},"maxWeightG":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"freeOverMinor":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"position":{"type":"integer","minimum":0,"maximum":1000,"default":0}},"required":["zoneId","name","currency","amountMinor"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/rates/{id}":{"patch":{"operationId":"shop.rate.update","summary":"Change a shipping rate, or archive it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.rate.update","x-rivier-cli":"shop rate update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"amountMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"minWeightG":{"type":"integer","minimum":0},"maxWeightG":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"freeOverMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"position":{"type":"integer","minimum":0,"maximum":1000},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/refunds-due":{"get":{"operationId":"shop.refundsDue.list","summary":"Cancelled orders that hold money nobody has asked to give back.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_refunds_due","x-rivier-graphql":"Query.shopRefundsDue","x-rivier-sdk":"shop.refundsDue.list","x-rivier-cli":"shop refunds due list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"orders":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["orders"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/reorders/draft":{"post":{"operationId":"shop.reorder.draft","summary":"Draft purchase orders for the variants whose stock is at or below its reorder point.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_reorders_draft","x-rivier-sdk":"shop.reorder.draft","x-rivier-cli":"shop reorder draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"reorderPoint":{"type":"integer","minimum":0},"target":{"type":"integer","minimum":1}},"required":["variantId","reorderPoint","target"],"additionalProperties":false},"maxItems":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/returns":{"get":{"operationId":"shop.return.list","summary":"Returns by state or order.","tags":["shop"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["requested","approved","received","rejected"]}},{"name":"orderId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_returns_list","x-rivier-graphql":"Query.shopReturns","x-rivier-sdk":"shop.return.list","x-rivier-cli":"shop return list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"returns":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["returns"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/returns/{id}/decision":{"post":{"operationId":"shop.return.decide","summary":"Accept or reject a return request.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.return.decide","x-rivier-cli":"shop return decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","reject"]},"note":{"type":"string","maxLength":300,"default":""}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/returns/{id}/receive":{"post":{"operationId":"shop.return.receive","summary":"Record that the goods came back; units go back on the shelf when the request said so.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_return_receive","x-rivier-graphql":"Mutation.receiveShopReturn","x-rivier-sdk":"shop.return.receive","x-rivier-cli":"shop return receive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/returns/{id}/refund":{"post":{"operationId":"shop.return.refund","summary":"Ask for the refund of an accepted return. A person approves it on the payments side before any money moves.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_return_refund","x-rivier-graphql":"Mutation.refundShopReturn","x-rivier-sdk":"shop.return.refund","x-rivier-cli":"shop return refund","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/shipments":{"get":{"operationId":"shop.shipment.list","summary":"Shipments for an order or in a state.","tags":["shop"],"parameters":[{"name":"orderId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["shipped","delivered"]}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_shipments_list","x-rivier-sdk":"shop.shipment.list","x-rivier-cli":"shop shipment list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"shipments":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["shipments"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/shipments/{id}":{"get":{"operationId":"shop.shipment.get","summary":"One shipment.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_shipment_get","x-rivier-sdk":"shop.shipment.get","x-rivier-cli":"shop shipment get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.shipment.update","summary":"Correct a shipment's carrier or tracking number.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_shipment_update","x-rivier-sdk":"shop.shipment.update","x-rivier-cli":"shop shipment update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"carrier":{"type":"string","maxLength":60},"tracking":{"type":"string","maxLength":100}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/shipments/{id}/deliver":{"post":{"operationId":"shop.shipment.deliver","summary":"Mark a shipment delivered.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_shipment_deliver","x-rivier-graphql":"Mutation.deliverShopShipment","x-rivier-sdk":"shop.shipment.deliver","x-rivier-cli":"shop shipment deliver","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/stock":{"get":{"operationId":"shop.stock.list","summary":"Stock of every variant of a product at every place: on hand, held, promised, safety stock, what can still be sold.","tags":["shop"],"parameters":[{"name":"productId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_stock_levels","x-rivier-sdk":"shop.stock.list","x-rivier-cli":"shop stock list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"levels":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["levels"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.stock.adjust","summary":"Receive stock (positive) or correct it (negative), idempotent on the key.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_stock_adjust","x-rivier-sdk":"shop.stock.adjust","x-rivier-cli":"shop stock adjust","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":-1000000,"maximum":1000000},"key":{"type":"string","minLength":1,"maxLength":200},"reason":{"type":"string","maxLength":200,"default":""}},"required":["variantId","locationId","quantity"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/stock-rules":{"put":{"operationId":"shop.stockRule.set","summary":"Safety stock and backorder for a variant at a location.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.stockRule.set","x-rivier-cli":"shop stock rule set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"variantId":{"type":"string","format":"uuid"},"locationId":{"type":"string","format":"uuid"},"safetyStock":{"type":"integer","minimum":0,"maximum":1000000},"backorder":{"type":"boolean"}},"required":["variantId","locationId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/supplied":{"get":{"operationId":"shop.supplied.list","summary":"Which variants each supplier sells and at what cost.","tags":["shop"],"parameters":[{"name":"supplierId","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"variantId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_supplied_list","x-rivier-sdk":"shop.supplied.list","x-rivier-cli":"shop supplied list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"supplied":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["supplied"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.supplied.create","summary":"Say that a supplier sells a variant, at a unit cost.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_supplier_link","x-rivier-sdk":"shop.supplied.create","x-rivier-cli":"shop supplied create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"supplierId":{"type":"string","minLength":1,"maxLength":80},"variantId":{"type":"string","format":"uuid"},"sku":{"type":"string","maxLength":100},"unitCost":{"type":"object","properties":{"amountMinor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amountMinor","currency"],"additionalProperties":false},"leadTimeDays":{"type":"integer","minimum":0,"maximum":365},"packSize":{"type":"integer","minimum":1,"default":1}},"required":["supplierId","variantId","unitCost"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/suppliers":{"get":{"operationId":"shop.supplier.list","summary":"Suppliers.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_suppliers_list","x-rivier-sdk":"shop.supplier.list","x-rivier-cli":"shop supplier list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"suppliers":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["suppliers"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.supplier.create","summary":"Add a supplier.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_supplier_create","x-rivier-sdk":"shop.supplier.create","x-rivier-cli":"shop supplier create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"contacts":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"role":{"type":"string"}},"required":["name"],"additionalProperties":false},"default":[]},"terms":{"type":"object","properties":{"paymentDays":{"type":"integer","minimum":0,"maximum":365,"default":30},"minOrder":{"type":"object","properties":{"amountMinor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["amountMinor","currency"],"additionalProperties":false},"incoterms":{"type":"string"},"notes":{"type":"string","maxLength":2000}},"additionalProperties":false,"default":{}},"leadTimeDays":{"type":"integer","minimum":0,"maximum":365,"default":7},"currency":{"type":"string","minLength":3,"maxLength":3,"default":"EUR"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/suppliers/{id}":{"get":{"operationId":"shop.supplier.get","summary":"One supplier.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_supplier_get","x-rivier-sdk":"shop.supplier.get","x-rivier-cli":"shop supplier get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"shop.supplier.archive","summary":"Stop buying from a supplier (an approver's decision).","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"shop:write","x-rivier-mcp":"rivier_shop_supplier_archive","x-rivier-sdk":"shop.supplier.archive","x-rivier-cli":"shop supplier archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"archived":{"type":"boolean","const":true}},"required":["archived"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/tax-rules":{"post":{"operationId":"shop.taxRule.create","summary":"Add a tax rule with its source and the date it was checked.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.taxRule.create","x-rivier-cli":"shop tax rule create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"country":{"type":"string","pattern":"^[A-Z]{2}$"},"region":{"type":"string","maxLength":10,"default":""},"taxClass":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"standard"},"rateBp":{"type":"integer","minimum":0,"maximum":10000},"inclusive":{"type":"boolean","default":true},"validFrom":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"validTo":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"sourceUrl":{"type":"string","format":"uri","maxLength":500},"verifiedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["name","country","rateBp","sourceUrl","verifiedOn"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.taxRule.list","summary":"Tax rules with their dates, source and when they were last checked.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_tax_rules_list","x-rivier-sdk":"shop.taxRule.list","x-rivier-cli":"shop tax rule list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"taxRules":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["taxRules"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/tax-rules/{id}":{"patch":{"operationId":"shop.taxRule.update","summary":"Change a tax rule's rate, dates or source.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.taxRule.update","x-rivier-cli":"shop tax rule update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"rateBp":{"type":"integer","minimum":0,"maximum":10000},"inclusive":{"type":"boolean"},"validFrom":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"validTo":{"anyOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},{"type":"null"}]},"sourceUrl":{"type":"string","format":"uri","maxLength":500},"verifiedOn":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/variants":{"post":{"operationId":"shop.variant.create","summary":"Add a variant (SKU, options, weight, tax class, cost and price floor) to a product.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-mcp":"rivier_shop_variant_create","x-rivier-sdk":"shop.variant.create","x-rivier-cli":"shop variant create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"productId":{"type":"string","format":"uuid"},"sku":{"type":"string","minLength":1,"maxLength":80},"gtin":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"mpn":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}]},"options":{"type":"object","additionalProperties":{"type":"string","maxLength":100},"default":{}},"weightG":{"type":"integer","minimum":0,"maximum":1000000,"default":0},"taxClass":{"type":"string","pattern":"^[a-z][a-z0-9_]{0,29}$","default":"standard"},"costMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"priceFloorMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"position":{"type":"integer","minimum":0,"maximum":10000,"default":0}},"required":["productId","sku"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.variant.list","summary":"The variants of a product.","tags":["shop"],"parameters":[{"name":"productId","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.variant.list","x-rivier-cli":"shop variant list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"variants":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["variants"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/variants/{id}":{"get":{"operationId":"shop.variant.get","summary":"One variant with its SKU, options, weight, tax class, cost and price floor.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_variant_get","x-rivier-sdk":"shop.variant.get","x-rivier-cli":"shop variant get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"shop.variant.update","summary":"Change a variant's SKU, options, weight, tax class, cost or price floor.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.variant.update","x-rivier-cli":"shop variant update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sku":{"type":"string","minLength":1,"maxLength":80},"gtin":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}]},"mpn":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"options":{"type":"object","additionalProperties":{"type":"string","maxLength":80}},"weightG":{"type":"integer","minimum":0,"maximum":1000000},"taxClass":{"type":"string","minLength":1,"maxLength":40},"costMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"priceFloorMinor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"position":{"type":"integer","minimum":0,"maximum":10000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/variants/{id}/archive":{"post":{"operationId":"shop.variant.archive","summary":"Retire a variant. Refused while it is in a cart, an unshipped order or a bundle.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.variant.archive","x-rivier-cli":"shop variant archive","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/views":{"get":{"operationId":"shop.view.list","summary":"Saved views of a list (search, filters, sort): the caller's own and the project's shared ones.","tags":["shop"],"parameters":[{"name":"area","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"shop:read","x-rivier-sdk":"shop.view.list","x-rivier-cli":"shop view list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"views":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["views"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"shop.view.save","summary":"Keep the current search, filters and sort of a list under a name, for oneself or shared.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.view.save","x-rivier-cli":"shop view save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"area":{"type":"string","pattern":"^[a-z][a-z0-9_.-]{0,39}$"},"name":{"type":"string","minLength":1,"maxLength":60},"shared":{"type":"boolean","default":false},"state":{"type":"object","properties":{"search":{"type":"string","maxLength":200},"stock":{"type":"string","maxLength":20},"tag":{"type":"string","maxLength":40},"sort":{"type":"string","maxLength":40}},"additionalProperties":true,"default":{}}},"required":["area","name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/views/{id}":{"delete":{"operationId":"shop.view.remove","summary":"Delete one of one's own saved views.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:write","x-rivier-sdk":"shop.view.remove","x-rivier-cli":"shop view remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","const":true}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/zones":{"post":{"operationId":"shop.zone.create","summary":"Add a shipping zone (a set of countries).","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.zone.create","x-rivier-cli":"shop zone create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"countries":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$"},"minItems":1,"maxItems":300}},"required":["name","countries"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"shop.zone.list","summary":"Shipping zones with their countries and rates.","tags":["shop"],"parameters":[],"x-rivier-scope":"shop:read","x-rivier-mcp":"rivier_shop_zones_list","x-rivier-sdk":"shop.zone.list","x-rivier-cli":"shop zone list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"zones":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["zones"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/shop/zones/{id}":{"patch":{"operationId":"shop.zone.update","summary":"Change a zone's name or countries, or archive it.","tags":["shop"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"shop:admin","x-rivier-sdk":"shop.zone.update","x-rivier-cli":"shop zone update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"countries":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$"},"minItems":1,"maxItems":250},"status":{"type":"string","enum":["active","archived"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/signing/requests":{"get":{"operationId":"content.signing.list","summary":"The project's signing requests: the document, who must sign, who has, and where each stands.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_signing_list","x-rivier-graphql":"Query.contentSigningList","x-rivier-sdk":"content.signing.list","x-rivier-cli":"content signing list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"requests":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["requests"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.signing.send","summary":"Send a PDF from the drive for signature to up to ten people, together or one after another. The file's fingerprint is taken now; if the file changes, nobody can sign it.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-sdk":"content.signing.send","x-rivier-cli":"content signing send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"assetId":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":200},"message":{"type":"string","maxLength":2000,"default":""},"signers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"email":{"type":"string","format":"email","maxLength":254}},"required":["name","email"],"additionalProperties":false},"minItems":1,"maxItems":10},"ordered":{"type":"boolean","default":false},"expiresDays":{"type":"integer","minimum":1,"maximum":90,"default":30}},"required":["assetId","title","signers"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/signing/requests/{id}":{"get":{"operationId":"content.signing.get","summary":"One signing request with its trail: sent, opened, signed or declined, by whom and when.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-mcp":"rivier_signing_get","x-rivier-graphql":"Query.contentSigningGet","x-rivier-sdk":"content.signing.get","x-rivier-cli":"content signing get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/signing/requests/{id}/cancel":{"post":{"operationId":"content.signing.cancel","summary":"Cancel a request still waiting for signatures.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-sdk":"content.signing.cancel","x-rivier-cli":"content signing cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/signing/requests/{id}/signers/{signerId}/remind":{"post":{"operationId":"content.signing.remind","summary":"Send one signer a new link and mail it again; the old link stops working.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"signerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-sdk":"content.signing.remind","x-rivier-cli":"content signing remind","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/social/calendar":{"get":{"operationId":"social.calendar.get","summary":"The posting calendar.","tags":["social"],"parameters":[],"x-rivier-scope":"social:read","x-rivier-graphql":"Query.socialCalendarGet","x-rivier-sdk":"social.calendar.get","x-rivier-cli":"social calendar get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/social/channels":{"get":{"operationId":"social.channel.status","summary":"Channels, routes, slots and pause state.","tags":["social"],"parameters":[],"x-rivier-scope":"social:read","x-rivier-graphql":"Query.socialChannelStatus","x-rivier-sdk":"social.channel.status","x-rivier-cli":"social channel status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/social/drain":{"post":{"operationId":"social.queue.drain","summary":"Publish what is due now.","tags":["social"],"parameters":[],"x-rivier-scope":"social:write","x-rivier-graphql":"Mutation.socialQueueDrain","x-rivier-sdk":"social.queue.drain","x-rivier-cli":"social queue drain","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/social/inbox":{"get":{"operationId":"social.inbox.list","summary":"Comments and mentions collected.","tags":["social"],"parameters":[],"x-rivier-scope":"social:read","x-rivier-graphql":"Query.socialInboxList","x-rivier-sdk":"social.inbox.list","x-rivier-cli":"social inbox list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/social/jobs":{"get":{"operationId":"social.job.list","summary":"The native publish queue and open alerts.","tags":["social"],"parameters":[],"x-rivier-scope":"social:read","x-rivier-graphql":"Query.socialJobList","x-rivier-sdk":"social.job.list","x-rivier-cli":"social job list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/social/platforms":{"get":{"operationId":"social.platform.list","summary":"What each platform allows.","tags":["social"],"parameters":[],"x-rivier-scope":"social:read","x-rivier-graphql":"Query.socialPlatformList","x-rivier-sdk":"social.platform.list","x-rivier-cli":"social platform list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/suppressions":{"get":{"operationId":"contacts.donotcontact.list","summary":"Addresses and numbers we must not contact.","tags":["contacts"],"parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsDonotcontactList","x-rivier-sdk":"contacts.donotcontact.list","x-rivier-cli":"contacts donotcontact list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.donotcontact.add","summary":"Add to the do-not-contact list.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsDonotcontactAdd","x-rivier-sdk":"contacts.donotcontact.add","x-rivier-cli":"contacts donotcontact add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"contacts.donotcontact.remove","summary":"Remove from the do-not-contact list.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsDonotcontactRemove","x-rivier-sdk":"contacts.donotcontact.remove","x-rivier-cli":"contacts donotcontact remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags":{"get":{"operationId":"memory.tags.get","summary":"Read tags","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_personas_tag_list","x-rivier-graphql":"Query.memoryTagsGet","x-rivier-sdk":"memory.tags.get","x-rivier-cli":"memory tags get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"memory.tags.create","summary":"Run tags","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_tag_create","x-rivier-graphql":"Mutation.memoryTagsCreate","x-rivier-sdk":"memory.tags.create","x-rivier-cli":"memory tags create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags/bulk":{"post":{"operationId":"memory.tags.bulk","summary":"Run tags bulk","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryTagsBulk","x-rivier-sdk":"memory.tags.bulk","x-rivier-cli":"memory tags bulk","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags/rules":{"get":{"operationId":"memory.tagsRules.get","summary":"Read tags rules","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryTagsRulesGet","x-rivier-sdk":"memory.tagsRules.get","x-rivier-cli":"memory tags rules get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"memory.tagsRules.set","summary":"Set tags rules","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_tag_rules_set","x-rivier-graphql":"Mutation.memoryTagsRulesSet","x-rivier-sdk":"memory.tagsRules.set","x-rivier-cli":"memory tags rules set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags/rules/{id}":{"delete":{"operationId":"memory.tagsRules.remove","summary":"Remove tags rules (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryTagsRulesRemove","x-rivier-sdk":"memory.tagsRules.remove","x-rivier-cli":"memory tags rules remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags/suggest":{"post":{"operationId":"memory.tags.suggest","summary":"Run tags suggest","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryTagsSuggest","x-rivier-sdk":"memory.tags.suggest","x-rivier-cli":"memory tags suggest","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags/{id}":{"delete":{"operationId":"memory.tags.remove","summary":"Remove tags (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_tag_delete","x-rivier-graphql":"Mutation.memoryTagsRemove","x-rivier-sdk":"memory.tags.remove","x-rivier-cli":"memory tags remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"memory.tags.get2","summary":"Read tags (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryTagsGet2","x-rivier-sdk":"memory.tags.get2","x-rivier-cli":"memory tags get2","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"memory.tags.update","summary":"Change tags (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_tag_rename","x-rivier-graphql":"Mutation.memoryTagsUpdate","x-rivier-sdk":"memory.tags.update","x-rivier-cli":"memory tags update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tags/{id}/merge":{"post":{"operationId":"memory.tags.merge","summary":"Run tags merge (by id)","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_personas_tag_merge","x-rivier-graphql":"Mutation.memoryTagsMerge","x-rivier-sdk":"memory.tags.merge","x-rivier-cli":"memory tags merge","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage":{"get":{"operationId":"usage.plan.report","summary":"Usage against the plan, by meter.","tags":["usage"],"parameters":[{"name":"productId","in":"query","required":false,"schema":{"type":"string"}},{"name":"agentId","in":"query","required":false,"schema":{"type":"string"}},{"name":"interestId","in":"query","required":false,"schema":{"type":"string"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string"}},{"name":"meter","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"usage:read","x-rivier-mcp":"rivier_personas_usage_report","x-rivier-graphql":"Query.usagePlanReport","x-rivier-sdk":"usage.plan.report","x-rivier-cli":"usage plan report","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/allocations":{"get":{"operationId":"usage.allocation.list","summary":"Allowances set for products, agents and channels.","tags":["usage"],"parameters":[{"name":"meter","in":"query","required":false,"schema":{"type":"string"}}],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageAllocationList","x-rivier-sdk":"usage.allocation.list","x-rivier-cli":"usage allocation list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"usage.allocation.set","summary":"Set an allowance.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageAllocationSet","x-rivier-sdk":"usage.allocation.set","x-rivier-cli":"usage allocation set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"meter":{"type":"string","minLength":1,"maxLength":60},"scopeKind":{"type":"string","enum":["product","agent","interest","channel"]},"scopeId":{"type":"string","minLength":1,"maxLength":100},"limit":{"type":"integer","minimum":0}},"required":["meter","scopeKind","scopeId","limit"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"usage.allocation.remove","summary":"Remove an allowance.","tags":["usage"],"parameters":[{"name":"meter","in":"query","required":true,"schema":{"type":"string"}},{"name":"scopeKind","in":"query","required":true,"schema":{"type":"string","enum":["product","agent","interest","channel"]}},{"name":"scopeId","in":"query","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageAllocationRemove","x-rivier-sdk":"usage.allocation.remove","x-rivier-cli":"usage allocation remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/can":{"get":{"operationId":"usage.plan.can","summary":"Whether a capability is allowed now, and why not.","tags":["usage"],"parameters":[{"name":"capability","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}},{"name":"meter","in":"query","required":false,"schema":{"type":"string"}},{"name":"amount","in":"query","required":false,"schema":{"type":"integer"}}],"x-rivier-scope":"usage:read","x-rivier-mcp":"rivier_personas_can","x-rivier-graphql":"Query.usagePlanCan","x-rivier-sdk":"usage.plan.can","x-rivier-cli":"usage plan can","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits":{"get":{"operationId":"usage.limit.list","summary":"Every allowance of the project this period: included, used, what is left, when it resets, the project's choice at the limit, and whether the organisation pools it.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageLimitList","x-rivier-sdk":"usage.limit.list","x-rivier-cli":"usage limit list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"meters":{"type":"array","items":{"type":"object","properties":{"meter":{"type":"string"},"label":{"type":"string"},"unit":{"type":"string"},"period":{"type":"string"},"resetsAt":{"type":["string","null"]},"included":{"type":"number"},"capacity":{"type":"number"},"used":{"type":"number"},"held":{"type":"number"},"remaining":{"type":"number"},"share":{"type":"number"},"state":{"type":"string","enum":["ok","warn","over","off"]},"policy":{"type":"object","properties":{"overage":{"type":"string","enum":["block","bill","approve"]},"warnAt":{"type":"array","items":{"type":"number"}},"hardOverage":{"type":["number","null"]},"approvalBlock":{"type":["number","null"]},"projectCap":{"type":["number","null"]},"pooled":{"type":"boolean"}},"required":["overage","warnAt","hardOverage","approvalBlock","projectCap","pooled"],"additionalProperties":false},"poolDraws":{"type":"number"},"overage":{"type":"number"},"approved":{"type":"number"},"pool":{"anyOf":[{"type":"object","properties":{"capacity":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"}},"required":["capacity","used","remaining"],"additionalProperties":false},{"type":"null"}]},"projectCapRemaining":{"type":["number","null"]}},"required":["meter","label","unit","period","resetsAt","included","capacity","used","held","remaining","share","state","policy","poolDraws","overage","approved","pool","projectCapRemaining"],"additionalProperties":false}}},"required":["meters"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/approvals":{"get":{"operationId":"usage.limitApproval.list","summary":"Requests waiting for a person to approve going past an allowance, and past decisions.","tags":["usage"],"parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["pending","approved","denied"]}}],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageLimitApprovalList","x-rivier-sdk":"usage.limitApproval.list","x-rivier-cli":"usage limit approval list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"approvals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"meter":{"type":"string"},"period":{"type":"string"},"requested":{"type":"number"},"granted":{"type":"number"},"consumed":{"type":"number"},"state":{"type":"string","enum":["pending","approved","denied"]},"reason":{"type":"string"},"requestedAt":{"type":"string"},"decidedBy":{"type":["string","null"]},"decidedAt":{"type":["string","null"]}},"required":["id","meter","period","requested","granted","consumed","state","reason","requestedAt","decidedBy","decidedAt"],"additionalProperties":false}}},"required":["approvals"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/approvals/{id}/decide":{"post":{"operationId":"usage.limitApproval.decide","summary":"Approve or deny a request to go past an allowance. Approving lets that many more units through this period.","tags":["usage"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageLimitApprovalDecide","x-rivier-sdk":"usage.limitApproval.decide","x-rivier-cli":"usage limit approval decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"approve":{"type":"boolean"},"granted":{"type":"integer","minimum":1}},"required":["approve"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"meter":{"type":"string"},"period":{"type":"string"},"requested":{"type":"number"},"granted":{"type":"number"},"consumed":{"type":"number"},"state":{"type":"string","enum":["pending","approved","denied"]},"reason":{"type":"string"},"requestedAt":{"type":"string"},"decidedBy":{"type":["string","null"]},"decidedAt":{"type":["string","null"]}},"required":["id","meter","period","requested","granted","consumed","state","reason","requestedAt","decidedBy","decidedAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/check":{"post":{"operationId":"usage.limit.check","summary":"Whether a send or call of this size fits right now, without using anything. When it does not, the plain reason and the next step. Ask before a large send.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:read","x-rivier-mcp":"rivier_usage_limit_check","x-rivier-graphql":"Query.usageLimitCheck","x-rivier-sdk":"usage.limit.check","x-rivier-cli":"usage limit check","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"meter":{"type":"string","minLength":1,"maxLength":80},"qty":{"type":"integer","minimum":1,"maximum":1000000,"default":1}},"required":["meter"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"mode":{"type":"string"},"refusal":{"type":"object","properties":{"code":{"type":"string"},"meter":{"type":"string"},"label":{"type":"string"},"reason":{"type":"string"},"used":{"type":"number"},"limit":{"type":"number"},"remaining":{"type":"number"},"resetsAt":{"type":["string","null"]},"policy":{"type":"string","enum":["block","bill","approve"]},"next":{"type":"object","properties":{"action":{"type":"string","enum":["upgrade","topup","raise_cap","approve","wait"]},"route":{"type":"string"},"hint":{"type":"string"},"approvalId":{"type":"string"},"resetsAt":{"type":["string","null"]}},"required":["action","route","hint"],"additionalProperties":false}},"required":["code","meter","label","reason","used","limit","remaining","resetsAt","policy","next"],"additionalProperties":false}},"required":["ok"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/draws":{"get":{"operationId":"usage.limitDraw.list","summary":"Units that went through beyond the plan this period: drawn from the organisation pool, billed as overage, or approved by a person.","tags":["usage"],"parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}(-\\d{2})?$"}}],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageLimitDrawList","x-rivier-sdk":"usage.limitDraw.list","x-rivier-cli":"usage limit draw list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"draws":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"meter":{"type":"string"},"period":{"type":"string"},"qty":{"type":"number"},"kind":{"type":"string","enum":["pool","overage","approved"]},"approvalId":{"type":["string","null"]},"at":{"type":"string"}},"required":["id","meter","period","qty","kind","approvalId","at"],"additionalProperties":false}}},"required":["draws"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/organization":{"get":{"operationId":"usage.limitOrganization.get","summary":"How each project of the organisation uses the allowances that can be pooled, and which are pooled.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageLimitOrganizationGet","x-rivier-sdk":"usage.limitOrganization.get","x-rivier-cli":"usage limit organization get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"type":["string","null"]},"pooled":{"type":"array","items":{"type":"string"}},"poolable":{"type":"array","items":{"type":"string"}},"projects":{"type":"array","items":{"type":"object","properties":{"tenantId":{"type":"string"},"name":{"type":["string","null"]},"meters":{"type":"array","items":{"type":"object","properties":{"meter":{"type":"string"},"used":{"type":"number"},"capacity":{"type":"number"}},"required":["meter","used","capacity"],"additionalProperties":false}}},"required":["tenantId","name","meters"],"additionalProperties":false}}},"required":["organizationId","pooled","poolable","projects"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/organization/pool":{"put":{"operationId":"usage.limitOrganization.setPool","summary":"Pool one allowance across all projects of the organisation, or stop pooling it.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageLimitOrganizationSetPool","x-rivier-sdk":"usage.limitOrganization.setPool","x-rivier-cli":"usage limit organization set pool","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"meter":{"type":"string","minLength":1,"maxLength":80},"on":{"type":"boolean"}},"required":["meter","on"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"pooled":{"type":"array","items":{"type":"string"}}},"required":["pooled"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/policy/{meter}":{"put":{"operationId":"usage.limit.set","summary":"Set what happens at the limit for one allowance: stop, carry on and bill the overage, or ask a person; the warning levels; a ceiling on overage; a limit for this project alone.","tags":["usage"],"parameters":[{"name":"meter","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageLimitSet","x-rivier-sdk":"usage.limit.set","x-rivier-cli":"usage limit set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"overage":{"type":"string","enum":["block","bill","approve"]},"warnAt":{"type":"array","items":{"type":"number","exclusiveMinimum":0,"maximum":1},"maxItems":6},"hardOverage":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"approvalBlock":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"projectCap":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"overage":{"type":"string","enum":["block","bill","approve"]},"warnAt":{"type":"array","items":{"type":"number"}},"hardOverage":{"type":["number","null"]},"approvalBlock":{"type":["number","null"]},"projectCap":{"type":["number","null"]},"pooled":{"type":"boolean"}},"required":["overage","warnAt","hardOverage","approvalBlock","projectCap","pooled"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/limits/{meter}":{"get":{"operationId":"usage.limit.get","summary":"One allowance in full.","tags":["usage"],"parameters":[{"name":"meter","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80}}],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageLimitGet","x-rivier-sdk":"usage.limit.get","x-rivier-cli":"usage limit get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"meter":{"type":"string"},"label":{"type":"string"},"unit":{"type":"string"},"period":{"type":"string"},"resetsAt":{"type":["string","null"]},"included":{"type":"number"},"capacity":{"type":"number"},"used":{"type":"number"},"held":{"type":"number"},"remaining":{"type":"number"},"share":{"type":"number"},"state":{"type":"string","enum":["ok","warn","over","off"]},"policy":{"type":"object","properties":{"overage":{"type":"string","enum":["block","bill","approve"]},"warnAt":{"type":"array","items":{"type":"number"}},"hardOverage":{"type":["number","null"]},"approvalBlock":{"type":["number","null"]},"projectCap":{"type":["number","null"]},"pooled":{"type":"boolean"}},"required":["overage","warnAt","hardOverage","approvalBlock","projectCap","pooled"],"additionalProperties":false},"poolDraws":{"type":"number"},"overage":{"type":"number"},"approved":{"type":"number"},"pool":{"anyOf":[{"type":"object","properties":{"capacity":{"type":"number"},"used":{"type":"number"},"remaining":{"type":"number"}},"required":["capacity","used","remaining"],"additionalProperties":false},{"type":"null"}]},"projectCapRemaining":{"type":["number","null"]}},"required":["meter","label","unit","period","resetsAt","included","capacity","used","held","remaining","share","state","policy","poolDraws","overage","approved","pool","projectCapRemaining"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/overage":{"put":{"operationId":"usage.overage.set","summary":"Allow a meter to run past its included amount.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageOverageSet","x-rivier-sdk":"usage.overage.set","x-rivier-cli":"usage overage set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"meter":{"type":"string","minLength":1,"maxLength":60},"amount":{"type":"integer","minimum":0}},"required":["meter","amount"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/topups":{"post":{"operationId":"usage.topup.create","summary":"Add a top-up.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageTopupCreate","x-rivier-sdk":"usage.topup.create","x-rivier-cli":"usage topup create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"meter":{"type":"string","minLength":1,"maxLength":60},"amount":{"type":"integer","minimum":1}},"required":["meter","amount"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/trial":{"get":{"operationId":"usage.trial.get","summary":"Trial status.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:read","x-rivier-graphql":"Query.usageTrialGet","x-rivier-sdk":"usage.trial.get","x-rivier-cli":"usage trial get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/usage/warn":{"put":{"operationId":"usage.warning.set","summary":"Set the warning threshold.","tags":["usage"],"parameters":[],"x-rivier-scope":"usage:admin","x-rivier-graphql":"Mutation.usageWarningSet","x-rivier-sdk":"usage.warning.set","x-rivier-cli":"usage warning set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"share":{"type":"number","minimum":0.1,"maximum":1}},"required":["share"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/services":{"get":{"operationId":"voice.verifyService.list","summary":"The project's verification services: each one is a set of rules for one-time codes (channels, code length, expiry, attempt limits, rate limits, fraud guards).","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_verify_services","x-rivier-graphql":"Query.voiceVerifyServiceList","x-rivier-sdk":"verify.services.list","x-rivier-cli":"verify services","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.verifyService.create","summary":"Create a verification service. Defaults are safe: text, call and email, six digits, ten minutes, five tries, rate limits per destination and network address, premium-rate numbers refused.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceVerifyServiceCreate","x-rivier-sdk":"verify.services.create","x-rivier-cli":"verify service-create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":30,"description":"Shown to the person in the message: Your <name> verification code"},"enabled":{"type":"boolean"},"codeLength":{"type":"integer","minimum":4,"maximum":10},"channels":{"type":"array","items":{"type":"string","enum":["sms","whatsapp","call","email"]},"minItems":1,"maxItems":4},"channelOrder":{"type":"array","items":{"type":"string","enum":["sms","whatsapp","call","email"]},"minItems":1,"maxItems":4,"description":"The order channel auto tries, and a fallback follows"},"autoFallback":{"type":"boolean","description":"When a send fails or is not delivered, try the next channel by itself"},"codeTtlSeconds":{"type":"integer","minimum":60,"maximum":600},"maxSends":{"type":"integer","minimum":1,"maximum":5},"maxChecks":{"type":"integer","minimum":1,"maximum":5},"resendCooldownSeconds":{"type":"integer","minimum":0,"maximum":600},"defaultCountry":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"defaultLocale":{"type":"string","minLength":2,"maxLength":10},"customCodeEnabled":{"type":"boolean"},"psd2Enabled":{"type":"boolean"},"dtmfInputRequired":{"type":"boolean"},"ttsName":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"doNotShareWarning":{"type":"boolean"},"lookupFirst":{"type":"boolean","description":"Look the number up before sending: landlines get a call instead of a text and blocked line types are refused"},"skipSmsToLandlines":{"type":"boolean"},"rateLimits":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["to","ip","user","device","service"],"description":"What the limit counts by: the destination, the caller's network address, a user id, a device id, or the whole service"},"max":{"type":"integer","minimum":1,"maximum":10000},"intervalSeconds":{"type":"integer","minimum":10,"maximum":86400}},"required":["key","max","intervalSeconds"],"additionalProperties":false},"maxItems":10},"fraud":{"type":"object","properties":{"allowCountries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":250,"description":"Only these countries may receive a code; empty allows all"},"denyCountries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":250},"blockPremium":{"type":"boolean"},"blockLineTypes":{"type":"array","items":{"type":"string","minLength":2,"maxLength":30},"maxItems":20,"description":"Line types from a lookup to refuse, for example voip or nonFixedVoip"},"distinctPerIp":{"anyOf":[{"type":"object","properties":{"max":{"type":"integer","minimum":1,"maximum":1000},"intervalSeconds":{"type":"integer","minimum":10,"maximum":86400}},"required":["max","intervalSeconds"],"additionalProperties":false},{"type":"null"}]},"sequentialGuard":{"type":"boolean"},"conversionGuard":{"anyOf":[{"type":"object","properties":{"minSends":{"type":"integer","minimum":5,"maximum":100000},"minConversion":{"type":"number","minimum":0,"maximum":1},"windowSeconds":{"type":"integer","minimum":300,"maximum":604800}},"required":["minSends","minConversion","windowSeconds"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"email":{"type":"object","properties":{"from":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"fromName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"transport":{"type":"string","enum":["auto","resend","furcate-mail","own-mta"]}},"additionalProperties":false}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/services/{id}":{"get":{"operationId":"voice.verifyService.get","summary":"One verification service with all its settings.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceVerifyServiceGet","x-rivier-sdk":"verify.services.get","x-rivier-cli":"verify service","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"voice.verifyService.update","summary":"Change a verification service. Existing verifications keep running under the rules they started with.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceVerifyServiceUpdate","x-rivier-sdk":"verify.services.update","x-rivier-cli":"verify service-update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":30,"description":"Shown to the person in the message: Your <name> verification code"},"enabled":{"type":"boolean"},"codeLength":{"type":"integer","minimum":4,"maximum":10},"channels":{"type":"array","items":{"type":"string","enum":["sms","whatsapp","call","email"]},"minItems":1,"maxItems":4},"channelOrder":{"type":"array","items":{"type":"string","enum":["sms","whatsapp","call","email"]},"minItems":1,"maxItems":4,"description":"The order channel auto tries, and a fallback follows"},"autoFallback":{"type":"boolean","description":"When a send fails or is not delivered, try the next channel by itself"},"codeTtlSeconds":{"type":"integer","minimum":60,"maximum":600},"maxSends":{"type":"integer","minimum":1,"maximum":5},"maxChecks":{"type":"integer","minimum":1,"maximum":5},"resendCooldownSeconds":{"type":"integer","minimum":0,"maximum":600},"defaultCountry":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"defaultLocale":{"type":"string","minLength":2,"maxLength":10},"customCodeEnabled":{"type":"boolean"},"psd2Enabled":{"type":"boolean"},"dtmfInputRequired":{"type":"boolean"},"ttsName":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"doNotShareWarning":{"type":"boolean"},"lookupFirst":{"type":"boolean","description":"Look the number up before sending: landlines get a call instead of a text and blocked line types are refused"},"skipSmsToLandlines":{"type":"boolean"},"rateLimits":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["to","ip","user","device","service"],"description":"What the limit counts by: the destination, the caller's network address, a user id, a device id, or the whole service"},"max":{"type":"integer","minimum":1,"maximum":10000},"intervalSeconds":{"type":"integer","minimum":10,"maximum":86400}},"required":["key","max","intervalSeconds"],"additionalProperties":false},"maxItems":10},"fraud":{"type":"object","properties":{"allowCountries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":250,"description":"Only these countries may receive a code; empty allows all"},"denyCountries":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z]{2}$"},"maxItems":250},"blockPremium":{"type":"boolean"},"blockLineTypes":{"type":"array","items":{"type":"string","minLength":2,"maxLength":30},"maxItems":20,"description":"Line types from a lookup to refuse, for example voip or nonFixedVoip"},"distinctPerIp":{"anyOf":[{"type":"object","properties":{"max":{"type":"integer","minimum":1,"maximum":1000},"intervalSeconds":{"type":"integer","minimum":10,"maximum":86400}},"required":["max","intervalSeconds"],"additionalProperties":false},{"type":"null"}]},"sequentialGuard":{"type":"boolean"},"conversionGuard":{"anyOf":[{"type":"object","properties":{"minSends":{"type":"integer","minimum":5,"maximum":100000},"minConversion":{"type":"number","minimum":0,"maximum":1},"windowSeconds":{"type":"integer","minimum":300,"maximum":604800}},"required":["minSends","minConversion","windowSeconds"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"email":{"type":"object","properties":{"from":{"anyOf":[{"type":"string","format":"email","maxLength":320},{"type":"null"}]},"fromName":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}]},"transport":{"type":"string","enum":["auto","resend","furcate-mail","own-mta"]}},"additionalProperties":false}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"voice.verifyService.remove","summary":"Delete a verification service and its verifications.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceVerifyServiceRemove","x-rivier-sdk":"verify.services.remove","x-rivier-cli":"verify service-delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/services/{id}/check":{"post":{"operationId":"voice.verifyCheck.create","summary":"Check the code a person typed, by destination or verification id. Answers valid and the status (pending, approved, expired or out of tries); a wrong code leaves the verification pending until the tries run out.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_verify_check","x-rivier-graphql":"Mutation.voiceVerifyCheckCreate","x-rivier-sdk":"verify.check","x-rivier-cli":"verify check","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","minLength":3,"maxLength":320},"verificationId":{"type":"string","format":"uuid"},"code":{"type":"string","minLength":3,"maxLength":12,"pattern":"^[A-Za-z0-9]+$"},"ip":{"type":"string","maxLength":64}},"required":["code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/services/{id}/funnel":{"get":{"operationId":"voice.verifyFunnel.get","summary":"How many verifications started, were approved and failed in the last hours, and the conversion share: the first number to read when a service is attacked.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":720}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceVerifyFunnelGet","x-rivier-sdk":"verify.services.funnel","x-rivier-cli":"verify funnel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/services/{id}/verifications":{"post":{"operationId":"voice.verifyStart.create","summary":"Send a one-time code to a phone number or an email address. channel auto uses the service's order and falls back by itself when a channel fails. Rate limits, fraud guards, opt-outs and the plan's allowance are checked first; a refusal says which rule and what to do. The code itself is never returned (only in the mock, where nothing is sent).","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_verify_start","x-rivier-graphql":"Mutation.voiceVerifyStartCreate","x-rivier-sdk":"verify.start","x-rivier-cli":"verify start","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","minLength":3,"maxLength":320,"description":"A phone number (E.164, or national with the service's default country) or an email address"},"channel":{"anyOf":[{"type":"string","enum":["sms","whatsapp","call","email"]},{"type":"string","const":"auto"}],"default":"auto"},"locale":{"type":"string","minLength":2,"maxLength":10},"customCode":{"type":"string","minLength":4,"maxLength":10,"pattern":"^[A-Za-z0-9]+$","description":"A code you made, when the service allows custom codes"},"ip":{"type":"string","maxLength":64,"description":"The caller's network address, for rate limits and fraud checks"},"userId":{"type":"string","maxLength":120},"deviceId":{"type":"string","maxLength":120},"tags":{"type":"object","additionalProperties":{"type":"string","maxLength":120}},"amount":{"type":"string","maxLength":40},"payee":{"type":"string","maxLength":120}},"required":["to"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/verifications":{"get":{"operationId":"voice.verifyAttempt.list","summary":"Verifications, newest first: filter by service, status, channel, destination or time. Each shows its send attempts by channel.","tags":["voice"],"parameters":[{"name":"serviceId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","approved","canceled","expired","max_attempts_reached","failed","deleted"]}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","enum":["sms","whatsapp","call","email"]}},{"name":"to","in":"query","required":false,"schema":{"type":"string","maxLength":320}},{"name":"since","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"before","in":"query","required":false,"schema":{"type":"string","maxLength":40}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceVerifyAttemptList","x-rivier-sdk":"verify.verifications.list","x-rivier-cli":"verify list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/verifications/{vid}":{"get":{"operationId":"voice.verifyAttempt.get","summary":"One verification with its status, attempts per channel and why a channel failed.","tags":["voice"],"parameters":[{"name":"vid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_verify_status","x-rivier-graphql":"Query.voiceVerifyAttemptGet","x-rivier-sdk":"verify.verifications.get","x-rivier-cli":"verify get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/verifications/{vid}/cancel":{"post":{"operationId":"voice.verifyAttempt.cancel","summary":"Cancel a pending verification: its code stops working.","tags":["voice"],"parameters":[{"name":"vid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceVerifyAttemptCancel","x-rivier-sdk":"verify.verifications.cancel","x-rivier-cli":"verify cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/verify/verifications/{vid}/fallback":{"post":{"operationId":"voice.verifyAttempt.fallback","summary":"Send the code through another channel (the next one in the service's order, or the one named) when the person did not receive it.","tags":["voice"],"parameters":[{"name":"vid","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceVerifyAttemptFallback","x-rivier-sdk":"verify.verifications.fallback","x-rivier-cli":"verify fallback","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["sms","whatsapp","call","email"],"description":"A channel to move to; default the next one in the service's order"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/catalogue":{"get":{"operationId":"voice.catalogue.list","summary":"The voices on offer.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_personas_voice_catalogue","x-rivier-graphql":"Query.voiceCatalogueList","x-rivier-sdk":"voice.catalogue.list","x-rivier-cli":"voice catalogue list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/catalogue/refresh":{"post":{"operationId":"voice.catalogue.refresh","summary":"Refresh the voice list from the provider.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCatalogueRefresh","x-rivier-sdk":"voice.catalogue.refresh","x-rivier-cli":"voice catalogue refresh","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/catalogue/{voice}/preview":{"put":{"operationId":"voice.catalogue.preview","summary":"Store a preview clip for a voice.","tags":["voice"],"parameters":[{"name":"voice","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceCataloguePreview","x-rivier-sdk":"voice.catalogue.preview","x-rivier-cli":"voice catalogue preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/live/sessions":{"post":{"operationId":"voice.live.start","summary":"A single-use token for a browser to talk to an agent in real time on a chat site: bound to the agent, the site and the page's origin, valid for one minute.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceLiveStart","x-rivier-sdk":"voice.live.start","x-rivier-cli":"voice live start","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"siteId":{"type":"string","minLength":1,"maxLength":120},"origin":{"type":"string","minLength":1,"maxLength":200},"language":{"type":"string","minLength":2,"maxLength":20},"maxMinutes":{"type":"integer","minimum":1,"maximum":60}},"required":["agentId","siteId","origin"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string"},"maxMinutes":{"type":"number"}},"required":["token","url","expiresAt","maxMinutes"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/live/sessions/{id}/extend":{"post":{"operationId":"voice.live.extend","summary":"Give a live browser conversation more minutes, up to the agent's profile maximum.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceLiveExtend","x-rivier-sdk":"voice.live.extend","x-rivier-cli":"voice live extend","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"minutes":{"type":"integer","minimum":1,"maximum":60}},"required":["minutes"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"maxMinutes":{"type":"number"}},"required":["id","maxMinutes"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/platform/languages":{"get":{"operationId":"voice.platformSession.languages","summary":"What each live route takes and says, for speech in, speech out and interpreting, and the date that was read from the supplier.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePlatformSessionLanguages","x-rivier-sdk":"voice.platformSession.languages","x-rivier-cli":"voice platform session languages","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/platform/sessions":{"post":{"operationId":"voice.platformSession.start","summary":"A real-time voice session your platform configures with no agent: converse on your own instruction, interpret between two languages, or only transcribe; a live route, a catalogue voice, tools answered in the browser or posted signed to your server, your own metadata. Answers a single-use token bound to that configuration and one page origin, valid one minute; the same idempotency key answers the same session until it starts.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePlatformSessionStart","x-rivier-sdk":"voice.platformSession.start","x-rivier-cli":"voice platform session start","x-rivier-events":["voice.session.usage","voice.session.ended"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["converse","translate","transcribe"]},"route":{"type":"string","default":"live","description":"A live route: live or live-thinking"},"instruction":{"type":"string","maxLength":8000,"default":"","description":"What the voice is and does (converse); added guidance (translate, transcribe)"},"voice":{"type":"string","default":"Kore","description":"A voice id from GET /voice/catalogue"},"language":{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$","description":"The language spoken (converse, transcribe)"},"languages":{"type":"array","minItems":2,"maxItems":2,"items":[{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"},{"type":"string","pattern":"^[a-z]{2,3}(-[A-Za-z0-9]{2,8})?$"}],"description":"The two languages an interpreter goes between (translate)"},"words":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":200,"default":[],"description":"Names and terms to say and write as given"},"textOut":{"type":"boolean","default":true,"description":"Send the words heard and said to the browser as text"},"keepWords":{"type":"boolean","default":false,"description":"Keep the words after the session (never the sound); erasable by session or metadata"},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-zA-Z_][a-zA-Z0-9_]{0,63}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"parameters":{"type":"object","additionalProperties":{},"default":{"type":"object","properties":{}}},"answeredBy":{"type":"string","enum":["browser","server"],"description":"browser: the page answers inside the session; server: Rivier posts it, signed, to url"},"url":{"type":"string","format":"uri","maxLength":500},"timeoutMs":{"type":"integer","minimum":500,"maximum":10000,"default":5000}},"required":["name","description","answeredBy"],"additionalProperties":false},"maxItems":20,"default":[]},"maxMinutes":{"type":"integer","minimum":1,"maximum":60,"default":15},"origin":{"type":"string","minLength":1,"maxLength":200,"description":"The page's origin the browser connects from"},"metadata":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":200},{"type":"number"},{"type":"boolean"}]},"default":{}},"idempotencyKey":{"type":"string","minLength":1,"maxLength":200}},"required":["kind","origin","idempotencyKey"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/platform/sessions/erase":{"post":{"operationId":"voice.platformSession.erase","summary":"Erase the kept words of one platform session, or of every session whose metadata has the given values. The figures stay.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePlatformSessionErase","x-rivier-sdk":"voice.platformSession.erase","x-rivier-cli":"voice platform session erase","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"metadata":{"type":"object","additionalProperties":{"type":["string","number","boolean"]}}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"erased":{"type":"number"}},"required":["erased"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/platform/sessions/{id}":{"get":{"operationId":"voice.platformSession.get","summary":"A platform voice session: its state, seconds, minutes, cost, why it ended, and the words when they were kept.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voicePlatformSessionGet","x-rivier-sdk":"voice.platformSession.get","x-rivier-cli":"voice platform session get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/platform/sessions/{id}/end":{"post":{"operationId":"voice.platformSession.end","summary":"End a running platform session.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePlatformSessionEnd","x-rivier-sdk":"voice.platformSession.end","x-rivier-cli":"voice platform session end","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/platform/sessions/{id}/extend":{"post":{"operationId":"voice.platformSession.extend","summary":"More minutes for a running platform session, refused when the plan cannot hold them now.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voicePlatformSessionExtend","x-rivier-sdk":"voice.platformSession.extend","x-rivier-cli":"voice platform session extend","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"minutes":{"type":"integer","minimum":1,"maximum":60}},"required":["minutes"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"maxMinutes":{"type":"number"}},"required":["id","maxMinutes"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/profiles/{id}/approve":{"post":{"operationId":"voice.profile.approve","summary":"Approve a voice profile.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_personas_voice_profile_approve","x-rivier-graphql":"Mutation.voiceProfileApprove","x-rivier-sdk":"voice.profile.approve","x-rivier-cli":"voice profile approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/profiles/{id}/reject":{"post":{"operationId":"voice.profile.reject","summary":"Send a voice profile back.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceProfileReject","x-rivier-sdk":"voice.profile.reject","x-rivier-cli":"voice profile reject","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","minLength":1,"maxLength":300}},"required":["note"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/profiles/{id}/submit":{"post":{"operationId":"voice.profile.submit","summary":"Send a voice profile for approval.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_personas_voice_profile_submit","x-rivier-graphql":"Mutation.voiceProfileSubmit","x-rivier-sdk":"voice.profile.submit","x-rivier-cli":"voice profile submit","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/project":{"get":{"operationId":"voice.profile.project","summary":"The project's voice profile.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceProfileProject","x-rivier-sdk":"voice.profile.project","x-rivier-cli":"voice profile project","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.profile.proposeProject","summary":"Propose the project's voice profile.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceProfileProposeProject","x-rivier-sdk":"voice.profile.proposeProject","x-rivier-cli":"voice profile propose project","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/sessions":{"get":{"operationId":"voice.session.list","summary":"Voice sessions.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-mcp":"rivier_personas_session_list","x-rivier-graphql":"Query.voiceSessionList","x-rivier-sdk":"voice.session.list","x-rivier-cli":"voice session list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/sessions/{id}":{"get":{"operationId":"voice.session.get","summary":"One voice session.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceSessionGet","x-rivier-sdk":"voice.session.get","x-rivier-cli":"voice session get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/sessions/{id}/end":{"post":{"operationId":"voice.session.end","summary":"End a session.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_personas_session_end","x-rivier-graphql":"Mutation.voiceSessionEnd","x-rivier-sdk":"voice.session.end","x-rivier-cli":"voice session end","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/sessions/{id}/transcript":{"get":{"operationId":"voice.session.transcript","summary":"The transcript of a session.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceSessionTranscript","x-rivier-sdk":"voice.session.transcript","x-rivier-cli":"voice session transcript","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/voice/sessions/{id}/transfer":{"post":{"operationId":"voice.session.transfer","summary":"Hand a session to a person.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-mcp":"rivier_personas_session_transfer","x-rivier-graphql":"Mutation.voiceSessionTransfer","x-rivier-sdk":"voice.session.transfer","x-rivier-cli":"voice session transfer","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/webhooks/deliveries":{"get":{"operationId":"keys.delivery.list","summary":"The delivery log: attempts, answers, and what is waiting to be retried.","tags":["keys"],"parameters":[{"name":"endpointId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"x-rivier-scope":"keys:read","x-rivier-graphql":"Query.keysDeliveryList","x-rivier-sdk":"keys.delivery.list","x-rivier-cli":"keys delivery list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"deliveries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"endpointId":{"type":"string","format":"uuid"},"eventSeq":{"type":"number"},"attempt":{"type":"number"},"state":{"type":"string","enum":["pending","ok","failed","dead"]},"nextAt":{"type":"string"},"lastStatus":{"type":["number","null"]},"lastError":{"type":["string","null"]},"replayOf":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","endpointId","eventSeq","attempt","state","nextAt","lastStatus","lastError","replayOf","createdAt","updatedAt"],"additionalProperties":true}}},"required":["deliveries"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/webhooks/deliveries/{id}/replay":{"post":{"operationId":"keys.delivery.replay","summary":"Send one delivery again.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.delivery.replay","x-rivier-cli":"keys delivery replay","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"endpointId":{"type":"string","format":"uuid"},"eventSeq":{"type":"number"},"attempt":{"type":"number"},"state":{"type":"string","enum":["pending","ok","failed","dead"]},"nextAt":{"type":"string"},"lastStatus":{"type":["number","null"]},"lastError":{"type":["string","null"]},"replayOf":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","endpointId","eventSeq","attempt","state","nextAt","lastStatus","lastError","replayOf","createdAt","updatedAt"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/webhooks/endpoints":{"get":{"operationId":"keys.webhook.list","summary":"The endpoints that receive signed events.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:read","x-rivier-graphql":"Query.keysWebhookList","x-rivier-sdk":"keys.webhook.list","x-rivier-cli":"keys webhook list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"endpoints":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"testDelivery":{"type":"boolean"},"url":{"type":"string"},"description":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"failures":{"type":"number"},"disabledAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","testDelivery","url","description","events","failures","disabledAt","createdBy","createdAt"],"additionalProperties":false}}},"required":["endpoints"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"keys.webhook.create","summary":"Register an https endpoint. The signing secret is returned once.","tags":["keys"],"parameters":[],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.webhook.create","x-rivier-cli":"keys webhook create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"test":{"type":"boolean"},"url":{"type":"string","format":"uri","maxLength":500},"events":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":100},"description":{"type":"string","maxLength":200}},"required":["url"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"testDelivery":{"type":"boolean"},"url":{"type":"string"},"description":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"failures":{"type":"number"},"disabledAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"},"secret":{"type":"string"}},"required":["id","testDelivery","url","description","events","failures","disabledAt","createdBy","createdAt","secret"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/webhooks/endpoints/{id}":{"delete":{"operationId":"keys.webhook.remove","summary":"Remove an endpoint and its delivery log.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.webhook.remove","x-rivier-cli":"keys webhook remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean"}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/webhooks/endpoints/{id}/enable":{"post":{"operationId":"keys.webhook.enable","summary":"Switch an endpoint back on after repeated failures.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.webhook.enable","x-rivier-cli":"keys webhook enable","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"testDelivery":{"type":"boolean"},"url":{"type":"string"},"description":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"failures":{"type":"number"},"disabledAt":{"type":["string","null"]},"createdBy":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","testDelivery","url","description","events","failures","disabledAt","createdBy","createdAt"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/webhooks/endpoints/{id}/replay":{"post":{"operationId":"keys.webhook.replay","summary":"Send an endpoint the events it takes from a point in the stream on.","tags":["keys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"keys:admin","x-rivier-sdk":"keys.webhook.replay","x-rivier-cli":"keys webhook replay","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromSeq":{"type":"integer","minimum":1},"limit":{"type":"integer","minimum":1,"maximum":5000}},"required":["fromSeq"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"number"}},"required":["queued"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/whatif":{"post":{"operationId":"analytics.whatif.start","summary":"Try a decision in simulation before making it: a question and two or three options, run on the same seeds.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsWhatifStart","x-rivier-sdk":"analytics.whatif.start","x-rivier-cli":"analytics whatif start","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":300},"options":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":40},"text":{"type":"string","minLength":1,"maxLength":1500}},"required":["label","text"],"additionalProperties":false},"minItems":2,"maxItems":3},"seed":{"type":"integer"}},"required":["question","options"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"analytics.whatif.list","summary":"The what-if runs of the project, newest first.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsWhatifList","x-rivier-sdk":"analytics.whatif.list","x-rivier-cli":"analytics whatif list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/whatif/{id}":{"get":{"operationId":"analytics.whatif.get","summary":"One what-if: each option's share holding at the end with its spread across seeds, and which option is clearly ahead, if any.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsWhatifGet","x-rivier-sdk":"analytics.whatif.get","x-rivier-cli":"analytics whatif get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/whatif/{id}/decide":{"post":{"operationId":"analytics.whatif.decide","summary":"Record which option a person will go with, or none. It does not carry the option out.","tags":["analytics"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsWhatifDecide","x-rivier-sdk":"analytics.whatif.decide","x-rivier-cli":"analytics whatif decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"option":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]}},"required":["option"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace":{"get":{"operationId":"workspace.overview.get","summary":"The workspace in one read: agents, connections, what is waiting.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOverviewGet","x-rivier-sdk":"workspace.overview.get","x-rivier-cli":"workspace overview get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/activity":{"get":{"operationId":"workspace.activity.list","summary":"What agents did, newest first.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceActivityList","x-rivier-sdk":"workspace.activity.list","x-rivier-cli":"workspace activity list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/activity.csv":{"get":{"operationId":"workspace.activity.csv","summary":"The activity log as CSV.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-sdk":"workspace.activity.csv","x-rivier-cli":"workspace activity csv","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"text/csv":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/agents":{"get":{"operationId":"agents.agent.list","summary":"The agents.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAgentList","x-rivier-sdk":"agents.agent.list","x-rivier-cli":"agents agent list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"agents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"job":{"type":"string"},"remit":{"type":"string"},"mailbox":{"type":["string","null"]},"connectionId":{"type":["string","null"]},"phoneConnectionId":{"type":["string","null"]},"voice":{"type":["string","null"]},"tone":{"type":"string"},"signature":{"type":"string"},"services":{"type":"array","items":{"type":"string"}},"mode":{"type":"string"},"dailyCap":{"type":["number","null"]},"confidenceFloor":{"type":["number","null"]},"initials":{"type":"string"},"accent":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","job","remit","mailbox","connectionId","phoneConnectionId","voice","tone","signature","services","mode","dailyCap","confidenceFloor","initials","accent","createdAt","updatedAt"],"additionalProperties":true}}},"required":["agents"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.agent.create","summary":"Hire an agent.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAgentCreate","x-rivier-sdk":"agents.agent.create","x-rivier-cli":"agents agent create","x-rivier-events":["agents.agent.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"job":{"type":"string","maxLength":200},"remit":{"type":"string","maxLength":2000},"mailbox":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"phoneConnectionId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"voice":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"tone":{"type":"string","enum":["warm","plain","formal"]},"signature":{"type":"string","maxLength":500},"services":{"type":"array","items":{"type":"string","maxLength":64},"maxItems":20},"accent":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/agents/{id}":{"get":{"operationId":"agents.agent.get","summary":"One agent.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAgentGet","x-rivier-sdk":"agents.agent.get","x-rivier-cli":"agents agent get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"agent":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"job":{"type":"string"},"remit":{"type":"string"},"mailbox":{"type":["string","null"]},"connectionId":{"type":["string","null"]},"phoneConnectionId":{"type":["string","null"]},"voice":{"type":["string","null"]},"tone":{"type":"string"},"signature":{"type":"string"},"services":{"type":"array","items":{"type":"string"}},"mode":{"type":"string"},"dailyCap":{"type":["number","null"]},"confidenceFloor":{"type":["number","null"]},"initials":{"type":"string"},"accent":{"type":["string","null"]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","name","job","remit","mailbox","connectionId","phoneConnectionId","voice","tone","signature","services","mode","dailyCap","confidenceFloor","initials","accent","createdAt","updatedAt"],"additionalProperties":true},"activity":{"type":"array","items":{}},"conversations":{"type":"array","items":{}}},"required":["agent","activity","conversations"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"agents.agent.update","summary":"Change an agent's job, mailbox or connection.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAgentUpdate","x-rivier-sdk":"agents.agent.update","x-rivier-cli":"agents agent update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"job":{"type":"string","maxLength":200},"remit":{"type":"string","maxLength":2000},"mailbox":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"phoneConnectionId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"voice":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"tone":{"type":"string","enum":["warm","plain","formal"]},"signature":{"type":"string","maxLength":500},"services":{"type":"array","items":{"type":"string","maxLength":64},"maxItems":20},"accent":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"agents.agent.delete","summary":"Let an agent go.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAgentDelete","x-rivier-sdk":"agents.agent.delete","x-rivier-cli":"agents agent delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/analysis":{"get":{"operationId":"analytics.analysis.get","summary":"How the business is doing.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-mcp":"rivier_analysis","x-rivier-graphql":"Query.analyticsAnalysisGet","x-rivier-sdk":"analytics.analysis.get","x-rivier-cli":"analytics analysis get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/analysis/forecast":{"get":{"operationId":"analytics.analysis.forecast","summary":"The forecast.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsAnalysisForecast","x-rivier-sdk":"analytics.analysis.forecast","x-rivier-cli":"analytics analysis forecast","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/analytics/clients":{"get":{"operationId":"analytics.client.list","summary":"Tracked sites and their tags.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:read","x-rivier-graphql":"Query.analyticsClientList","x-rivier-sdk":"analytics.client.list","x-rivier-cli":"analytics client list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"analytics.client.create","summary":"Track a site.","tags":["analytics"],"parameters":[],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsClientCreate","x-rivier-sdk":"analytics.client.create","x-rivier-cli":"analytics client create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/analytics/clients/{clientId}":{"delete":{"operationId":"analytics.client.delete","summary":"Stop tracking a site.","tags":["analytics"],"parameters":[{"name":"clientId","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"analytics:write","x-rivier-graphql":"Mutation.analyticsClientDelete","x-rivier-sdk":"analytics.client.delete","x-rivier-cli":"analytics client delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/approvals":{"get":{"operationId":"agents.approval.list","summary":"Actions waiting for a person's yes.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsApprovalList","x-rivier-sdk":"agents.approval.list","x-rivier-cli":"agents approval list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/approvals/{id}/approve":{"post":{"operationId":"agents.approval.approve","summary":"Approve an action.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsApprovalApprove","x-rivier-sdk":"agents.approval.approve","x-rivier-cli":"agents approval approve","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/approvals/{id}/decline":{"post":{"operationId":"agents.approval.decline","summary":"Decline an action.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsApprovalDecline","x-rivier-sdk":"agents.approval.decline","x-rivier-cli":"agents approval decline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/ask":{"get":{"operationId":"agents.ask.list","summary":"Questions put to the agents.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAskList","x-rivier-sdk":"agents.ask.list","x-rivier-cli":"agents ask list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.ask.create","summary":"Ask the agents a question.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsAskCreate","x-rivier-sdk":"agents.ask.create","x-rivier-cli":"agents ask create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"asked":{"type":"string","minLength":1,"maxLength":2000}},"required":["asked"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/ask/{id}/decline":{"post":{"operationId":"agents.ask.decline","summary":"Decline an answer.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAskDecline","x-rivier-sdk":"agents.ask.decline","x-rivier-cli":"agents ask decline","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/ask/{id}/run":{"post":{"operationId":"agents.ask.run","summary":"Run a question now.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAskRun","x-rivier-sdk":"agents.ask.run","x-rivier-cli":"agents ask run","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/ask/{id}/schedule":{"post":{"operationId":"agents.ask.schedule","summary":"Ask the same question on a cadence.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsAskSchedule","x-rivier-sdk":"agents.ask.schedule","x-rivier-cli":"agents ask schedule","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"cadence":{"type":"string","enum":["hourly","daily","weekly"]}},"required":["cadence"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/brand":{"get":{"operationId":"workspace.brand.get","summary":"The business's name, domain, sender address and accent.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceBrandGet","x-rivier-sdk":"workspace.brand.get","x-rivier-cli":"workspace brand get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"workspace.brand.update","summary":"Change the business profile.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceBrandUpdate","x-rivier-sdk":"workspace.brand.update","x-rivier-cli":"workspace brand update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200},"domain":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]},"fromAddress":{"anyOf":[{"type":"string","maxLength":320},{"type":"null"}]},"accent":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]}},"required":["name"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/built":{"get":{"operationId":"hosting.page.list","summary":"Pages the business built.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingPageList","x-rivier-sdk":"hosting.page.list","x-rivier-cli":"hosting page list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"hosting.page.create","summary":"Build a page.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingPageCreate","x-rivier-sdk":"hosting.page.create","x-rivier-cli":"hosting page create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/built/publish":{"post":{"operationId":"hosting.page.publish","summary":"Publish a built page.","tags":["hosting"],"parameters":[],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingPagePublish","x-rivier-sdk":"hosting.page.publish","x-rivier-cli":"hosting page publish","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/built/{slug}":{"get":{"operationId":"hosting.page.get","summary":"One built page.","tags":["hosting"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:read","x-rivier-graphql":"Query.hostingPageGet","x-rivier-sdk":"hosting.page.get","x-rivier-cli":"hosting page get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/built/{slug}/restore/{version}":{"post":{"operationId":"hosting.page.restore","summary":"Restore an earlier version.","tags":["hosting"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"hosting:write","x-rivier-graphql":"Mutation.hostingPageRestore","x-rivier-sdk":"hosting.page.restore","x-rivier-cli":"hosting page restore","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/connections":{"get":{"operationId":"connectors.connection.list","summary":"The accounts the workspace has connected.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsConnectionList","x-rivier-sdk":"connectors.connection.list","x-rivier-cli":"connectors connection list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"connectors.connection.create","summary":"Connect an account; the credential is sealed on arrival.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionCreate","x-rivier-sdk":"connectors.connection.create","x-rivier-cli":"connectors connection create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","minLength":1,"maxLength":64},"label":{"type":"string","minLength":1,"maxLength":120},"meta":{"type":"object","additionalProperties":{"type":["string","number","boolean"]}},"secret":{"type":"string","minLength":1,"maxLength":4096}},"required":["provider"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/connections/{id}":{"delete":{"operationId":"connectors.connection.delete","summary":"Disconnect an account.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionDelete","x-rivier-sdk":"connectors.connection.delete","x-rivier-cli":"connectors connection delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/connections/{id}/check":{"post":{"operationId":"connectors.connection.check","summary":"Test a connection.","tags":["connectors"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"connectors:write","x-rivier-graphql":"Mutation.connectorsConnectionCheck","x-rivier-sdk":"connectors.connection.check","x-rivier-cli":"connectors connection check","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/content":{"get":{"operationId":"content.item.list","summary":"Drafts and posts, by state.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentItemList","x-rivier-sdk":"content.item.list","x-rivier-cli":"content item list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.item.draft","summary":"Write a draft for a channel.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentItemDraft","x-rivier-sdk":"content.item.draft","x-rivier-cli":"content item draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","enum":["linkedin","facebook","instagram","x","tiktok","threads","mastodon","discord","telegram","youtube","snapchat","medium"]},"body":{"type":"string","minLength":1,"maxLength":20000},"topic":{"type":"string","maxLength":500},"agentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"mediaUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":2000},{"type":"null"}]},"publishAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["channel","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/content/plans":{"post":{"operationId":"content.plan.create","summary":"Plan recurring content.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentPlanCreate","x-rivier-sdk":"content.plan.create","x-rivier-cli":"content plan create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"topic":{"type":"string","maxLength":2000},"channels":{"type":"array","items":{"type":"string","enum":["linkedin","facebook","instagram","x","tiktok","threads","mastodon","discord","telegram","youtube","snapchat","medium"]},"minItems":1,"maxItems":7},"agentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"maxItems":7},"atHour":{"type":"integer","minimum":0,"maximum":23},"atMinute":{"type":"integer","minimum":0,"maximum":59},"timezone":{"type":"string","maxLength":64},"autopublish":{"type":"boolean"}},"required":["name","channels"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/content/plans/{id}":{"patch":{"operationId":"content.plan.update","summary":"Change a content plan.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentPlanUpdate","x-rivier-sdk":"content.plan.update","x-rivier-cli":"content plan update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"topic":{"type":"string","maxLength":2000},"channels":{"type":"array","items":{"type":"string","enum":["linkedin","facebook","instagram","x","tiktok","threads","mastodon","discord","telegram","youtube","snapchat","medium"]},"minItems":1,"maxItems":7},"agentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"maxItems":7},"atHour":{"type":"integer","minimum":0,"maximum":23},"atMinute":{"type":"integer","minimum":0,"maximum":59},"timezone":{"type":"string","maxLength":64},"autopublish":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"content.plan.delete","summary":"Delete a content plan.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentPlanDelete","x-rivier-sdk":"content.plan.delete","x-rivier-cli":"content plan delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/content/{id}":{"patch":{"operationId":"content.item.edit","summary":"Edit a draft.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentItemEdit","x-rivier-sdk":"content.item.edit","x-rivier-cli":"content item edit","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":20000}},"required":["body"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/content/{id}/decide":{"post":{"operationId":"content.item.decide","summary":"Approve or discard a draft.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentItemDecide","x-rivier-sdk":"content.item.decide","x-rivier-cli":"content item decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approve","discard"]},"publishAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains":{"get":{"operationId":"domains.domain.list","summary":"Every domain this project added, one status object each.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_status","x-rivier-sdk":"domains.domain.list","x-rivier-cli":"domains domain list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["domains"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"domains.domain.add","summary":"Add a domain: detect where its DNS is hosted, build the records and check for conflicts.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_set","x-rivier-sdk":"domains.domain.add","x-rivier-cli":"domains domain add","x-rivier-events":["domains.domain.added"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":253},"mode":{"type":"string","enum":["apex","subdomain","delegate"]},"subLabel":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,30}$"}},"required":["domain"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"object","properties":{},"additionalProperties":true}},"required":["domain"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}":{"get":{"operationId":"domains.domain.get","summary":"The status object of one domain: steps, per-record state and the next action.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:read","x-rivier-mcp":"rivier_domain_records","x-rivier-sdk":"domains.domain.get","x-rivier-cli":"domains domain get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"object","properties":{},"additionalProperties":true}},"required":["domain"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"domains.domain.remove","summary":"Forget the domain. The DNS is left as it is.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.remove","x-rivier-cli":"domains domain remove","x-rivier-events":["domains.domain.removed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean"}},"required":["removed"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/cloudflare":{"post":{"operationId":"domains.domain.connectCloudflare","summary":"Connect a Cloudflare token scoped to this zone. The token is sealed and never returned.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.connectCloudflare","x-rivier-cli":"domains domain connect cloudflare","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","minLength":20,"maxLength":200}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"object","properties":{},"additionalProperties":true}},"required":["domain"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/configure":{"post":{"operationId":"domains.domain.configure","summary":"Apply for me, or repair: take a dump of the zone, apply the records and verify.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.configure","x-rivier-cli":"domains domain configure","x-rivier-events":["domains.domain.configured"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"replaceConflicts":{"type":"boolean"},"autoManage":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/dmarc":{"post":{"operationId":"domains.domain.advanceDmarc","summary":"Tighten the DMARC policy to quarantine or reject after clean reports.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.advanceDmarc","x-rivier-cli":"domains domain advance dmarc","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"policy":{"type":"string","enum":["quarantine","reject"]}},"required":["policy"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/events":{"get":{"operationId":"domains.domain.events","summary":"The operations events of one domain.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:read","x-rivier-sdk":"domains.domain.events","x-rivier-cli":"domains domain events","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":true}}},"required":["events"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/mode":{"post":{"operationId":"domains.domain.setMode","summary":"Choose apex, subdomain or delegate hosting.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.setMode","x-rivier-cli":"domains domain set mode","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["apex","subdomain","delegate"]},"subLabel":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,30}$"}},"required":["mode"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"object","properties":{},"additionalProperties":true}},"required":["domain"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/preview":{"post":{"operationId":"domains.domain.preview","summary":"The plan Rivier would apply to the DNS, without changing anything.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.preview","x-rivier-cli":"domains domain preview","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/recheck":{"post":{"operationId":"domains.domain.recheck","summary":"Check the domain's DNS now and activate it when everything is verified.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-mcp":"rivier_domain_recheck","x-rivier-sdk":"domains.domain.recheck","x-rivier-cli":"domains domain recheck","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"object","properties":{},"additionalProperties":true}},"required":["domain"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/rollback":{"post":{"operationId":"domains.domain.rollback","summary":"Restore the zone from a dump taken before an apply.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.rollback","x-rivier-cli":"domains domain rollback","x-rivier-events":["domains.domain.rolledBack"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dumpId":{"type":"string","minLength":5,"maxLength":200}},"required":["dumpId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/domains/{d}/site":{"post":{"operationId":"domains.domain.setSite","summary":"Serve the site on www and a wildcard, or turn it off with null.","tags":["domains"],"parameters":[{"name":"d","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.domain.setSite","x-rivier-cli":"domains domain set site","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"www":{"type":"boolean"},"wildcard":{"type":"boolean"}},"required":["www","wildcard"],"additionalProperties":false},{"type":"null"}]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"object","properties":{},"additionalProperties":true}},"required":["domain"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/files":{"get":{"operationId":"files.library.list","summary":"The files the business keeps.","tags":["files"],"parameters":[{"name":"under","in":"query","required":false,"schema":{"type":"string","maxLength":500}}],"x-rivier-scope":"files:read","x-rivier-mcp":"rivier_files","x-rivier-graphql":"Query.filesLibraryList","x-rivier-sdk":"files.library.list","x-rivier-cli":"files library list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"keeping":{"type":"boolean"},"files":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"bytes":{"type":"number"},"kept":{"type":["string","null"]}},"required":["key","name","bytes"],"additionalProperties":true}}},"required":["keeping","files"],"additionalProperties":false}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/files/download":{"get":{"operationId":"files.library.download","summary":"Download a file.","tags":["files"],"parameters":[],"x-rivier-scope":"files:read","x-rivier-sdk":"files.library.download","x-rivier-cli":"files library download","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/gaps":{"get":{"operationId":"workspace.gap.list","summary":"Questions customers ask that the knowledge cannot answer.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceGapList","x-rivier-sdk":"workspace.gap.list","x-rivier-cli":"workspace gap list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/gaps/page":{"post":{"operationId":"workspace.gap.page","summary":"Draft a page that closes a gap.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceGapPage","x-rivier-sdk":"workspace.gap.page","x-rivier-cli":"workspace gap page","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"type":"string","minLength":1,"maxLength":200}},"required":["topic"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/grants":{"get":{"operationId":"connectors.grant.list","summary":"How much each service may do on its own.","tags":["connectors"],"parameters":[],"x-rivier-scope":"connectors:read","x-rivier-graphql":"Query.connectorsGrantList","x-rivier-sdk":"connectors.grant.list","x-rivier-cli":"connectors grant list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/grants/{service}":{"patch":{"operationId":"connectors.grant.update","summary":"Change a service's autonomy.","tags":["connectors"],"parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"connectors:admin","x-rivier-graphql":"Mutation.connectorsGrantUpdate","x-rivier-sdk":"connectors.grant.update","x-rivier-cli":"connectors grant update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["off","watch","ask","auto"]},"dailyCap":{"anyOf":[{"type":"integer","minimum":1,"maximum":100000},{"type":"null"}]},"valueCapCents":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000000},{"type":"null"}]},"confidenceFloor":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"connectionId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/home":{"get":{"operationId":"workspace.overview.home","summary":"The home screen's data.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOverviewHome","x-rivier-sdk":"workspace.overview.home","x-rivier-cli":"workspace overview home","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox":{"get":{"operationId":"inbox.overview.inbox","summary":"Mail, messages and calls in one list.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxOverviewInbox","x-rivier-sdk":"inbox.overview.inbox","x-rivier-cli":"inbox overview inbox","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/ai/items/{id}":{"post":{"operationId":"inbox.ai.decide","summary":"Accept or dismiss an AI proposal.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAiDecide","x-rivier-sdk":"inbox.ai.decide","x-rivier-cli":"inbox ai decide","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["accept","dismiss"]}},"required":["decision"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/ai/status":{"get":{"operationId":"inbox.ai.status","summary":"Whether an AI model is connected for the inbox.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxAiStatus","x-rivier-sdk":"inbox.ai.status","x-rivier-cli":"inbox ai status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/assignees":{"get":{"operationId":"inbox.desk.assignees","summary":"The people and agents a conversation can be assigned to.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxDeskAssignees","x-rivier-sdk":"inbox.desk.assignees","x-rivier-cli":"inbox desk assignees","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/attachments/{id}/download":{"get":{"operationId":"inbox.attachment.download","summary":"The bytes of an attachment, as a download (a picture can be shown inline). A held-back file needs a manager and release=1.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"release","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}},{"name":"inline","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}}],"x-rivier-scope":"inbox:read","x-rivier-sdk":"inbox.attachment.download","x-rivier-cli":"inbox attachment download","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/delivery-events":{"post":{"operationId":"inbox.delivery.report","summary":"Report what happened to sent messages (delivered, temporary or permanent bounce, complaint); permanent bounces and complaints put the address on the do-not-send list (owner or manager, or the project's key).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeliveryReport","x-rivier-sdk":"inbox.delivery.report","x-rivier-cli":"inbox delivery report","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["delivered","soft_bounce","hard_bounce","complaint"]},"address":{"type":"string","minLength":3,"maxLength":254},"providerId":{"type":"string","maxLength":300},"messageId":{"type":"string","maxLength":500},"detail":{"type":"string","maxLength":500}},"required":["kind","address"],"additionalProperties":false},"minItems":1,"maxItems":100}},"required":["events"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts":{"get":{"operationId":"inbox.draft.list","summary":"The caller's drafts and scheduled sends, and the replies agents drafted on conversations the caller can reach.","tags":["inbox"],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","scheduled"]}},{"name":"threadId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxDraftList","x-rivier-sdk":"inbox.draft.list","x-rivier-cli":"inbox draft list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.draft.create","summary":"Start a reply, a reply to all, a forward or a new message, with recipients, subject and quoted text filled in and the person's signature on. Returns the live draft if there already is one.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mail_draft","x-rivier-graphql":"Mutation.inboxDraftCreate","x-rivier-sdk":"inbox.draft.create","x-rivier-cli":"inbox draft create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threadId":{"type":"string","format":"uuid"},"mode":{"type":"string","enum":["new","reply","reply_all","forward"]},"mailbox":{"type":"string","minLength":3,"maxLength":254},"to":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":50},"cc":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":50},"bcc":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":50},"subject":{"type":"string","maxLength":300},"body":{"type":"string","maxLength":100000},"templateId":{"type":"string","format":"uuid"},"quote":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}":{"get":{"operationId":"inbox.draft.get","summary":"One draft.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxDraftGet","x-rivier-sdk":"inbox.draft.get","x-rivier-cli":"inbox draft get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.draft.save","summary":"Save a draft as it is written; the version guards against two tabs overwriting each other.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDraftSave","x-rivier-sdk":"inbox.draft.save","x-rivier-cli":"inbox draft save","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer","minimum":1},"to":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":50},"cc":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":50},"bcc":{"type":"array","items":{"type":"string","minLength":3,"maxLength":320},"maxItems":50},"subject":{"type":"string","maxLength":300},"body":{"type":"string","maxLength":100000},"bodyHtml":{"anyOf":[{"type":"string","maxLength":200000},{"type":"null"}]},"mailbox":{"type":"string","minLength":3,"maxLength":254},"signatureId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["version"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.draft.discard","summary":"Throw a draft away.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDraftDiscard","x-rivier-sdk":"inbox.draft.discard","x-rivier-cli":"inbox draft discard","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/attachments":{"post":{"operationId":"inbox.attachment.add","summary":"Attach a file (base64, at most 20 MB, 25 MB and 20 files per message) to a draft. Programs are refused whatever they are called; a scanner, when connected, can refuse more. The file is stored in the Library.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAttachmentAdd","x-rivier-sdk":"inbox.attachment.add","x-rivier-cli":"inbox attachment add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"contentType":{"type":"string","maxLength":120},"dataBase64":{"type":"string","minLength":4,"maxLength":28000000},"inline":{"type":"boolean"},"contentId":{"type":"string","minLength":3,"maxLength":200}},"required":["name","dataBase64"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/attachments/{attId}":{"delete":{"operationId":"inbox.attachment.remove","summary":"Take a file off a draft.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAttachmentRemove","x-rivier-sdk":"inbox.attachment.remove","x-rivier-cli":"inbox attachment remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/cancel-schedule":{"post":{"operationId":"inbox.draft.cancelSchedule","summary":"Bring a scheduled message back as a draft.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDraftCancelSchedule","x-rivier-sdk":"inbox.draft.cancelSchedule","x-rivier-cli":"inbox draft cancel schedule","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/request-send":{"post":{"operationId":"inbox.draft.requestSend","summary":"Put a draft forward for a person to check and send. Nothing is sent; the conversation waits and says who asked and why.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mail_request_send","x-rivier-graphql":"Mutation.inboxDraftRequestSend","x-rivier-sdk":"inbox.draft.requestSend","x-rivier-cli":"inbox draft request send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/schedule":{"post":{"operationId":"inbox.draft.schedule","summary":"Send a draft later (a minute to a year ahead).","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDraftSchedule","x-rivier-sdk":"inbox.draft.schedule","x-rivier-cli":"inbox draft schedule","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sendAt":{"type":"string","minLength":10,"maxLength":40},"force":{"type":"boolean"},"then":{"type":"string","enum":["waiting","done","keep"]}},"required":["sendAt"],"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/send":{"post":{"operationId":"inbox.draft.send","summary":"Send a draft after an undo window of up to 30 seconds. Warns when someone else is replying or has answered since; force sends anyway. In test mode only the project's test addresses receive it.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDraftSend","x-rivier-sdk":"inbox.draft.send","x-rivier-cli":"inbox draft send","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"undoSeconds":{"type":"integer","minimum":0,"maximum":30},"force":{"type":"boolean"},"then":{"type":"string","enum":["waiting","done","keep"]}},"additionalProperties":false}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/drafts/{id}/translate":{"post":{"operationId":"inbox.ai.translateDraft","summary":"Translate what is being written; the translation is sent only if kept, and the original is stored on the message.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAiTranslateDraft","x-rivier-sdk":"inbox.ai.translateDraft","x-rivier-cli":"inbox ai translate draft","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","minLength":2,"maxLength":10}},"required":["to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.ai.keepOriginal","summary":"Send the original instead of the translation.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAiKeepOriginal","x-rivier-sdk":"inbox.ai.keepOriginal","x-rivier-cli":"inbox ai keep original","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/export":{"get":{"operationId":"inbox.export.mailbox","summary":"Take a mailbox's mail out as mbox, a zip of .eml files or a CSV (owner or manager). Marks the mailbox exported, which the release rules ask for. Customer-facing mail only; notes only in the CSV and only when asked.","tags":["inbox"],"parameters":[{"name":"mailbox","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":254}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["mbox","eml","csv"],"default":"mbox"}},{"name":"includeNotes","in":"query","required":false,"schema":{"type":"string","enum":["1","true"]}},{"name":"files","in":"query","required":false,"schema":{"type":"string","enum":["0","false"]}}],"x-rivier-scope":"inbox:read","x-rivier-sdk":"inbox.export.mailbox","x-rivier-cli":"inbox export mailbox","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.export.threads","summary":"Take chosen conversations out as mbox, .eml files in a zip or a CSV.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-sdk":"inbox.export.threads","x-rivier-cli":"inbox export threads","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threadIds":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200},"format":{"type":"string","enum":["mbox","eml","csv"],"default":"eml"},"includeNotes":{"type":"boolean"},"files":{"type":"boolean"}},"required":["threadIds"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/folders":{"get":{"operationId":"inbox.desk.folders","summary":"Counts for the rail: each folder with its unread count, mailboxes, labels, assigned to me, overdue.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxDeskFolders","x-rivier-sdk":"inbox.desk.folders","x-rivier-cli":"inbox desk folders","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/labels":{"get":{"operationId":"inbox.label.list","summary":"Labels the caller can use: the workspace's and their own.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxLabelList","x-rivier-sdk":"inbox.label.list","x-rivier-cli":"inbox label list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.label.create","summary":"Make a label, shared or personal.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxLabelCreate","x-rivier-sdk":"inbox.label.create","x-rivier-cli":"inbox label create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"color":{"type":"string","maxLength":12},"personal":{"type":"boolean"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/labels/{id}":{"patch":{"operationId":"inbox.label.update","summary":"Rename or recolour a label.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxLabelUpdate","x-rivier-sdk":"inbox.label.update","x-rivier-cli":"inbox label update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"color":{"type":"string","maxLength":12}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.label.delete","summary":"Delete a label; conversations keep their messages.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxLabelDelete","x-rivier-sdk":"inbox.label.delete","x-rivier-cli":"inbox label delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/mailbox-readiness":{"get":{"operationId":"inbox.mailbox.readiness","summary":"Whether a mailbox is ready to send for real: SPF, DKIM and DMARC in plain words, sending on or off, the sender name, the project's live state, and the steps left.","tags":["inbox"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":254}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mail_readiness","x-rivier-graphql":"Query.inboxMailboxReadiness","x-rivier-sdk":"inbox.mailbox.readiness","x-rivier-cli":"inbox mailbox readiness","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/mailbox-settings":{"get":{"operationId":"inbox.mailbox.settings","summary":"Whether the desk may send from a mailbox, its daily ceiling and what it has used today, and whether the project is live.","tags":["inbox"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":254}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMailboxSettings","x-rivier-sdk":"inbox.mailbox.settings","x-rivier-cli":"inbox mailbox settings","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.mailbox.configure","summary":"Change a mailbox's sending switch, daily ceiling or undo window (owner or manager; turning sending on for a linked mailbox is the owner's).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMailboxConfigure","x-rivier-sdk":"inbox.mailbox.configure","x-rivier-cli":"inbox mailbox configure","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3,"maxLength":254},"sendEnabled":{"type":"boolean"},"dailyCap":{"anyOf":[{"type":"integer","minimum":0,"maximum":100000},{"type":"null"}]},"undoSeconds":{"anyOf":[{"type":"integer","minimum":0,"maximum":30},{"type":"null"}]}},"required":["address"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/mentions":{"get":{"operationId":"inbox.mention.list","summary":"Conversations that name the caller in a note.","tags":["inbox"],"parameters":[{"name":"unseen","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMentionList","x-rivier-sdk":"inbox.mention.list","x-rivier-cli":"inbox mention list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/mentions/seen":{"post":{"operationId":"inbox.mention.seen","summary":"Mark mentions seen, all or for one conversation.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMentionSeen","x-rivier-sdk":"inbox.mention.seen","x-rivier-cli":"inbox mention seen","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threadId":{"type":"string","format":"uuid"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/outbox":{"get":{"operationId":"inbox.outbox.list","summary":"Messages waiting to leave, held (test mode, sending off) or failed, with the reason.","tags":["inbox"],"parameters":[{"name":"threadId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["queued","held","failed","sent","canceled"]}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxOutboxList","x-rivier-sdk":"inbox.outbox.list","x-rivier-cli":"inbox outbox list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/outbox/{id}/retry":{"post":{"operationId":"inbox.outbox.retry","summary":"Queue a held message again (after sending is turned on or the project goes live).","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxOutboxRetry","x-rivier-sdk":"inbox.outbox.retry","x-rivier-cli":"inbox outbox retry","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/outbox/{id}/undo":{"post":{"operationId":"inbox.outbox.undo","summary":"Take back a message still inside its undo window; it returns as a draft.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxOutboxUndo","x-rivier-sdk":"inbox.outbox.undo","x-rivier-cli":"inbox outbox undo","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/prefs":{"get":{"operationId":"inbox.prefs.get","summary":"The caller's own desk settings: undo window, density, default signature.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxPrefsGet","x-rivier-sdk":"inbox.prefs.get","x-rivier-cli":"inbox prefs get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.prefs.update","summary":"Change the caller's own desk settings.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxPrefsUpdate","x-rivier-sdk":"inbox.prefs.update","x-rivier-cli":"inbox prefs update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"undoSeconds":{"type":"integer","minimum":0,"maximum":30},"density":{"type":"string","enum":["compact","comfortable","spacious"]},"defaultSignatureId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/reminders":{"get":{"operationId":"inbox.reminder.list","summary":"The caller's reminders.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxReminderList","x-rivier-sdk":"inbox.reminder.list","x-rivier-cli":"inbox reminder list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/reminders/{id}":{"delete":{"operationId":"inbox.reminder.cancel","summary":"Cancel a reminder.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxReminderCancel","x-rivier-sdk":"inbox.reminder.cancel","x-rivier-cli":"inbox reminder cancel","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/retention":{"get":{"operationId":"inbox.retention.get","summary":"How long the desk keeps trash, junk, held mail and (if chosen) finished conversations.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxRetentionGet","x-rivier-sdk":"inbox.retention.get","x-rivier-cli":"inbox retention get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.retention.set","summary":"Change how long the desk keeps them (owner or manager).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxRetentionSet","x-rivier-sdk":"inbox.retention.set","x-rivier-cli":"inbox retention set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"trashDays":{"type":"integer","minimum":1,"maximum":3650},"junkDays":{"type":"integer","minimum":1,"maximum":3650},"heldDays":{"type":"integer","minimum":1,"maximum":3650},"closedDays":{"anyOf":[{"type":"integer","minimum":30,"maximum":3650},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/rules":{"get":{"operationId":"inbox.rule.list","summary":"Rules that run on every message that arrives, in order.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxRuleList","x-rivier-sdk":"inbox.rule.list","x-rivier-cli":"inbox rule list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.rule.create","summary":"Make a rule (owner or manager): when conditions on the sender, subject, text, mailbox, attachment or language hold, label, assign, route to an agent, set a status, archive or mark as junk.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxRuleCreate","x-rivier-sdk":"inbox.rule.create","x-rivier-cli":"inbox rule create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"type":"boolean"},"position":{"type":"integer","minimum":0,"maximum":1000},"scopeInbox":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"scopeMailbox":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"match":{"type":"string","enum":["all","any"]},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","enum":["from","from_domain","to","subject","body","mailbox","has_attachment","is_reply","category","sentiment","lang","label"]},"op":{"type":"string","enum":["contains","not_contains","equals","not_equals","starts_with","ends_with","matches","is_true","is_false"]},"value":{"type":"string","maxLength":200}},"required":["field","op"],"additionalProperties":false},"maxItems":10},"actions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"label"},"label":{"type":"string","minLength":1,"maxLength":80}},"required":["type","label"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"assign"},"to":{"type":"string","minLength":1,"maxLength":120}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"route_agent"},"agentId":{"type":"string","minLength":1,"maxLength":80}},"required":["type","agentId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"status"},"status":{"type":"string","enum":["open","waiting","done"]}},"required":["type","status"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"archive"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"star"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"mark_read"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"junk"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"to":{"type":"string","minLength":1,"maxLength":120}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"draft_from_template"},"templateId":{"type":"string","format":"uuid"}},"required":["type","templateId"],"additionalProperties":false}]},"minItems":1,"maxItems":8},"stop":{"type":"boolean"}},"required":["name","conditions","actions"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/rules/preview":{"post":{"operationId":"inbox.rule.preview","summary":"Which rules would fire on a conversation, and what they would do; a rule not yet saved can be tried. Changes nothing.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxRulePreview","x-rivier-sdk":"inbox.rule.preview","x-rivier-cli":"inbox rule preview","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threadId":{"type":"string","format":"uuid"},"rule":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"type":"boolean"},"position":{"type":"integer","minimum":0,"maximum":1000},"scopeInbox":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"scopeMailbox":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"match":{"type":"string","enum":["all","any"]},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","enum":["from","from_domain","to","subject","body","mailbox","has_attachment","is_reply","category","sentiment","lang","label"]},"op":{"type":"string","enum":["contains","not_contains","equals","not_equals","starts_with","ends_with","matches","is_true","is_false"]},"value":{"type":"string","maxLength":200}},"required":["field","op"],"additionalProperties":false},"maxItems":10},"actions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"label"},"label":{"type":"string","minLength":1,"maxLength":80}},"required":["type","label"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"assign"},"to":{"type":"string","minLength":1,"maxLength":120}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"route_agent"},"agentId":{"type":"string","minLength":1,"maxLength":80}},"required":["type","agentId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"status"},"status":{"type":"string","enum":["open","waiting","done"]}},"required":["type","status"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"archive"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"star"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"mark_read"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"junk"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"to":{"type":"string","minLength":1,"maxLength":120}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"draft_from_template"},"templateId":{"type":"string","format":"uuid"}},"required":["type","templateId"],"additionalProperties":false}]},"minItems":1,"maxItems":8},"stop":{"type":"boolean"}},"required":["name","conditions","actions"],"additionalProperties":false}},"required":["threadId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/rules/run":{"post":{"operationId":"inbox.rule.run","summary":"Run the rules again over chosen conversations (owner or manager).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxRuleRun","x-rivier-sdk":"inbox.rule.run","x-rivier-cli":"inbox rule run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200},"only":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":50}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/rules/{id}":{"patch":{"operationId":"inbox.rule.update","summary":"Change a rule.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxRuleUpdate","x-rivier-sdk":"inbox.rule.update","x-rivier-cli":"inbox rule update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"type":"boolean"},"position":{"type":"integer","minimum":0,"maximum":1000},"scopeInbox":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"scopeMailbox":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"match":{"type":"string","enum":["all","any"]},"conditions":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","enum":["from","from_domain","to","subject","body","mailbox","has_attachment","is_reply","category","sentiment","lang","label"]},"op":{"type":"string","enum":["contains","not_contains","equals","not_equals","starts_with","ends_with","matches","is_true","is_false"]},"value":{"type":"string","maxLength":200}},"required":["field","op"],"additionalProperties":false},"maxItems":10},"actions":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"label"},"label":{"type":"string","minLength":1,"maxLength":80}},"required":["type","label"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"assign"},"to":{"type":"string","minLength":1,"maxLength":120}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"route_agent"},"agentId":{"type":"string","minLength":1,"maxLength":80}},"required":["type","agentId"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"status"},"status":{"type":"string","enum":["open","waiting","done"]}},"required":["type","status"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"archive"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"star"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"mark_read"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"junk"}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"notify"},"to":{"type":"string","minLength":1,"maxLength":120}},"required":["type","to"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"draft_from_template"},"templateId":{"type":"string","format":"uuid"}},"required":["type","templateId"],"additionalProperties":false}]},"minItems":1,"maxItems":8},"stop":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.rule.delete","summary":"Remove a rule.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxRuleDelete","x-rivier-sdk":"inbox.rule.delete","x-rivier-cli":"inbox rule delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/search/explain":{"get":{"operationId":"inbox.desk.explain","summary":"A search written back in words, with the parts that were not understood.","tags":["inbox"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","maxLength":500}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxDeskExplain","x-rivier-sdk":"inbox.desk.explain","x-rivier-cli":"inbox desk explain","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/senders":{"get":{"operationId":"inbox.sender.list","summary":"Senders let in or kept out by address or domain.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxSenderList","x-rivier-sdk":"inbox.sender.list","x-rivier-cli":"inbox sender list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.sender.set","summary":"Allow or block a sender or domain, or clear the rule (owner or manager).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSenderSet","x-rivier-sdk":"inbox.sender.set","x-rivier-cli":"inbox sender set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pattern":{"type":"string","minLength":3,"maxLength":254},"rule":{"anyOf":[{"type":"string","enum":["allow","block"]},{"type":"null"}]}},"required":["pattern","rule"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/signatures":{"get":{"operationId":"inbox.signature.list","summary":"Signatures: the workspace's and the caller's own.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxSignatureList","x-rivier-sdk":"inbox.signature.list","x-rivier-cli":"inbox signature list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.signature.create","summary":"Make a signature, personal or (owner or manager) shared, optionally for one mailbox and as the default.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSignatureCreate","x-rivier-sdk":"inbox.signature.create","x-rivier-cli":"inbox signature create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"body":{"type":"string","maxLength":4000},"bodyHtml":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}]},"mailbox":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}]},"isDefault":{"type":"boolean"},"shared":{"type":"boolean"}},"required":["name","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/signatures/{id}":{"patch":{"operationId":"inbox.signature.update","summary":"Change a signature.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSignatureUpdate","x-rivier-sdk":"inbox.signature.update","x-rivier-cli":"inbox signature update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"body":{"type":"string","maxLength":4000},"bodyHtml":{"anyOf":[{"type":"string","maxLength":20000},{"type":"null"}]},"isDefault":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.signature.delete","summary":"Remove a signature.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSignatureDelete","x-rivier-sdk":"inbox.signature.delete","x-rivier-cli":"inbox signature delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/sla":{"get":{"operationId":"inbox.sla.get","summary":"Response targets and how the desk is doing against them over thirty days.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mail_sla","x-rivier-graphql":"Query.inboxSlaGet","x-rivier-sdk":"inbox.sla.get","x-rivier-cli":"inbox sla get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"put":{"operationId":"inbox.sla.set","summary":"Set first-response and resolution times for an inbox or the project, optionally counting business hours only (owner or manager).","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSlaSet","x-rivier-sdk":"inbox.sla.set","x-rivier-cli":"inbox sla set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inboxId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"firstResponseMinutes":{"anyOf":[{"type":"integer","minimum":1,"maximum":43200},{"type":"null"}]},"resolutionMinutes":{"anyOf":[{"type":"integer","minimum":1,"maximum":129600},{"type":"null"}]},"businessHours":{"anyOf":[{"type":"object","properties":{"tz":{"type":"string","minLength":1,"maxLength":60},"days":{"type":"array","items":{"type":"integer","minimum":0,"maximum":6},"minItems":1,"maxItems":7},"from":{"type":"string","pattern":"^\\d{2}:\\d{2}$"},"to":{"type":"string","pattern":"^\\d{2}:\\d{2}$"}},"required":["tz","days","from","to"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.sla.remove","summary":"Remove a response target.","tags":["inbox"],"parameters":[{"name":"inboxId","in":"query","required":false,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSlaRemove","x-rivier-sdk":"inbox.sla.remove","x-rivier-cli":"inbox sla remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/suppressed":{"get":{"operationId":"inbox.suppressed.list","summary":"Addresses the desk will not send to, and why.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxSuppressedList","x-rivier-sdk":"inbox.suppressed.list","x-rivier-cli":"inbox suppressed list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.suppressed.add","summary":"Put an address on the do-not-send list.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSuppressedAdd","x-rivier-sdk":"inbox.suppressed.add","x-rivier-cli":"inbox suppressed add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","minLength":3,"maxLength":254}},"required":["address"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.suppressed.remove","summary":"Take an address off the do-not-send list.","tags":["inbox"],"parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","minLength":3,"maxLength":254}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxSuppressedRemove","x-rivier-sdk":"inbox.suppressed.remove","x-rivier-cli":"inbox suppressed remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/sync":{"post":{"operationId":"inbox.mailbox.sync","summary":"Read new mail from the project's mailboxes into the inbox. Read only: nothing is marked, moved or deleted at the source.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMailboxSync","x-rivier-sdk":"inbox.mailbox.sync","x-rivier-cli":"inbox mailbox sync","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mailbox":{"type":"string","minLength":3,"maxLength":254},"limit":{"type":"integer","minimum":1,"maximum":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/templates":{"get":{"operationId":"inbox.template.list","summary":"Canned replies, most used first.","tags":["inbox"],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":100}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mail_templates","x-rivier-graphql":"Query.inboxTemplateList","x-rivier-sdk":"inbox.template.list","x-rivier-cli":"inbox template list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.template.create","summary":"Make a canned reply with {{customer.first_name}}-style variables.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxTemplateCreate","x-rivier-sdk":"inbox.template.create","x-rivier-cli":"inbox template create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"subject":{"type":"string","maxLength":300},"body":{"type":"string","minLength":1,"maxLength":20000},"shared":{"type":"boolean"}},"required":["name","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/templates/{id}":{"patch":{"operationId":"inbox.template.update","summary":"Change a canned reply.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxTemplateUpdate","x-rivier-sdk":"inbox.template.update","x-rivier-cli":"inbox template update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"subject":{"type":"string","maxLength":300},"body":{"type":"string","minLength":1,"maxLength":20000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.template.delete","summary":"Remove a canned reply.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxTemplateDelete","x-rivier-sdk":"inbox.template.delete","x-rivier-cli":"inbox template delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/templates/{id}/render":{"post":{"operationId":"inbox.template.render","summary":"Fill a canned reply for a conversation; variables with no value stay visible and are listed as missing.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mail_template_fill","x-rivier-graphql":"Query.inboxTemplateRender","x-rivier-sdk":"inbox.template.render","x-rivier-cli":"inbox template render","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"threadId":{"type":"string","format":"uuid"},"mailbox":{"type":"string","maxLength":254}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads":{"get":{"operationId":"inbox.desk.threads","summary":"Conversations in a folder, with search in plain words (from:, label:, has:attachment, is:unread, status:, assignee:, before:, after:), newest first, paged by cursor.","tags":["inbox"],"parameters":[{"name":"folder","in":"query","required":false,"schema":{"type":"string","enum":["inbox","sent","archive","junk","trash","held","snoozed","starred","all"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500}},{"name":"mailbox","in":"query","required":false,"schema":{"type":"string","maxLength":254}},{"name":"inbox","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":400}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mail_find","x-rivier-graphql":"Query.inboxDeskThreads","x-rivier-sdk":"inbox.desk.threads","x-rivier-cli":"inbox desk threads","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/act":{"post":{"operationId":"inbox.desk.act","summary":"Do one thing to many conversations at once (archive, done, reopen, status, trash, restore, junk, snooze, assign, read, star, label), listed or found by a search (at most 1000). Answers a batch id to undo it.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mail_triage","x-rivier-graphql":"Mutation.inboxDeskAct","x-rivier-sdk":"inbox.desk.act","x-rivier-cli":"inbox desk act","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200},"query":{"type":"object","properties":{"folder":{"type":"string","enum":["inbox","sent","archive","junk","trash","held","snoozed","starred","all"]},"q":{"type":"string","maxLength":500}},"additionalProperties":false},"action":{"type":"string","enum":["archive","unarchive","done","reopen","status","trash","restore","junk","notjunk","snooze","unsnooze","assign","unassign","read","unread","star","unstar","label","move_to_inbox"]},"until":{"type":"string","maxLength":40},"status":{"type":"string","enum":["open","waiting","done"]},"assignee":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"add":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":20},"remove":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":20}},"required":["action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/delete-forever":{"post":{"operationId":"inbox.thread.deleteForever","summary":"Empty the trash: delete conversations already in it, with their messages and files, for good.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxThreadDeleteForever","x-rivier-sdk":"inbox.thread.deleteForever","x-rivier-cli":"inbox thread delete forever","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/labels":{"post":{"operationId":"inbox.label.apply","summary":"Put labels on and take labels off a set of conversations.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxLabelApply","x-rivier-sdk":"inbox.label.apply","x-rivier-cli":"inbox label apply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200},"add":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":20},"remove":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":20}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/merge":{"post":{"operationId":"inbox.desk.merge","summary":"Put conversations into one; the others are hidden and can be pulled back out.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskMerge","x-rivier-sdk":"inbox.desk.merge","x-rivier-cli":"inbox desk merge","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target":{"type":"string","format":"uuid"},"sources":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":20}},"required":["target","sources"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/read":{"post":{"operationId":"inbox.desk.markRead","summary":"Mark conversations read or unread for the caller.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskMarkRead","x-rivier-sdk":"inbox.desk.markRead","x-rivier-cli":"inbox desk mark read","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200},"read":{"type":"boolean","default":true}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/read-all":{"post":{"operationId":"inbox.desk.markFolderRead","summary":"Mark everything in a folder read for the caller.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskMarkFolderRead","x-rivier-sdk":"inbox.desk.markFolderRead","x-rivier-cli":"inbox desk mark folder read","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"folder":{"type":"string","enum":["inbox","sent","archive","junk","trash","held","snoozed","starred","all"],"default":"inbox"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/star":{"post":{"operationId":"inbox.desk.star","summary":"Star or unstar conversations for the caller.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskStar","x-rivier-sdk":"inbox.desk.star","x-rivier-cli":"inbox desk star","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"maxItems":200},"on":{"type":"boolean","default":true}},"required":["ids"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}":{"get":{"operationId":"inbox.desk.thread","summary":"One conversation with every message, note and draft; read=1 marks it read for the caller.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"read","in":"query","required":false,"schema":{"type":"string","enum":["1","true","0","false"]}}],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mail_read","x-rivier-graphql":"Query.inboxDeskThread","x-rivier-sdk":"inbox.desk.thread","x-rivier-cli":"inbox desk thread","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"inbox.desk.update","summary":"Change one conversation: status, assignee, snooze, archive.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskUpdate","x-rivier-sdk":"inbox.desk.update","x-rivier-cli":"inbox desk update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["open","waiting","done"]},"assignee":{"anyOf":[{"type":"string","minLength":1,"maxLength":120},{"type":"null"}]},"snoozeUntil":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}]},"archived":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/ai":{"get":{"operationId":"inbox.ai.get","summary":"What AI has proposed for a conversation (summary, category with sentiment and language), each marked as AI with its model, and whether new messages have made it stale; and the inbox's autonomy mode.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxAiGet","x-rivier-sdk":"inbox.ai.get","x-rivier-cli":"inbox ai get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/ai/classify":{"post":{"operationId":"inbox.ai.classify","summary":"Propose a category, sentiment and language. Applied when a person accepts it, or at once in an inbox on auto.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAiClassify","x-rivier-sdk":"inbox.ai.classify","x-rivier-cli":"inbox ai classify","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/ai/suggest-reply":{"post":{"operationId":"inbox.ai.suggestReply","summary":"Draft a reply from what the project's memory knows, citing the passages it used. A draft marked as AI for a person to edit and send; the model never sends.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mail_suggest_reply","x-rivier-graphql":"Mutation.inboxAiSuggestReply","x-rivier-sdk":"inbox.ai.suggestReply","x-rivier-cli":"inbox ai suggest reply","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"instruction":{"type":"string","maxLength":500}},"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/ai/summarize":{"post":{"operationId":"inbox.ai.summarize","summary":"Summarise a conversation. A proposal, marked as AI.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mail_summarize","x-rivier-graphql":"Mutation.inboxAiSummarize","x-rivier-sdk":"inbox.ai.summarize","x-rivier-cli":"inbox ai summarize","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/messages/{turnId}/translate":{"post":{"operationId":"inbox.ai.translateMessage","summary":"Translate a received message; the original stays and both are shown, marked as AI.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"turnId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxAiTranslateMessage","x-rivier-sdk":"inbox.ai.translateMessage","x-rivier-cli":"inbox ai translate message","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","minLength":2,"maxLength":10}},"required":["to"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/notes":{"post":{"operationId":"inbox.note.add","summary":"Write an internal note on a conversation; @mentions notify the people named. Never sent to the customer.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mail_note","x-rivier-graphql":"Mutation.inboxNoteAdd","x-rivier-sdk":"inbox.note.add","x-rivier-cli":"inbox note add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000}},"required":["body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/notes/{turnId}":{"patch":{"operationId":"inbox.note.update","summary":"Edit a note (its author or a manager).","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"turnId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxNoteUpdate","x-rivier-sdk":"inbox.note.update","x-rivier-cli":"inbox note update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000}},"required":["body"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.note.delete","summary":"Delete a note (its author or a manager).","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"turnId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxNoteDelete","x-rivier-sdk":"inbox.note.delete","x-rivier-cli":"inbox note delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/presence":{"post":{"operationId":"inbox.presence.heartbeat","summary":"Say the caller is viewing or replying to a conversation (repeat every 15 seconds); answers who else is.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxPresenceHeartbeat","x-rivier-sdk":"inbox.presence.heartbeat","x-rivier-cli":"inbox presence heartbeat","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["viewing","replying","idle"]}},"required":["kind"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"get":{"operationId":"inbox.presence.list","summary":"Who else is viewing or replying to a conversation right now.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxPresenceList","x-rivier-sdk":"inbox.presence.list","x-rivier-cli":"inbox presence list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/remind":{"post":{"operationId":"inbox.reminder.set","summary":"Bring a conversation back at a time, or only if the customer has not answered by then.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxReminderSet","x-rivier-sdk":"inbox.reminder.set","x-rivier-cli":"inbox reminder set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"at":{"type":"string","minLength":10,"maxLength":40},"ifNoReply":{"type":"boolean"},"note":{"type":"string","maxLength":500}},"required":["at"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/split":{"post":{"operationId":"inbox.desk.split","summary":"Split a conversation at a message: that message and the ones after it become a new conversation.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskSplit","x-rivier-sdk":"inbox.desk.split","x-rivier-cli":"inbox desk split","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromTurnId":{"type":"string","format":"uuid"},"subject":{"type":"string","maxLength":300}},"required":["fromTurnId"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/threads/{id}/unmerge":{"post":{"operationId":"inbox.desk.unmerge","summary":"Pull a merged conversation back out.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskUnmerge","x-rivier-sdk":"inbox.desk.unmerge","x-rivier-cli":"inbox desk unmerge","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/undo":{"post":{"operationId":"inbox.desk.undo","summary":"Take back a batch of changes the caller made within the last hour.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDeskUndo","x-rivier-sdk":"inbox.desk.undo","x-rivier-cli":"inbox desk undo","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"batchId":{"type":"string","format":"uuid"}},"required":["batchId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/views":{"get":{"operationId":"inbox.view.list","summary":"Saved views: searches kept by name, shared or personal.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxViewList","x-rivier-sdk":"inbox.view.list","x-rivier-cli":"inbox view list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.view.create","summary":"Save a search as a view. Sharing it with the workspace is for an owner or manager.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxViewCreate","x-rivier-sdk":"inbox.view.create","x-rivier-cli":"inbox view create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"query":{"type":"string","maxLength":500},"shared":{"type":"boolean"},"position":{"type":"integer","minimum":0,"maximum":1000}},"required":["name","query"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/views/{id}":{"patch":{"operationId":"inbox.view.update","summary":"Rename a view or change its search.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxViewUpdate","x-rivier-sdk":"inbox.view.update","x-rivier-cli":"inbox view update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"query":{"type":"string","maxLength":500},"position":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.view.delete","summary":"Remove a view.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxViewDelete","x-rivier-sdk":"inbox.view.delete","x-rivier-cli":"inbox view delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inbox/views/{id}/threads":{"get":{"operationId":"inbox.view.threads","summary":"Run a saved view.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"folder","in":"query","required":false,"schema":{"type":"string","enum":["inbox","sent","archive","junk","trash","held","snoozed","starred","all"]}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":500}},{"name":"mailbox","in":"query","required":false,"schema":{"type":"string","maxLength":254}},{"name":"inbox","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":400}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxViewThreads","x-rivier-sdk":"inbox.view.threads","x-rivier-cli":"inbox view threads","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inboxes":{"get":{"operationId":"inbox.inbox.list","summary":"The messaging inboxes.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxInboxList","x-rivier-sdk":"inbox.inbox.list","x-rivier-cli":"inbox inbox list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.inbox.create","summary":"Make an inbox for the website widget.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxInboxCreate","x-rivier-sdk":"inbox.inbox.create","x-rivier-cli":"inbox inbox create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"purpose":{"type":"string","maxLength":2000},"agentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"shared":{"type":"boolean"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inboxes/{id}":{"patch":{"operationId":"inbox.inbox.update","summary":"Change an inbox or its autonomy mode.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxInboxUpdate","x-rivier-sdk":"inbox.inbox.update","x-rivier-cli":"inbox inbox update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"purpose":{"type":"string","maxLength":2000},"agentId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"shared":{"type":"boolean"},"mode":{"type":"string","enum":["off","watch","ask","auto"]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.inbox.delete","summary":"Delete an inbox.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxInboxDelete","x-rivier-sdk":"inbox.inbox.delete","x-rivier-cli":"inbox inbox delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/inboxes/{id}/threads":{"get":{"operationId":"inbox.thread.list","summary":"The threads of an inbox.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","enum":["open","waiting","closed"]}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxThreadList","x-rivier-sdk":"inbox.thread.list","x-rivier-cli":"inbox thread list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"threads":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"inboxId":{"type":"string"},"person":{"type":"string"},"personName":{"type":["string","null"]},"subject":{"type":"string"},"state":{"type":"string","enum":["open","waiting","closed"]},"lastAt":{"type":"string"}},"required":["id","inboxId","person","personName","subject","state","lastAt"],"additionalProperties":true}}},"required":["threads"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/library":{"get":{"operationId":"content.library.list","summary":"The reference documents the business keeps.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentLibraryList","x-rivier-sdk":"content.library.list","x-rivier-cli":"content library list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"contentType":{"type":"string"},"bytes":{"type":"number"},"origin":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string"}},"required":["id","name","contentType","bytes","origin","tags","createdAt"],"additionalProperties":true}},"summary":{},"keeping":{"type":"boolean"}},"required":["files","keeping"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"content.library.upload","summary":"Add a document.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentLibraryUpload","x-rivier-sdk":"content.library.upload","x-rivier-cli":"content library upload","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"content":{"type":"string","minLength":1},"contentType":{"type":"string","maxLength":200},"tags":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":20}},"required":["name","content"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/library/drive/picker":{"get":{"operationId":"content.library.drivePicker","summary":"Files in the connected Drive.","tags":["content"],"parameters":[],"x-rivier-scope":"content:read","x-rivier-graphql":"Query.contentLibraryDrivePicker","x-rivier-sdk":"content.library.drivePicker","x-rivier-cli":"content library drive picker","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/library/drive/pull":{"post":{"operationId":"content.library.drivePull","summary":"Copy a Drive file into the library.","tags":["content"],"parameters":[],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentLibraryDrivePull","x-rivier-sdk":"content.library.drivePull","x-rivier-cli":"content library drive pull","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string","minLength":1,"maxLength":200},"name":{"type":"string","maxLength":300},"tags":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":20}},"required":["fileId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/library/{id}":{"patch":{"operationId":"content.library.update","summary":"Rename or tag a document.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentLibraryUpdate","x-rivier-sdk":"content.library.update","x-rivier-cli":"content library update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"tags":{"type":"array","items":{"type":"string","maxLength":60},"maxItems":20}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"content.library.delete","summary":"Delete a document.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:write","x-rivier-graphql":"Mutation.contentLibraryDelete","x-rivier-sdk":"content.library.delete","x-rivier-cli":"content library delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/library/{id}/download":{"get":{"operationId":"content.library.download","summary":"Download a document.","tags":["content"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"content:read","x-rivier-sdk":"content.library.download","x-rivier-cli":"content library download","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes":{"get":{"operationId":"inbox.mailbox.list","summary":"The mailboxes, the plan allowance, how many are used and remain, and the split by kind.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-mcp":"rivier_mailbox_list","x-rivier-graphql":"Query.inboxMailboxList","x-rivier-sdk":"inbox.mailbox.list","x-rivier-cli":"inbox mailbox list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.mailbox.create","summary":"Make a mailbox inside the plan: shared, a team member’s, an agent’s or send-only.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mailbox_allocate","x-rivier-graphql":"Mutation.inboxMailboxCreate","x-rivier-sdk":"inbox.mailbox.create","x-rivier-cli":"inbox mailbox create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["shared","human","agent","machine"]},"localpart":{"type":"string","minLength":1,"maxLength":64},"handle":{"type":"string","minLength":1,"maxLength":64},"template":{"type":"string","minLength":1,"maxLength":64},"memberId":{"type":"string","minLength":1,"maxLength":80},"memberName":{"type":"string","minLength":1,"maxLength":120},"agentId":{"type":"string","minLength":1,"maxLength":80},"members":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"maxItems":50},"routeTo":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"domain":{"type":"string","minLength":3,"maxLength":253},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["kind"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes/available":{"get":{"operationId":"inbox.mailbox.available","summary":"Whether an address can be made now.","tags":["inbox"],"parameters":[{"name":"localpart","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64}},{"name":"domain","in":"query","required":false,"schema":{"type":"string","minLength":3,"maxLength":253}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMailboxAvailable","x-rivier-sdk":"inbox.mailbox.available","x-rivier-cli":"inbox mailbox available","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes/domains":{"get":{"operationId":"inbox.domain.list","summary":"Mail domains and their verification.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxDomainList","x-rivier-sdk":"inbox.domain.list","x-rivier-cli":"inbox domain list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"inbox.domain.add","summary":"Add a mail domain.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDomainAdd","x-rivier-sdk":"inbox.domain.add","x-rivier-cli":"inbox domain add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":3,"maxLength":253}},"required":["domain"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes/domains/{domain}/verify":{"post":{"operationId":"inbox.domain.verify","summary":"Check a domain's DNS records.","tags":["inbox"],"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxDomainVerify","x-rivier-sdk":"inbox.domain.verify","x-rivier-cli":"inbox domain verify","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes/offers":{"get":{"operationId":"inbox.mailbox.offers","summary":"The standard shared mailboxes the edition offers and which are already made.","tags":["inbox"],"parameters":[],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMailboxOffers","x-rivier-sdk":"inbox.mailbox.offers","x-rivier-cli":"inbox mailbox offers","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes/{id}":{"patch":{"operationId":"inbox.mailbox.update","summary":"Rename a mailbox, or change who reads a shared one and where it routes.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxMailboxUpdate","x-rivier-sdk":"inbox.mailbox.update","x-rivier-cli":"inbox mailbox update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"members":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"maxItems":50},"routeTo":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"inbox.mailbox.delete","summary":"Release a mailbox and free its slot; one with mail is exported first and kept for the retention period.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_mailbox_release","x-rivier-graphql":"Mutation.inboxMailboxDelete","x-rivier-sdk":"inbox.mailbox.delete","x-rivier-cli":"inbox mailbox delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/mailboxes/{id}/export":{"get":{"operationId":"inbox.mailbox.export","summary":"The mail of a mailbox as a file, to keep before it is released.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxMailboxExport","x-rivier-sdk":"inbox.mailbox.export","x-rivier-cli":"inbox mailbox export","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory":{"get":{"operationId":"memory.collection.list","summary":"The memory collections.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_collections","x-rivier-graphql":"Query.memoryCollectionList","x-rivier-sdk":"memory.collection.list","x-rivier-cli":"memory collection list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"memory.collection.create","summary":"Start a memory collection.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryCollectionCreate","x-rivier-sdk":"memory.collection.create","x-rivier-cli":"memory collection create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"purpose":{"type":"string","maxLength":2000}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/connect":{"post":{"operationId":"memory.collection.connect","summary":"Let an agent use a collection.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryCollectionConnect","x-rivier-sdk":"memory.collection.connect","x-rivier-cli":"memory collection connect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"collectionId":{"type":"string","format":"uuid"}},"required":["agentId","collectionId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/disconnect":{"post":{"operationId":"memory.collection.disconnect","summary":"Stop an agent using a collection.","tags":["memory"],"parameters":[],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryCollectionDisconnect","x-rivier-sdk":"memory.collection.disconnect","x-rivier-cli":"memory collection disconnect","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"string","format":"uuid"},"collectionId":{"type":"string","format":"uuid"}},"required":["agentId","collectionId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/search":{"get":{"operationId":"memory.collection.search","summary":"Search the collections by meaning.","tags":["memory"],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1}}],"x-rivier-scope":"memory:read","x-rivier-mcp":"rivier_recall","x-rivier-graphql":"Query.memoryCollectionSearch","x-rivier-sdk":"memory.collection.search","x-rivier-cli":"memory collection search","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/sources/{id}":{"delete":{"operationId":"memory.source.delete","summary":"Remove a source from a collection.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memorySourceDelete","x-rivier-sdk":"memory.source.delete","x-rivier-cli":"memory source delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/{id}":{"delete":{"operationId":"memory.collection.delete","summary":"Delete a collection.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryCollectionDelete","x-rivier-sdk":"memory.collection.delete","x-rivier-cli":"memory collection delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/{id}/fact":{"post":{"operationId":"memory.collection.addFact","summary":"Write a fact into a collection.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-mcp":"rivier_remember","x-rivier-graphql":"Mutation.memoryCollectionAddFact","x-rivier-sdk":"memory.collection.addFact","x-rivier-cli":"memory collection add fact","x-rivier-events":["memory.fact.created"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":10000}},"required":["text"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/{id}/sources":{"get":{"operationId":"memory.collection.sources","summary":"What a collection was built from.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:read","x-rivier-graphql":"Query.memoryCollectionSources","x-rivier-sdk":"memory.collection.sources","x-rivier-cli":"memory collection sources","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/memory/{id}/upload":{"post":{"operationId":"memory.collection.upload","summary":"Add a document to a collection.","tags":["memory"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"memory:write","x-rivier-graphql":"Mutation.memoryCollectionUpload","x-rivier-sdk":"memory.collection.upload","x-rivier-cli":"memory collection upload","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":300},"content":{"type":"string","minLength":1}},"required":["filename","content"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/numbers":{"get":{"operationId":"voice.workspaceNumber.list","summary":"The phone numbers of the workspace.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceWorkspaceNumberList","x-rivier-sdk":"voice.workspaceNumber.list","x-rivier-cli":"voice workspace number list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"voice.workspaceNumber.take","summary":"Ask to take a number. Nothing is bought until a signed-in owner or manager confirms the price.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceWorkspaceNumberTake","x-rivier-sdk":"voice.workspaceNumber.take","x-rivier-cli":"voice workspace number take","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"202":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/numbers/available":{"get":{"operationId":"voice.workspaceNumber.available","summary":"Numbers available to take.","tags":["voice"],"parameters":[],"x-rivier-scope":"voice:read","x-rivier-graphql":"Query.voiceWorkspaceNumberAvailable","x-rivier-sdk":"voice.workspaceNumber.available","x-rivier-cli":"voice workspace number available","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/numbers/{id}":{"delete":{"operationId":"voice.workspaceNumber.release","summary":"Give a number back.","tags":["voice"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"voice:write","x-rivier-graphql":"Mutation.voiceWorkspaceNumberRelease","x-rivier-sdk":"voice.workspaceNumber.release","x-rivier-cli":"voice workspace number release","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/people":{"get":{"operationId":"workspace.people.list","summary":"Who has a role in the workspace.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspacePeopleList","x-rivier-sdk":"workspace.people.list","x-rivier-cli":"workspace people list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"workspace.people.invite","summary":"Invite a person with a role.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspacePeopleInvite","x-rivier-sdk":"workspace.people.invite","x-rivier-cli":"workspace people invite","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":320},"role":{"type":"string","enum":["owner","manager","approver","editor","agent","viewer","accountant"]},"expires_at":{"type":"string","format":"date-time"}},"required":["email","role"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/people/{id}":{"delete":{"operationId":"workspace.people.remove","summary":"Remove a person.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspacePeopleRemove","x-rivier-sdk":"workspace.people.remove","x-rivier-cli":"workspace people remove","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"workspace.people.setRole","summary":"Change a person's role.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspacePeopleSetRole","x-rivier-sdk":"workspace.people.setRole","x-rivier-cli":"workspace people set role","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["owner","manager","approver","editor","agent","viewer","accountant"]}},"required":["role"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/people/{pid}/role-definition":{"put":{"operationId":"workspace.roleAssignment.set","summary":"Give a person on this workspace a custom role, or none.","tags":["workspace"],"parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"workspace:admin","x-rivier-graphql":"Mutation.workspaceRoleAssignmentSet","x-rivier-sdk":"workspace.roleAssignment.set","x-rivier-cli":"workspace role assignment set","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role_definition_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]}},"required":["role_definition_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/plan":{"get":{"operationId":"workspace.plan.get","summary":"The plan and what it allows.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspacePlanGet","x-rivier-sdk":"workspace.plan.get","x-rivier-cli":"workspace plan get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/portfolio":{"get":{"operationId":"workspace.portfolio.get","summary":"Every workspace of the organisation at a glance.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspacePortfolioGet","x-rivier-sdk":"workspace.portfolio.get","x-rivier-cli":"workspace portfolio get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/publish/channels":{"get":{"operationId":"social.channel.list","summary":"Where the business can publish.","tags":["social"],"parameters":[],"x-rivier-scope":"social:read","x-rivier-mcp":"rivier_channels","x-rivier-graphql":"Query.socialChannelList","x-rivier-sdk":"social.channel.list","x-rivier-cli":"social channel list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/publish/connect/{channel}":{"post":{"operationId":"social.channel.connect","summary":"Connect a publishing channel.","tags":["social"],"parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string"}}],"x-rivier-scope":"social:write","x-rivier-graphql":"Mutation.socialChannelConnect","x-rivier-sdk":"social.channel.connect","x-rivier-cli":"social channel connect","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/publish/connections/{id}":{"delete":{"operationId":"social.channel.disconnect","summary":"Disconnect a channel.","tags":["social"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"social:write","x-rivier-graphql":"Mutation.socialChannelDisconnect","x-rivier-sdk":"social.channel.disconnect","x-rivier-cli":"social channel disconnect","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/publish/now":{"post":{"operationId":"social.post.publish","summary":"Publish a post now.","tags":["social"],"parameters":[],"x-rivier-scope":"social:write","x-rivier-mcp":"rivier_publish","x-rivier-graphql":"Mutation.socialPostPublish","x-rivier-sdk":"social.post.publish","x-rivier-cli":"social post publish","x-rivier-events":["social.post.published"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","minLength":1,"maxLength":32},"connectionId":{"type":"string","format":"uuid"},"body":{"type":"string","minLength":1,"maxLength":20000},"mediaUrl":{"anyOf":[{"type":"string","format":"uri","maxLength":2048},{"type":"null"}]}},"required":["channel","connectionId","body"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/publish/paste":{"post":{"operationId":"social.post.paste","summary":"Connect a channel by pasting its credentials.","tags":["social"],"parameters":[],"x-rivier-scope":"social:write","x-rivier-graphql":"Mutation.socialPostPaste","x-rivier-sdk":"social.post.paste","x-rivier-cli":"social post paste","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"type":"string","minLength":1,"maxLength":32},"label":{"type":"string","maxLength":120},"fields":{"type":"object","additionalProperties":{"type":"string","maxLength":2000}}},"required":["channel","fields"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/queue":{"get":{"operationId":"workspace.overview.queue","summary":"Everything that arrived and still needs a person.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-mcp":"rivier_queue","x-rivier-graphql":"Query.workspaceOverviewQueue","x-rivier-sdk":"workspace.overview.queue","x-rivier-cli":"workspace overview queue","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/replay":{"get":{"operationId":"agents.replay.list","summary":"Past conversations replayed against today's setup.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsReplayList","x-rivier-sdk":"agents.replay.list","x-rivier-cli":"agents replay list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"agents.replay.create","summary":"Replay past conversations now.","tags":["agents"],"parameters":[],"x-rivier-scope":"agents:write","x-rivier-graphql":"Mutation.agentsReplayCreate","x-rivier-sdk":"agents.replay.create","x-rivier-cli":"agents replay create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":100},"humanOnly":{"type":"boolean"}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/replay/{id}":{"get":{"operationId":"agents.replay.get","summary":"One replay run.","tags":["agents"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"agents:read","x-rivier-graphql":"Query.agentsReplayGet","x-rivier-sdk":"agents.replay.get","x-rivier-cli":"agents replay get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/run":{"post":{"operationId":"workspace.service.run","summary":"Run one action of a connected service now.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceServiceRun","x-rivier-sdk":"workspace.service.run","x-rivier-cli":"workspace service run","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string","minLength":1,"maxLength":64},"action":{"type":"string","minLength":1,"maxLength":64},"payload":{"type":"object","additionalProperties":{}},"agentId":{"type":"string","format":"uuid"}},"required":["service","action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/schedules":{"get":{"operationId":"campaigns.schedule.list","summary":"Recurring actions.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:read","x-rivier-graphql":"Query.campaignsScheduleList","x-rivier-sdk":"campaigns.schedule.list","x-rivier-cli":"campaigns schedule list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"campaigns.schedule.create","summary":"Run an action on a cadence.","tags":["campaigns"],"parameters":[],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsScheduleCreate","x-rivier-sdk":"campaigns.schedule.create","x-rivier-cli":"campaigns schedule create","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string","minLength":1,"maxLength":64},"action":{"type":"string","minLength":1,"maxLength":64},"name":{"type":"string","minLength":1,"maxLength":120},"cadence":{"type":"string","enum":["hourly","daily","weekly"]},"payload":{"type":"object","additionalProperties":{}}},"required":["service","action","name","cadence"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/schedules/{id}":{"patch":{"operationId":"campaigns.schedule.update","summary":"Pause, resume or change a schedule.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsScheduleUpdate","x-rivier-sdk":"campaigns.schedule.update","x-rivier-cli":"campaigns schedule update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"cadence":{"type":"string","enum":["hourly","daily","weekly"]},"name":{"type":"string","minLength":1,"maxLength":120}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"operationId":"campaigns.schedule.delete","summary":"Delete a schedule.","tags":["campaigns"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"campaigns:write","x-rivier-graphql":"Mutation.campaignsScheduleDelete","x-rivier-sdk":"campaigns.schedule.delete","x-rivier-cli":"campaigns schedule delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/senders":{"post":{"operationId":"domains.sender.start","summary":"Send a confirmation code to a sender address.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.sender.start","x-rivier-cli":"domains sender start","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/senders/confirm":{"post":{"operationId":"domains.sender.confirm","summary":"Confirm a sender address with the code it received.","tags":["domains"],"parameters":[],"x-rivier-scope":"domains:write","x-rivier-sdk":"domains.sender.confirm","x-rivier-cli":"domains sender confirm","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254},"code":{"type":"string","minLength":4,"maxLength":10}},"required":["email","code"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service":{"get":{"operationId":"contacts.service.get","summary":"Customer service overview: conversations and state.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsServiceGet","x-rivier-sdk":"contacts.service.get","x-rivier-cli":"contacts service get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/conversations/{id}":{"get":{"operationId":"contacts.conversation.get","summary":"One customer conversation.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsConversationGet","x-rivier-sdk":"contacts.conversation.get","x-rivier-cli":"contacts conversation get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"type":"object","properties":{"id":{"type":"string"},"mailbox":{"type":"string"},"fromAddress":{"type":"string"},"fromName":{"type":["string","null"]},"subject":{"type":"string"},"snippet":{"type":"string"},"receivedAt":{"type":["string","null"]},"state":{"type":"string"},"escalation":{"type":["string","null"]},"answeredAt":{"type":["string","null"]},"answeredBy":{"type":["string","null"]},"topic":{"type":["string","null"]},"confidence":{"type":["number","null"]},"agentId":{"type":["string","null"]},"updatedAt":{"type":"string"}},"required":["id","mailbox","fromAddress","fromName","subject","snippet","receivedAt","state","escalation","answeredAt","answeredBy","topic","confidence","agentId","updatedAt"],"additionalProperties":true},"letter":{"anyOf":[{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false},{"type":"null"}]},"prepared":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"text":{"type":"string"}},"required":["id","text"],"additionalProperties":false},{"type":"null"}]}},"required":["conversation","letter","prepared"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/conversations/{id}/answer":{"post":{"operationId":"contacts.conversation.answer","summary":"Answer a customer.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsConversationAnswer","x-rivier-sdk":"contacts.conversation.answer","x-rivier-cli":"contacts conversation answer","x-rivier-events":["inbox.message.sent"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":20000},"subject":{"type":"string","maxLength":500}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/conversations/{id}/close":{"post":{"operationId":"contacts.conversation.close","summary":"Close a conversation.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsConversationClose","x-rivier-sdk":"contacts.conversation.close","x-rivier-cli":"contacts conversation close","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/conversations/{id}/draft":{"post":{"operationId":"contacts.conversation.draft","summary":"Draft an answer from the knowledge.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsConversationDraft","x-rivier-sdk":"contacts.conversation.draft","x-rivier-cli":"contacts conversation draft","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/sources":{"get":{"operationId":"contacts.source.list","summary":"What the service answers from.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsSourceList","x-rivier-sdk":"contacts.source.list","x-rivier-cli":"contacts source list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"operationId":"contacts.source.add","summary":"Add a page or note to the knowledge.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsSourceAdd","x-rivier-sdk":"contacts.source.add","x-rivier-cli":"contacts source add","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["page","note"]},"label":{"type":"string","minLength":1,"maxLength":300},"url":{"type":"string","format":"uri","maxLength":2000},"body":{"type":"string","maxLength":20000}},"required":["kind","label"],"additionalProperties":false}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/sources/{id}":{"delete":{"operationId":"contacts.source.delete","summary":"Remove a source.","tags":["contacts"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsSourceDelete","x-rivier-sdk":"contacts.source.delete","x-rivier-cli":"contacts source delete","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/sync":{"post":{"operationId":"contacts.service.sync","summary":"Pull the latest mail and tickets.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsServiceSync","x-rivier-sdk":"contacts.service.sync","x-rivier-cli":"contacts service sync","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/service/voice":{"get":{"operationId":"contacts.voice.get","summary":"How the service sounds.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:read","x-rivier-graphql":"Query.contactsVoiceGet","x-rivier-sdk":"contacts.voice.get","x-rivier-cli":"contacts voice get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"operationId":"contacts.voice.update","summary":"Change the service's tone and signature.","tags":["contacts"],"parameters":[],"x-rivier-scope":"contacts:write","x-rivier-graphql":"Mutation.contactsVoiceUpdate","x-rivier-sdk":"contacts.voice.update","x-rivier-cli":"contacts voice update","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tone":{"type":"string","enum":["warm","plain","formal"]},"guidance":{"type":"string","maxLength":2000},"signature":{"type":"string","maxLength":500},"businessName":{"type":"string","maxLength":200}},"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/setup/guide":{"get":{"operationId":"workspace.setup.guide","summary":"The setup checklist and what is done.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceSetupGuide","x-rivier-sdk":"workspace.setup.guide","x-rivier-cli":"workspace setup guide","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/summary":{"get":{"operationId":"workspace.overview.summary","summary":"Counts for the dashboard.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOverviewSummary","x-rivier-sdk":"workspace.overview.summary","x-rivier-cli":"workspace overview summary","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/threads/{id}":{"get":{"operationId":"inbox.thread.get","summary":"One thread with its messages.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:read","x-rivier-graphql":"Query.inboxThreadGet","x-rivier-sdk":"inbox.thread.get","x-rivier-cli":"inbox thread get","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"thread":{"type":"object","properties":{"id":{"type":"string"},"inboxId":{"type":"string"},"person":{"type":"string"},"personName":{"type":["string","null"]},"subject":{"type":"string"},"state":{"type":"string","enum":["open","waiting","closed"]},"lastAt":{"type":"string"}},"required":["id","inboxId","person","personName","subject","state","lastAt"],"additionalProperties":true},"turns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string"},"body":{"type":"string"},"sentAt":{"type":["string","null"]},"createdAt":{"type":"string"}},"required":["id","role","body","sentAt","createdAt"],"additionalProperties":true}}},"required":["thread","turns"],"additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/threads/{id}/close":{"post":{"operationId":"inbox.thread.close","summary":"Close a thread.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-graphql":"Mutation.inboxThreadClose","x-rivier-sdk":"inbox.thread.close","x-rivier-cli":"inbox thread close","x-rivier-events":["inbox.thread.closed"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/threads/{id}/say":{"post":{"operationId":"inbox.thread.say","summary":"Answer a thread, or keep the answer as a draft.","tags":["inbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"inbox:write","x-rivier-mcp":"rivier_reply","x-rivier-graphql":"Mutation.inboxThreadSay","x-rivier-sdk":"inbox.thread.say","x-rivier-cli":"inbox thread say","x-rivier-events":["inbox.message.sent"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000},"send":{"type":"boolean"}},"required":["body"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/watch":{"get":{"operationId":"workspace.watch.list","summary":"Answers drafted in watch mode, awaiting a verdict.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceWatchList","x-rivier-sdk":"workspace.watch.list","x-rivier-cli":"workspace watch list","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/watch/{id}/verdict":{"post":{"operationId":"workspace.watch.verdict","summary":"Say whether a drafted answer was good.","tags":["workspace"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"x-rivier-scope":"workspace:write","x-rivier-graphql":"Mutation.workspaceWatchVerdict","x-rivier-sdk":"workspace.watch.verdict","x-rivier-cli":"workspace watch verdict","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":"string","enum":["good","not_good"]},"note":{"type":"string","maxLength":1000}},"required":["verdict"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/workspace/you":{"get":{"operationId":"workspace.overview.you","summary":"The signed-in person, their role and workspace.","tags":["workspace"],"parameters":[],"x-rivier-scope":"workspace:read","x-rivier-graphql":"Query.workspaceOverviewYou","x-rivier-sdk":"workspace.overview.you","x-rivier-cli":"workspace overview you","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Invalid"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A project key (ipn_...), a publishable key (ipn_pk_...), a short-lived token made from a key, or an OAuth access token. An account token (ipn_pat_...) opens the account routes only."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}},"responses":{"Invalid":{"description":"The request was malformed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"No valid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"The credential lacks the scope, origin or address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Over the key's rate limit; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}