Fundrise Offerings API

The Offerings API contains information about all Offerings available via Fundrise Connect and documents associated with those offerings. Each Offering has a status indicating whether or not they are available for investment. An `OPEN` status means the Offering is ready for investment, while the `CLOSED` status indicates it is unavailable. The response also contains the investment minimums and maximums for the specific fund. Currently open funds have $10 minimums and $100,000 maximums. Both minimum and maximum are enforced per Transaction. The Offering ID is the foreign key referenced in the Place Investment operation to indicate which Offering the user is investing in.

Documentation

Specifications

Other Resources

OpenAPI Specification

fundrise-offerings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fundrise Connect (External API) Offerings API
  version: 1.0.0
  contact:
    name: Fundrise Connect Support Team
    email: connect@fundrise.com
  description: "### Introduction\nFundrise is a Fintech company democratizing access to alternative assets through technology. This API represents a prototype of Fundrise Connect, which is our external API for providing Client onboarding and investment into our alternative assets. To get started, contact the support team via <a href=\"mailto:connect@fundrise.com\" target=\"_blank\">connect@fundrise.com</a> or view our <a href='#tag/Authentication'>getting access documentation</a>. <br> <br> The API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses,  and uses standard HTTP response codes, authentication, and verbs. <br> <br> Throughout this document, the following terminology will be used:\n  - <strong>Client</strong>: This refers to an End-User or customer that a Partner onboards onto Fundrise for investing in Fundrise assets.\n  - <strong>Partner</strong>: This refers to a company working with Fundrise to provide their End-Users or customers access to Fundrise assets.\n\n### Errors\nFundrise uses conventional HTTP response codes to indicate the success or failure of an API request. In general:\n  - Codes in the 2xx range indicate success. \n  - Codes in the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.). \n  - Codes in the 5xx range indicate an error with Fundrise's servers (these are rare).\n\nSome 4xx errors that could be handled programmatically (e.g., an address is invalid) include an error code that briefly explains the error reported. These errors that can be handled programmatically have error codes in the error response.  Endpoints that have programmatically resolvable errors have those codes defined in their schema definitions.\n### Request IDs \nEach API request has an associated request identifier. You can find this value in the response headers, under `Request-Id`.  This error will also be present in the error response body under the field `referenceId`. If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.\n### Idempotency \nFor some POST endpoints, we require a Partner idempotency key to ensure operations are not duplicated. For both Client creation and Investment placement, we require a `partnerReferenceId` to ensure that Investments and Clients are not duplicated in our system.\n### Versioning\nAPI endpoints are versioned with path versioning. Each endpoint contains a version path parameter e.g. (`/v1/...`). To release new functionality without impacting existing customers, we will version endpoints and increment version numbers accordingly.  <br> <br> When endpoints are staged to be deprecated, Partners will be given ample time to integrate with new versions according to our service agreement. Partners should expect to receive communications related to deprecation timelines. \n### Rate limiting\nWe enforce rate limiting on our public API to avoid DoS (denial of service) issues. This rate limiting is enforced per Client and per HTTP method. If you are running into  rate limiting issues, please contact the support team via <a href=\"mailto:connect@fundrise.com\" target=\"_blank\">connect@fundrise.com</a>."
  x-logo:
    url: https://d10cq78zmnjvsx.cloudfront.net/interface/logo-hz-color.svg
    backgroundColor: '#FFFFFF'
    altText: Fundrise
    href: .
servers:
- description: Sandbox
  url: https://sandbox.fundrise.com
tags:
- name: Offerings
  description: "The Offerings API contains information about all Offerings available via Fundrise Connect and documents associated with those offerings. Each Offering has a status indicating whether or not they are available for investment. An `OPEN` status means the  Offering is ready for investment, while the `CLOSED` status indicates it is unavailable. \nThe response also contains the investment minimums and maximums for the specific fund. Currently open funds have <strong>$10</strong> minimums and <strong>$100,000</strong> maximums. Both minimum and maximum are enforced per Transaction.\nThe Offering ID is the foreign key referenced in the <a href=\"#tag/Investments/operation/PlaceInvestment\">Place Investment</a> operation to indicate which Offering the user is investing in."
paths:
  /v1/offerings:
    get:
      description: Returns a list of Fundrise Offerings accessible via this API. This endpoint supports a query parameter to filter Offerings for a specific asset class.  Not passing the query parameter will return all available asset classes.
      operationId: GetOfferings
      parameters:
      - $ref: '#/components/parameters/AssetClassQuery'
      security:
      - PartnerBasicAuthentication: []
      summary: Get Offerings
      tags:
      - Offerings
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OfferingResponse'
              example:
              - offeringId: '1'
                currentPrice:
                  price: '10.0'
                  priceDate: '2020-01-01T00:00:00Z'
                offeringName: Income Interval Fund
                status: OPEN
                assetClass:
                  assetClassType: PRIVATE_CREDIT
                  assetClassLabel: Private Credit
                minimumInvestmentAmount: '10.00'
                maximumInvestmentAmount: '100000.00'
                primaryObjective: Cash flow
                currentDistributionRate: '.41'
              - offeringId: '2'
                offeringName: Flagship Real Estate Fund
                status: OPEN
                assetClass:
                  assetClassType: REAL_ESTATE
                  assetClassLabel: Real Estate
                minimumInvestmentAmount: '10.00'
                maximumInvestmentAmount: '100000.00'
                primaryObjective: Appreciation
                currentDistributionRate: '.41'
              - offeringId: '3'
                offeringName: Innovation Fund
                status: CLOSED
                assetClass:
                  assetClassType: VENTURE
                  assetClassLabel: Venture
                minimumInvestmentAmount: '10.00'
                maximumInvestmentAmount: '100000.00'
                primaryObjective: Appreciation
                currentDistributionRate: '.41'
        '401':
          $ref: '#/components/responses/401'
        '500':
          $ref: '#/components/responses/500'
  /v1/offering/{offeringId}/nav:
    get:
      description: 'Returns the historical daily net asset values for a Fundrise Offering accessible via this API. '
      operationId: GetHistoricalNav
      parameters:
      - $ref: '#/components/parameters/OfferingIdPath'
      security:
      - PartnerBasicAuthentication: []
      summary: Get Historical Daily NAV
      tags:
      - Offerings
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfferingHistoricalNavResponse'
              example:
                offeringId: '24'
                historicalDailyNav:
                - effectiveDate: '2023-01-02T00:00:00Z'
                  netAssetValuePerShare: '10.03'
                - effectiveDate: '2023-01-01T00:00:00Z'
                  netAssetValuePerShare: '10.02'
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundriseConnectError'
              examples:
                LiquidationNotFound:
                  value:
                    referenceId: ed8583b9-6cd9-43ed-ad46-c7c52fff0c34
                    code: '200101'
                    message: Invalid offeringId provided
        '500':
          $ref: '#/components/responses/500'
  /v1/offering/{offeringId}/documents:
    get:
      description: The documents API provides access to Fundrise Offering documentation to place Investments. When a user has selected what Offering they would like to invest in from the `GET /v1/offerings` endpoint, the documents (typically a `SUBSCRIPTION_AGREEMENT` and `PROSPECTUS`  or `OFFERING_CIRCULAR`) need to be displayed to the user before investing into the Offering.
      operationId: GetOfferingDocuments
      security:
      - PartnerBasicAuthentication: []
      summary: Get Offering Documents
      tags:
      - Offerings
      parameters:
      - $ref: '#/components/parameters/OfferingIdPath'
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentResponse'
              examples:
                investment-docs:
                  value:
                  - documentId: '1'
                    documentName: Fundrise Equity eREIT Offering Circular (December 2022) Supp 1.pdf
                    documentType: OFFERING_CIRCULAR
                    documentUrl: https://d10cq78zmnjvsx.cloudfront.net/website-documents/a1b48469-6cab-4965-ad24-fcde28037d31/Fundrise%20Equity%20eREIT%20Offering%20Circular%20(December%202022)%20Supp%201.pdf
                  - documentId: '2'
                    documentName: Fundrise Equity eREIT Subscription Agreement (December 2022) - final.pdf
                    documentType: AGREEMENT
                    documentUrl: https://d10cq78zmnjvsx.cloudfront.net/reit-documents/45eee3fb-d77c-4804-aca2-f0c96e413e02/Fundrise%20Equity%20eREIT%20Subscription%20Agreement%20(December%202022)%20-%20final.pdf
        '401':
          $ref: '#/components/responses/401'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundriseConnectError'
              examples:
                LiquidationNotFound:
                  value:
                    referenceId: ed8583b9-6cd9-43ed-ad46-c7c52fff0c34
                    code: '200102'
                    message: Documents not found for provided offeringId
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    Identifier:
      title: Identifier
      description: Value for a unique identifier.
      type: string
      format: int64
    FundriseConnectError:
      title: Error object
      description: Error from Fundrise Connect.
      type: object
      properties:
        referenceId:
          description: A unique reference ID generated for every request that is for error tracing.
          maxLength: 1000
          type: string
        code:
          description: A numeric code mapping to a specific validation error.
          maxLength: 6
          type: string
        message:
          description: A human readable description of the error.
          maxLength: 1000
          type: string
        validationErrors:
          description: A map of field names to an array of form validation error messages
          $ref: '#/components/schemas/FieldErrorMap'
      required:
      - referenceId
    FieldErrorMap:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/StringArray'
    OfferingResponse:
      title: Offering Response
      description: A Fundrise Offering.
      type: object
      properties:
        currentPrice:
          anyOf:
          - type: 'null'
          - $ref: '#/components/schemas/PriceResponse'
        offeringId:
          description: The Offering ID
          $ref: '#/components/schemas/Identifier'
        offeringName:
          description: The Offering name.
          maxLength: 2000
          type: string
        status:
          $ref: '#/components/schemas/OfferingStatusEnum'
        assetClass:
          $ref: '#/components/schemas/AssetClass'
        minimumInvestmentAmount:
          description: The minimum amount that can be invested into the fund in USD.
          type: string
          format: double
        maximumInvestmentAmount:
          description: The maximum amount that can be invested into the fund in USD.
          type: string
          format: double
        primaryObjective:
          description: The main goal of the fund.
          type: string
          maxLength: 256
        currentDistributionRate:
          description: The current distribution rate of the fund. This represents the approximate annualized dividend percentage of the fund.
          type: string
          format: double
      required:
      - offeringId
      - offeringName
      - status
      - assetClass
      - minimumInvestmentAmount
      - maximumInvestmentAmount
      - primaryObjective
      - currentDistributionRate
    DocumentTypeEnum:
      title: Document Type
      description: Enum representing the document type.
      maxLength: 256
      enum:
      - AGREEMENT
      - ACKNOWLEDGMENT
      - DISCLOSURE
      - PROSPECTUS
      - OFFERING_CIRCULAR
      - OTHER
      - STATEMENT
      - TAX_FORM
    DocumentResponse:
      title: Document
      description: A Fundrise Document.
      type: object
      properties:
        documentId:
          description: The unique Document ID.
          type: string
          format: int64
        documentName:
          maxLength: 2000
          type: string
        documentType:
          $ref: '#/components/schemas/DocumentTypeEnum'
        documentUrl:
          maxLength: 2000
          type: string
    PriceResponse:
      title: Price Response
      description: A Fundrise Offering Price.
      type: object
      properties:
        price:
          description: The Offering Price.
          type: string
          format: double
        priceDate:
          description: The effective date-time of the price.
          type: string
          format: date-time
    AssetClass:
      title: Asset Class
      description: The asset class of the offering.
      type: object
      properties:
        assetClassType:
          $ref: '#/components/schemas/AssetClassEnum'
        assetClassLabel:
          type: string
          description: Human readable label for the asset class
    AssetClassEnum:
      title: Asset Class type
      description: The asset class of the offering.
      maxLength: 256
      enum:
      - REAL_ESTATE
      - PRIVATE_CREDIT
      - VENTURE
    OfferingStatusEnum:
      title: Offering Status
      description: The current status of the offering. `OPEN` indicates the Offering can be invested in while `CLOSED` indicates the Offering is unavailable.
      maxLength: 256
      enum:
      - OPEN
      - CLOSED
    StringArray:
      type: array
      items:
        type: string
    OfferingHistoricalNavResponse:
      title: Offering NAV Response
      description: Historical Daily NAV for a Fundrise Offering.
      type: object
      properties:
        offeringId:
          description: The Offering ID
          $ref: '#/components/schemas/Identifier'
        historicalDailyNav:
          type: array
          description: The historical daily net asset values of the fund in USD.
          items:
            $ref: '#/components/schemas/OfferingNavResponse'
      required:
      - offeringId
      - historicalDailyNav
    OfferingNavResponse:
      title: Offering NAV Response
      description: A historical daily NAV entry
      properties:
        effectiveDate:
          description: The date the NAV was effective.
          type: string
          format: date-time
        netAssetValuePerShare:
          description: The share value.
          type: string
          format: double
  parameters:
    OfferingIdPath:
      name: offeringId
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/Identifier'
        description: The Offering ID (returned by the <a href="#tag/Offerings/operation/GetOfferings">Get Offerings</a> operation) associated with the request.
    AssetClassQuery:
      name: assetClass
      in: query
      description: Enum indicating the underlying asset class that the Offering represents.
      required: false
      schema:
        $ref: '#/components/schemas/AssetClassEnum'
  responses:
    '500':
      description: Internal Service Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/FundriseConnectError'
          examples:
            clientExists:
              value:
                referenceId: ed8583b9-6cd9-43ed-ad46-c7c52fff0c35
                message: Internal service error
    '401':
      description: Unauthorized request to server, Invalid access token or Partner credentials
  securitySchemes:
    PartnerBasicAuthentication:
      description: PartnerBasicAuthentication is enforced by HTTP Basic Authentication. A Partner username and password will be provided by Fundrise support.  The Partner password should be stored securely. At a minimum, it should be encrypted at-rest and access restricted to services making requests to the Fundrise API. The Partner password should not be exposed to a Client or any of their devices. If the password is compromised please contact Fundrise support.
      type: http
      scheme: basic
    ClientBearerAuthentication:
      description: 'ClientBearerAuthentication is enforced by HTTP Bearer Authentication and requires an OAuth access token.  Since access tokens are scoped to specific Clients, they identify and authenticate the Client in a request.


        Access tokens can be obtained in <a href="#tag/Authentication/operation/GetAccessToken">Get Access Token</a> requests by using the refresh token flow. OAuth refresh token are issued on <a href="#tag/Clients/operation/CreateClient">Client Creation</a> and scoped specifically to that Client. The refresh tokens will not expire and should be stored securely after Client creation. At a minimum, refresh tokens should be encrypted at-rest and access restricted to services making requests to the Fundrise API. Refresh tokens should not be exposed to a Client or any of their devices.'
      type: http
      scheme: bearer