Retrieve company
Retrieve one company with its settings and its member list. `baseCurrency` is the currency every cross-currency figure is converted into, so read it before interpreting any aggregate amount. Returns 404 if the company does not exist or the caller has no access to it.
Authentication
sf_… API key in the bearerAuth field below.A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.
In: header
Path Parameters
1 <= lengthResponse Body
application/json
application/json
curl -X GET "https://example.com/companies/string"{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "firestoreId": "string", "name": "string", "baseCurrency": "EUR", "lastOverallUpdatedTime": "2019-08-24T14:15:22Z", "plShowPlanningPercentageForPastMonths": true, "plShowAllCategories": true, "plRecognizeRevenueOnInvoice": true, "dataStartDate": "string", "valuationCategory": "traditional", "valuationLens": "fundraising", "systemStatus": "sandbox", "systemTrialUntil": "2019-08-24T14:15:22Z", "systemExpiredAt": "2019-08-24T14:15:22Z", "systemDeletionWarning": -2147483648, "systemSandboxExpireTime": "2019-08-24T14:15:22Z", "systemDeletionScheduledTime": "2019-08-24T14:15:22Z", "systemStripe": { "customerId": "string", "subscription": { "id": "string", "status": "active", "productName": "starter", "interval": "monthly", "currentPeriodStart": "string", "currentPeriodEnd": "string", "price": { "value": 0, "currency": "string" }, "cancelAt": "string", "limits": { "minARR": 0, "maxARR": 0 } } }, "systemTierOverageSince": "2019-08-24T14:15:22Z", "computedCommittedMrrEur": "string", "computedActiveCustomerCount": -2147483648, "computedMetricsTime": "2019-08-24T14:15:22Z", "createdTime": "2019-08-24T14:15:22Z", "createdUserId": "string", "lastUpdatedTime": "2019-08-24T14:15:22Z", "lastUpdatedUserId": "string", "users": [ { "id": "string", "userId": "string", "firebaseUserId": "string", "email": "string", "name": "string", "photoURL": "string", "role": "owner", "permissions": [ "subscriptions:read" ], "lastSeenTime": "2019-08-24T14:15:22Z" } ], "integrationTypes": [ "stripe" ]}List companies
List the companies the authenticated caller can reach, with their `role` in each and the effective `permissions`. Start here when you do not have a `companyId`: every other endpoint is scoped to one company. A `permissions` of null means the role preset applies rather than an explicit allowlist. An API key scoped to a single company sees only that one.
Update company
Update company settings. Only the fields you send change. Changing `baseCurrency` restates every converted figure in the app, including historical ones, so it is not a cosmetic setting. `plShowPlanningPercentageForPastMonths` and `plShowAllCategories` control how the P&L is rendered, and the valuation fields drive the valuation estimate.