Fundrise · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Fundrise Connect API

12 actions 12 updates update extends openapi/fundrise-connect-openapi.yml
Derived by API Evangelist Built from the contracts Fundrise publishes. Fundrise did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-notex-apievangelist-subjectx-idempotentx-idempotency-fieldx-apievangelist-consequencex-apievangelist-preconditionsx-apievangelist-providerx-apievangelist-api

Targets 11

$.info
$.servers
$.components.schemas.FundriseConnectError
$.components.schemas.Identifier
$.components.securitySchemes.PartnerBasicAuthentication
$.components.securitySchemes.ClientBearerAuthentication
$.paths['/v1/client'].post
$.paths['/v1/account/{accountId}/investment'].post
$.paths['/v1/account/{accountId}/liquidation'].post
$.paths['/v1/account/{accountId}/holdings'].get
$.paths['/v1/account/{accountId}/transactions'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Fundrise Connect API
  version: 1.0.0
extends: openapi/fundrise-connect-openapi.yml
x-generated: '2026-08-04'
x-method: generated
x-source: >-
  Derived from the Fundrise-published OpenAPI 3.1.0 plus the artifacts in this repository.
  This overlay records API Evangelist's enhancements only — it never mutates the harvested
  specification. Every value below is grounded in something Fundrise publishes.
actions:

- target: $.info
  description: Attach API Evangelist provenance and cross-links to the artifacts derived from this spec.
  update:
    x-apievangelist-provider: fundrise
    x-apievangelist-api: fundrise:fundrise-connect
    x-apievangelist-source: https://connect.fundrise.com/
    x-apievangelist-harvested: '2026-08-04'
    x-apievangelist-harvest-note: >-
      The specification is not served at a standalone URL. It is embedded as the
      __redoc_state.spec.data object inside the Redocly documentation bundle at
      https://connect.fundrise.com/ and was extracted verbatim from there.
    x-apievangelist-artifacts:
      authentication: authentication/fundrise-authentication.yml
      scopes: scopes/fundrise-scopes.yml
      conventions: conventions/fundrise-conventions.yml
      errors: errors/fundrise-problem-types.yml
      rate_limits: rate-limits/fundrise-rate-limits.yml
      lifecycle: lifecycle/fundrise-lifecycle.yml
      conformance: conformance/fundrise-conformance.yml
      sandbox: sandbox/fundrise-sandbox.yml
      data_model: data-model/fundrise-data-model.yml
      agentic_access: agentic-access/fundrise-agentic-access.yml
      skills: skills/_index.yml
      arazzo: arazzo/fundrise-onboard-client-and-invest.yml

- target: $.servers
  description: >-
    Record the production host. The published spec declares only the sandbox server, so a
    client generated from it defaults to test mode. The production host is not invented —
    it is the token_endpoint published in Fundrise's own OIDC discovery document.
  update:
    x-apievangelist-production-host: https://api.fundrise.com
    x-apievangelist-production-host-evidence: >-
      token_endpoint of https://fundrise.com/.well-known/openid-configuration (HTTP 200,
      fetched 2026-08-04)
    x-apievangelist-note: >-
      servers[] contains only the Sandbox entry. Adding the production server to the
      published spec would remove a real integration hazard.

- target: $.info
  description: Record the cross-cutting runtime semantics captured in conventions/, as machine-readable extensions.
  update:
    x-idempotency:
      supported: true
      mechanism: request-body-field
      field: partnerReferenceId
      header: null
      operations:
      - CreateClient
      - PlaceInvestment
      conflict_status: 409
    x-request-tracing:
      response_header: Request-Id
      error_body_field: referenceId
    x-versioning:
      scheme: uri-path
      current: v1
    x-rate-limiting:
      enforced: true
      dimensions: [per-Client, per-HTTP-method]
      published_limits: false
      throttle_status_declared: false
    x-pagination:
      supported: false

- target: $.components.schemas.FundriseConnectError
  description: Mark the vendor error envelope and note the deviation from RFC 9457.
  update:
    x-apievangelist-error-envelope: true
    x-apievangelist-rfc9457: false
    x-apievangelist-note: >-
      Served as application/json rather than application/problem+json. referenceId is the
      only required member and is the value to quote to connect@fundrise.com.

- target: $.components.schemas.Identifier
  description: Note that all entity identifiers share one opaque string type.
  update:
    x-apievangelist-note: >-
      Every entity id — clientId, offeringId, transactionId, documentId, acknowledgmentId —
      resolves to this single opaque string schema. There is no typed prefix convention, so
      identifiers are not self-describing and must be tracked with their entity type.

- target: $.components.securitySchemes.PartnerBasicAuthentication
  description: Flag the credential-handling obligations Fundrise states in prose.
  update:
    x-apievangelist-subject: Partner
    x-apievangelist-credential-handling: >-
      Encrypted at rest, access restricted to calling services, never exposed to a Client
      or Client device.

- target: $.components.securitySchemes.ClientBearerAuthentication
  description: Record that this bearer token is OAuth-issued and how it is obtained.
  update:
    x-apievangelist-subject: Client
    x-apievangelist-token-source: POST /v1/oauth/token (GetAccessToken)
    x-apievangelist-grant: refresh_token
    x-apievangelist-refresh-token-expiry: none
    x-apievangelist-note: >-
      Modelled as an http bearer scheme rather than an oauth2 scheme with declared flows,
      so generated clients receive no flow metadata even though a real OAuth exchange
      backs it.

- target: $.paths['/v1/client'].post
  description: Mark the idempotent create and its duplicate signal.
  update:
    x-idempotent: true
    x-idempotency-field: partnerReferenceId
    x-duplicate-status: 409
    x-apievangelist-note: >-
      A 409 means the partnerReferenceId is already known to Fundrise and the Client
      exists. Treat it as a successful no-op — do not retry with a new key.

- target: $.paths['/v1/account/{accountId}/investment'].post
  description: Mark the highest-consequence operation in the API.
  update:
    x-idempotent: true
    x-idempotency-field: partnerReferenceId
    x-apievangelist-consequence: financial
    x-apievangelist-preconditions:
    - GetOfferings
    - GetOfferingDocuments
    - GetInvestmentAcknowledgments
    x-apievangelist-note: >-
      Moves real money into a private-market fund. The Client must first have been shown
      and have digitally accepted the offering's documents and acknowledgments;
      acknowledgedDocumentIds is a required field, so the disclosure step is a contract
      precondition, not a courtesy. amount must fall between the offering's
      minimumInvestmentAmount and maximumInvestmentAmount, enforced per Transaction.

- target: $.paths['/v1/account/{accountId}/liquidation'].post
  description: Mark the liquidation operation as financially consequential.
  update:
    x-apievangelist-consequence: financial
    x-apievangelist-preconditions:
    - GetLiquidationAcknowledgments
    - GetHoldings
    x-apievangelist-note: >-
      Sells shares back for dollars. allAcknowledgmentsAccepted is required. Check
      HoldingResponse.liquidable before offering the action — not every holding can be
      liquidated on demand.

- target: $.paths['/v1/account/{accountId}/holdings'].get
  description: Note the freshness contract and the empty-portfolio response.
  update:
    x-apievangelist-freshness: daily
    x-apievangelist-note: >-
      Values update daily with appreciation and accruing dividends, so responses are not
      real-time. A 204 is returned when the Client has no holdings yet — handle it as an
      empty portfolio, not an error.

- target: $.paths['/v1/account/{accountId}/transactions'].get
  description: Flag the unbounded collection.
  update:
    x-apievangelist-note: >-
      Returns a bare array with no pagination parameters. This is the collection most
      likely to grow without bound over an account's life, and there is no published way
      to page or filter it by date.

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/fundrise-connect-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.