REST API for partners
As a partner, you can initiate Regulation D offerings on behalf of your clients.
Overview
The Raiseform API is a RESTful JSON API. That means it is designed to:
- follow standard RESTful conventions
- accept JSON-formatted requests
- return JSON-formatted responses
Contents
This guide covers the following topics:
Authentication
API authentication is key-based.
API keys can only be generated by marketplace users with a verified email.
As a verified marketplace user, you can create an API key by going to Account > API keys > Create an API key. Immediately save your key secret, because it will never be displayed again.
Your API key value must be provided in an "Authorization" header with a "Token" type, like this:
Authorization: Token 55555555-5555-5555-5555-555555555555
Errors
If your request encounters an error, the API will return an error response with this structure:
{
"errors": [
"Your authentication key is invalid."
]
}
Companies
You can use the API to create Companies, under which you can later add Offerings and Investors. You can also use the API to check the status of any Company you created previously.
Create Company
Create a Company profile.
Endpoint
POST https://api.raiseform.com/v1/companies
Body parameters
external_id(String) - Optional
Any outside ID you want to associate with this Company.name(String) - Required
The name of this Company, like "Utopia Inc". Minimum length 3 characters, maximum length 100 characters.users(Array) - Required
An array of hashes with the user email. If the user account does not exist, Raiseform will email the user. Max of 5 users.
Response
Expect response status 201 Created.
After creating a Company, you can ask the users to check their email for an verification link from Raiseform.
Example Request JSON
{
"name": "Utopia Inc",
"users": [
{
"email": "ceo@company.com"
}
]
}Example Response JSON
{
"created_at": "2025-12-06T04:37:23Z",
"external_id": null,
"id": "da5c3efa-d19a-4544-af84-74b69e82c030",
"name": "Utopia Inc",
"object": "Company",
"users": [
{
"email": "ceo@company.com"
}
]
}Read Company
Get the details of an existing Company.
Endpoint
GET https://api.raiseform.com/v1/companies/:id_or_external_id
Response
Expect response status 200 Succeeded.
Example Request JSON
{
}Example Response JSON
{
"created_at": "2025-12-06T04:37:23Z",
"external_id": null,
"id": "da5c3efa-d19a-4544-af84-74b69e82c030",
"name": "Utopia Inc",
"object": "Company",
"users": [
{
"email": "ceo@company.com"
}
]
}Offerings
You can use the API to create Offerings on behalf of companies, to start the Regulation D offering process. You can also use the API to check the status of any Offering you created previously.
Create Offering
Draft an offering on behalf of a company.
Endpoint
POST https://api.raiseform.com/v1/offerings
Body parameters
close_amounts(Array of Integers) - Optional
The "first close" amount, and any subsequent close amounts. If given, no funds will be disbursed to company until the first close is reached.company_external_id(String) - Required unlesscompany_idgiven
The Company external_id value you provided previously.company_id(String) - Required unlesscompany_external_idgiven
The Company ID value you generated previously.deadline_at(String) - Optional
The deadline for the offering in ISO 8601 datetime format,
like "2026-06-06T17:00:00Z".external_id(String) - Optional
Any outside ID you want to associate with this Offering.maximum_amount(Integer) - Optional
The maximum amount that can be raised. If given, no funds will be accepted after the maximum is reached.minimum_amount(Integer) - Optional
The minimum amount that must be raised. If given, no funds will be disbursed to company until the minimum is reached. If given with adeadline_at, funds will be returned to investors if the minimum is not reached by that date.name(String) - Required
The name of this Offering, like "Utopia Inc 2025 Reg D". Minimum length 3 characters, maximum length 100 characters.regulation_type(String) - Required
The regulation this is being offered under. Choose from:regulation_d_506_c
target_amount(Integer) - Optional
The target amount the company aims to raise. This is typically above the minimum_amount and below the maximum_amount, if either of those is given.
Response
Expect response status 201 Created.
After creating an Offering, you can begin inviting Investors.
Example Request JSON
{
"company_id": "da5c3efa-d19a-4544-af84-74b69e82c030",
"name": "Utopia Inc 2025 506(c)",
"regulation_type": "regulation_d_506_c"
}Example Response JSON
{
"close_amounts": [
],
"created_at": "2025-12-06T04:37:23Z",
"deadline_at": null,
"external_id": null,
"id": "86d124bc-a37f-4387-b509-91a94a72d07c",
"maximum_amount": 0,
"minimum_amount": 0,
"name": "Utopia Inc 2025 506(c)",
"number": 5555,
"object": "Offering",
"raised_amount": 0,
"state": "open",
"target_amount": 0
}Read Offering
Get the details of an existing Offering.
Endpoint
GET https://api.raiseform.com/v1/offerings/:id_or_external_id
Response
Expect response status 200 Succeeded.
Example Request JSON
{
}Example Response JSON
{
"close_amounts": [
],
"created_at": "2025-12-06T04:37:23Z",
"deadline_at": null,
"external_id": null,
"id": "86d124bc-a37f-4387-b509-91a94a72d07c",
"maximum_amount": 0,
"minimum_amount": 0,
"name": "Utopia Inc 2025 506(c)",
"number": 5555,
"object": "Offering",
"raised_amount": 0,
"state": "open",
"target_amount": 0
}Suspend Offering
Suspend an existing Offering, indicating funds are not being accepted but may be again in the future.
Endpoint
GET https://api.raiseform.com/v1/offerings/:id_or_external_id/suspensions
Response
Expect response status 201 Created.
Example Request JSON
{
}Example Response JSON
{
"close_amounts": [
],
"created_at": "2025-12-06T04:37:23Z",
"deadline_at": null,
"external_id": null,
"id": "86d124bc-a37f-4387-b509-91a94a72d07c",
"maximum_amount": 0,
"minimum_amount": 0,
"name": "Utopia Inc 2025 506(c)",
"number": 5555,
"object": "Offering",
"raised_amount": 0,
"state": "suspended",
"target_amount": 0
}Investors
Manage which investors have access to an Offering.
Create Investor
Invite a User to an Offering.
Raiseform will email them an invitation
(unless you enable skip_notification,
in which case it is your responsibility to redirect them to the
accept_url).
After the investor accepts, Raiseform will share wire transfer instructions.
Please note:
-
funds_transfer_instructionsis not available in API responses until after the Investor has accepted the invitation. - Adding the first Investor to an Offering will move it from "draft" to "open".
Endpoint
POST https://api.raiseform.com/v1/investors
Body parameters
email(String) - Required
Raiseform will send an invite to this email. (The user may not choose to accept the invite under this email.)name(String) - Optional
The full name of this Investor, like "John Smith". Minimum length 3 characters, maximum length 100 characters.offering_external_id(String) - Required unlessoffering_idgiven
The Offering external_id value you provided previously.offering_id(String) - Required unlessoffering_external_idgiven
The Offering ID value you generated previously.skip_notification(Boolean) - Optional
Defaults tofalse. Set totrueto disable the notification email that is usually sent to the investoremail.two_factor_authentication_required(Boolean) - Optional
Defaults tofalse. Set totrueif this person should be forced to enable two-factor authentication.user_external_id(String) - Optional
Any outside ID you want to associate with this Investor user.
Response
Expect response status 201 Created.
Example Request JSON
{
"email": "investor@example.com",
"offering_id": "86d124bc-a37f-4387-b509-91a94a72d07c"
}Example Response JSON
{
"accept_url": "https://www.raiseform.com/investors/97922237-02f2-4601-9687-0fa0ca09fc6d/acceptances/new",
"accepted_at": null,
"created_at": "2025-12-06T04:37:23Z",
"email": "investor@example.com",
"funds_transfer_instructions": null,
"id": "97922237-02f2-4601-9687-0fa0ca09fc6d",
"name": null,
"number": 7777,
"object": "Investor",
"offering_id": "86d124bc-a37f-4387-b509-91a94a72d07c",
"two_factor_authentication_required": false,
"user_external_id": null
}Read Investor
Get the details of an Investor.
This is useful to get funds_transfer_instructions
after the Investor has accepted the invitation.
Endpoint
GET https://api.raiseform.com/v1/investors/:id
Response
Expect response status 200 Succeeded.
Example Request JSON
{
}Example Response JSON
{
"accept_url": null,
"accepted_at": "2025-12-06T04:37:23Z",
"created_at": "2025-12-06T04:37:23Z",
"email": "investor@example.com",
"funds_transfer_instructions": {
"wire": {
"account_holder": {
"name": "Dealform LLC",
"line_1": "4023 Kennett Pike",
"line_2": "#50653",
"city": "Wilmington",
"state_code": "DE",
"postal_code": "19807",
"country_code": "US"
},
"account_number": "9999999999",
"bank": {
"name": "Truist Bank",
"line_1": "611 W 5th St",
"line_2": null,
"city": "Austin",
"state_code": "TX",
"postal_code": "78701",
"country_code": "US"
},
"reference": "Investor #7777",
"routing_number": "111017694"
}
},
"id": "97922237-02f2-4601-9687-0fa0ca09fc6d",
"name": null,
"number": 7777,
"object": "Investor",
"offering_id": "86d124bc-a37f-4387-b509-91a94a72d07c",
"two_factor_authentication_required": false,
"user_external_id": null
}List Investors
Get details of Investors you created.
Use this if you aren't able to
read Investor
using the Raiseform ID and want to use your user_external_id instead.
Endpoint
GET https://api.raiseform.com/v1/investors
Query parameters
email(String) - Optional
Get records matching this value.user_external_id(String) - Optional
Get records matching this value.
Response
Expect response status 200 Succeeded.
Maximum of 10 records per response.
Example Request JSON
{
}Example Response JSON
[
{
"accept_url": null,
"accepted_at": "2025-12-06T04:37:23Z",
"created_at": "2025-12-06T04:37:23Z",
"email": "investor@example.com",
"funds_transfer_instructions": {
"wire": {
"account_holder": {
"name": "Dealform LLC",
"line_1": "4023 Kennett Pike",
"line_2": "#50653",
"city": "Wilmington",
"state_code": "DE",
"postal_code": "19807",
"country_code": "US"
},
"account_number": "9999999999",
"bank": {
"name": "Truist Bank",
"line_1": "611 W 5th St",
"line_2": null,
"city": "Austin",
"state_code": "TX",
"postal_code": "78701",
"country_code": "US"
},
"reference": "Investor #7777",
"routing_number": "111017694"
}
},
"id": "97922237-02f2-4601-9687-0fa0ca09fc6d",
"name": null,
"number": 7777,
"object": "Investor",
"offering_id": "86d124bc-a37f-4387-b509-91a94a72d07c",
"two_factor_authentication_required": false,
"user_external_id": null
}
]Questions or suggestions
If you have any questions or suggestions, please contact support.