Skip to content

The project object

A project holds one product’s revenue data — its sources, customers, subscriptions and plans — and the settings its metrics are computed with. An API key belongs to one project, and works in it alone.

Attributes

  • idstring (UUID)

    The project’s unique identifier.

  • objectstring

    The object’s type, always project.

    Always project

  • checklist_dismissed_attimestamp

    When the project’s Get started checklist was dismissed in Summerbase, or null while it is offered.

  • churn_timingenum

    When a subscription’s revenue stops counting: at_expiration, when it ends, or at_cancellation, when a cancellation is booked for it.

    Under at_cancellation a subscription with cancels_at set is worth nothing from the moment the source said so, though it is still in service: the customer’s MRR drops then, the movement is churn, or contraction if something else is still live, and a customer with nothing else live is churned. Withdrawing the cancellation brings the revenue back. A trial booked to end loses nothing, having nothing to lose. A Stripe import dates a booking at Stripe’s canceled_at, which holds only the latest request, so an earlier or withdrawn one is not in the history.

    Changing it moves the metrics of every customer in the project.

    One of at_expiration, at_cancellation

  • created_attimestamp

    When the project was created.

  • movement_collapse_window_daysinteger

    How close together two changes to a customer’s revenue have to be to count as one.

    Signing up at $100 and upgrading to $500 the next day is $500 of new revenue, not $100 of new plus $400 of expansion, and a cancellation reversed within the window is neither a churn nor a reactivation. The collapsed movement is dated at the first change in the window, so a customer who arrives on the 30th and upgrades on the 2nd still arrived in the first month. 0 records every change as it happened.

    An elapsed duration, not a calendar one: seven days is 168 hours wherever the project reports from. Changing it moves the metrics of every customer in the project, and a closed period can move while it is still inside the window.

  • namestring

    What the project is called.

  • organizationobject

    The organization that owns the project. Expandable.

    Show 6 child attributes
    • idstring (UUID)

      The organization’s unique identifier.

    • objectstring

      The object’s type, always organization.

      Always organization

    • cell_codestring

      Where the organization’s data is kept, chosen from its region when it was created and never changed.

    • created_attimestamp

      When the organization was created.

    • namestring

      The company’s name, as it appears throughout Summerbase.

    • slugstring

      How the organization is addressed in a readable URL — the acme in app.summerbase.com/organizations/acme, and in its projects’ app.summerbase.com/projects/production@acme. Lowercase letters, digits, hyphens and underscores, and never shaped like an id.

      Unique across every Summerbase organization, and derived from the name when you do not choose one. Changing it is allowed and breaks every address that used the old one.

  • organization_idstring (UUID)

    The organization that owns the project.

  • recompute_failed_attimestamp

    When the last recompute gave up, or empty when none has since the last one succeeded.

  • recompute_remaininginteger

    How many of them are still behind.

    Counts only the customers the recompute started with.

  • recompute_started_attimestamp

    When the recompute now running began, or empty when none is.

    One runs after a setting that decides how the project is measured changes.

  • recompute_totalinteger

    How many customers that recompute has to get through.

  • reporting_cadenceenum

    Which cadence the project quotes its metrics at: monthly, MRR, or annual, ARR.

    Every measure is answered at either cadence whatever this says. What it decides is which of the two Summerbase shows where it shows one.

    One of monthly, annual

  • reporting_currencyobject

    The currency every amount is reported in. Expandable.

    Show 3 child attributes
    • objectstring

      The object’s type, always currency.

      Always currency

    • codestring

      Its ISO 4217 code — USD, EUR, DKK.

    • namestring

      What it is called, in English: US dollar, Danish krone.

  • reporting_currency_codestring

    The currency every amount is reported in, by its ISO 4217 code. A project’s first import sets it to the currency most of the imported subscriptions are billed in, and nothing changes it afterwards but this action.

    Amounts are converted at the rate for the moment being measured, so a project billing in three currencies has one number to look at.

  • reporting_timezonestring

    The timezone every chart’s buckets are cut in, by its IANA name — Europe/Copenhagen, America/New_York, UTC — as /v1/timezones lists them. An offset like +02:00 and an abbreviation like CET are refused.

    It decides which day a midnight-adjacent event falls in, and where a month starts.

  • slugstring

    How the project is addressed in a readable URL — the production in app.summerbase.com/projects/production@acme, or that one slug alone when it is the organization’s too. Lowercase letters, digits, hyphens and underscores, and never shaped like an id.

    Unique within the organization: one already used there is refused. Derived from the name when you do not choose one. Changing it is allowed and breaks every address that used the old one.

Example

{
"checklist_dismissed_at": null,
"churn_timing": "at_expiration",
"created_at": "2025-09-08T14:02:37Z",
"id": "0198f1a2-6c52-7b18-8e3f-2a9c4d6b1e07",
"movement_collapse_window_days": 7,
"name": "Production",
"object": "project",
"organization_id": "0198f1a2-6c3d-7e41-9a2b-5c8d1e4f7a90",
"recompute_failed_at": null,
"recompute_remaining": 0,
"recompute_started_at": null,
"recompute_total": 0,
"reporting_cadence": "monthly",
"reporting_currency_code": "USD",
"reporting_timezone": "America/New_York",
"slug": "production"
}

Endpoints