# Retrieve an Activity
Source: https://docs.moonbase.ai/api-reference/activities/get
GET /activities/{id}
Retrieves the details of an existing activity.
# List Activities
Source: https://docs.moonbase.ai/api-reference/activities/list
GET /activities
Returns a list of activities.
# Authentication
Source: https://docs.moonbase.ai/api-reference/authentication
Use API keys to authenticate API requests.
The Moonbase API uses API keys to authenticate all requests. An API key is required for all requests.
## How authentication works
API requests require valid API keys. The API returns specific errors based on authentication issues:
* **Invalid request error**: Missing or invalid API key
* **Authentication error**: Deleted or expired API key
For more details about handling authentication errors, see the Moonbase [error handling guide](/api-reference/error-handling).
## Manage API keys
Manage API keys in [organization settings](https://app.moonbase.ai/settings/api_keys).
Keep API keys secret. Avoid client-side exposure.
## Using API key
### SDK authentication
SDKs check for an API key in the `MOONBASE_API_KEY` environment variable. Override this default when creating a client.
```typescript TypeScript theme={null}
import Moonbase from '@moonbaseai/sdk';
const client = new Moonbase({
apiKey: process.env['MOONBASE_API_KEY'], // This is the default and can be omitted
});
```
```go Go theme={null}
package main
import (
"context"
"fmt"
"os"
"github.com/moonbaseai/moonbase-sdk-go"
"github.com/moonbaseai/moonbase-sdk-go/option"
)
func main() {
client := moonbase.NewClient(
option.WithApiKey(os.LookupEnv("MOONBASE_API_KEY"), // This is the default and can be omitted
)
}
```
```ruby Ruby theme={null}
require "bundler/setup"
require "moonbase"
moonbase = Moonbase::Client.new(
api_key: ENV["MOONBASE_API_KEY"] # This is the default and can be omitted
)
```
```python Python theme={null}
import os
from moonbase import Moonbase
client = Moonbase(
api_key=os.environ.get("MOONBASE_API_KEY"), # This is the default and can be omitted
)
```
### Direct API calls
When calling the API directly, use HTTP Bearer authentication:
```sh theme={null}
curl --request GET \
--url https://api.moonbase.ai/v0/collections/people \
--header 'Authorization: Bearer MOONBASE_API_KEY'
```
## Best practices
* Never hardcode API keys
* Use different API keys for different environments (development, staging, production)
* Regenerate suspected compromised API keys
* Never log API keys in errors or debug output
# Create a Call
Source: https://docs.moonbase.ai/api-reference/calls/create
POST /calls
Logs a phone call.
# Retrieve a Call
Source: https://docs.moonbase.ai/api-reference/calls/get
GET /calls/{id}
Retrieves the details of an existing call.
# List Calls
Source: https://docs.moonbase.ai/api-reference/calls/list
GET /calls
Returns a list of calls.
# Create or Update a Call
Source: https://docs.moonbase.ai/api-reference/calls/upsert
POST /calls/upsert
Find and update an existing phone call, or create a new one.
# Create a Collection
Source: https://docs.moonbase.ai/api-reference/collections/create
POST /collections
Creates a new collection with default fields (name, created_at, updated_at) and a default view.
# Create a Field
Source: https://docs.moonbase.ai/api-reference/collections/create-field
POST /collections/{collection_id}/fields
Creates a new field in a collection.
# Delete a Collection
Source: https://docs.moonbase.ai/api-reference/collections/delete
DELETE /collections/{id}
Permanently deletes a collection.
# Delete a Field
Source: https://docs.moonbase.ai/api-reference/collections/delete-field
DELETE /collections/{collection_id}/fields/{id}
Permanently deletes a field from a collection.
# Retrieve a Collection
Source: https://docs.moonbase.ai/api-reference/collections/get
GET /collections/{id}
Retrieves the details of an existing collection.
# Retrieve a Field
Source: https://docs.moonbase.ai/api-reference/collections/get-field
GET /collections/{collection_id}/fields/{id}
Retrieves the details of a field in a collection.
# List Collections
Source: https://docs.moonbase.ai/api-reference/collections/list
GET /collections
Returns a list of your collections.
# Update a Collection
Source: https://docs.moonbase.ai/api-reference/collections/update
PATCH /collections/{id}
Updates an existing collection.
# Update a Field
Source: https://docs.moonbase.ai/api-reference/collections/update-field
PATCH /collections/{collection_id}/fields/{id}
Updates an existing field in a collection.
# Errors
Source: https://docs.moonbase.ai/api-reference/error-handling
Learn about the errors that can be returned by the API and how to handle them effectively.
The Moonbase API returns structured error responses with standard HTTP status codes.
## Error response format
All error responses follow a consistent JSON structure:
```json theme={null}
{
"errors": [
{
"status": "400",
"title": "Bad Request",
"detail": "The 'email' field is required but was not provided."
}
]
}
```
Each error object contains:
* `status`: The HTTP status code as a string
* `title`: A brief, human-readable summary of the error
* `detail`: A more detailed explanation of what went wrong (when available)
### Status Codes
Responses include standard HTTP status codes to indicate success or failure:
| Status Code | Title | Description |
| ----------- | --------------------- | ------------------------------------------------------------ |
| `400` | Bad Request | The request is malformed or contains invalid parameters. |
| `401` | Unauthorized | Authentication failed or was not provided. |
| `403` | Forbidden | Request understood; API key lacks resource access. |
| `404` | Not Found | The requested resource doesn't exist. |
| `409` | Conflict | Request conflicts with current state. |
| `422` | Unprocessable Entity | The request was well-formed but contains semantic errors. |
| `429` | Too Many Requests | Too many requests in a given amount of time (rate-limiting). |
| `500` | Internal Server Error | Server-side issues for Moonbase |
| `503` | Service Unavailable | The server is temporarily unavailable. |
## Response headers
All responses from the API include an `x-request-id` header. This is a unique identifier for the request. When contacting support, include this ID.
## Common error scenarios
### Authentication errors (401)
**Cause:** Missing, invalid, or expired API key
**Solution:**
* Verify API key is present in Authorization header
* Check the API key is valid in [organization settings](https://app.moonbase.ai/settings/api_keys)
* Regenerate if the key may have been compromised
### Rate limiting errors (429)
**Cause:** Too many requests sent in a short time period
**Solution:**
* Implement exponential backoff retry logic
* Space out requests to stay within rate limits
* See the [rate limiting guide](/api-reference/rate-limiting) for detailed information
### Validation errors (422)
**Cause:** Request data fails validation rules
**Solution:**
* Check the `detail` field in the error response for specific validation messages
* Verify required fields are included
* Ensure field values meet format and length requirements
### Server errors (500, 503)
**Cause:** Temporary server-side issues for Moonbase
**Solution:**
* Retry the request after a brief delay
* If the problem persists, contact support with the `x-request-id` from the API response
* Implement error handling
## Best practices
* **Log error details**: Capture both the status code and error message for debugging
* **Include request IDs**: Log the `x-request-id` header for support requests
* **Validate locally first**: Check required fields and formats before making API calls
* **Implement error handling**: Handle all response scenarios
# Upload a File
Source: https://docs.moonbase.ai/api-reference/files/create
POST /files
Uploads a file to your library. The file must be 5 MB or smaller.
# Delete a File
Source: https://docs.moonbase.ai/api-reference/files/delete
DELETE /files/{id}
Permanently deletes a file.
# Retrieve a File
Source: https://docs.moonbase.ai/api-reference/files/get
GET /files/{id}
Retrieves the details of an existing file.
# List Files
Source: https://docs.moonbase.ai/api-reference/files/list
GET /files
Returns a list of files that you have uploaded.
# Create a Form
Source: https://docs.moonbase.ai/api-reference/forms/create
POST /forms
Creates a new form with an auto-generated collection and default fields.
# Delete a Form
Source: https://docs.moonbase.ai/api-reference/forms/delete
DELETE /forms/{id}
Permanently deletes a form. The backing collection is preserved.
# Retrieve a Form
Source: https://docs.moonbase.ai/api-reference/forms/get
GET /forms/{id}
Retrieves the details of an existing form.
# List Forms
Source: https://docs.moonbase.ai/api-reference/forms/list
GET /forms
Returns a list of your forms.
# Update a Form
Source: https://docs.moonbase.ai/api-reference/forms/update
PATCH /forms/{id}
Updates an existing form.
# Create a Funnel
Source: https://docs.moonbase.ai/api-reference/funnels/create
POST /funnels
Creates a new funnel.
# Delete a Funnel
Source: https://docs.moonbase.ai/api-reference/funnels/delete
DELETE /funnels/{id}
Permanently deletes a funnel.
# Retrieve a Funnel
Source: https://docs.moonbase.ai/api-reference/funnels/get
GET /funnels/{id}
Retrieves the details of an existing funnel.
# List Funnels
Source: https://docs.moonbase.ai/api-reference/funnels/list
GET /funnels
Returns a list of funnels.
# Update a Funnel
Source: https://docs.moonbase.ai/api-reference/funnels/update
PATCH /funnels/{id}
Updates a funnel.
# Retrieve a Conversation
Source: https://docs.moonbase.ai/api-reference/inbox-conversations/get
GET /inbox_conversations/{id}
Retrieves the details of an existing conversation.
# List Conversations
Source: https://docs.moonbase.ai/api-reference/inbox-conversations/list
GET /inbox_conversations
Returns a list of your conversations.
# Add an attachment
Source: https://docs.moonbase.ai/api-reference/inbox-messages/add-attachment
POST /inbox_messages/{inbox_message_id}/attachments
Add an attachment to a draft message. You can send either a multipart/form-data request with the raw file content, or a JSON request with a file ID.
# Create a Draft
Source: https://docs.moonbase.ai/api-reference/inbox-messages/create
POST /inbox_messages
Creates a new message draft.
# Delete a Draft
Source: https://docs.moonbase.ai/api-reference/inbox-messages/delete
DELETE /inbox_messages/{id}
Permanently deletes a message draft.
# Retrieve a Message
Source: https://docs.moonbase.ai/api-reference/inbox-messages/get
GET /inbox_messages/{id}
Retrieves the details of an existing message.
# List Messages
Source: https://docs.moonbase.ai/api-reference/inbox-messages/list
GET /inbox_messages
Returns a list of messages.
# Remove an attachment
Source: https://docs.moonbase.ai/api-reference/inbox-messages/remove-attachment
DELETE /inbox_messages/{inbox_message_id}/attachments/{id}
Removes an attachment from a draft message.
# Update a Draft
Source: https://docs.moonbase.ai/api-reference/inbox-messages/update
PATCH /inbox_messages/{id}
Updates an existing message draft.
# Retrieve an Inbox
Source: https://docs.moonbase.ai/api-reference/inboxes/get
GET /inboxes/{id}
Retrieves the details of an existing inbox.
# List Inboxes
Source: https://docs.moonbase.ai/api-reference/inboxes/list
GET /inboxes
Returns a list of shared inboxes.
# Overview
Source: https://docs.moonbase.ai/api-reference/introduction
A quick tour of the Moonbase API.
Moonbase's REST API enables programmatic access to your core Moonbase data, including people, organizations, deals, tasks, and more.
## Quick Start
Let's make your first API request to list items from your Moonbase collections.
You'll need an API key from your [organization settings](https://app.moonbase.ai/settings/api_keys) in Moonbase. Once you have it, set it as an environment variable:
```bash theme={null}
export MOONBASE_API_KEY=your_api_key_here
```
Fetch and display all organizations from your collection. The SDK automatically handles pagination to retrieve all details of the organizations collection.
```typescript theme={null}
import Moonbase from "@moonbaseai/sdk";
// Initialize the Moonbase client
const moonbase = new Moonbase({
apiKey: process.env.MOONBASE_API_KEY, // default, can be omitted
});
// This returns an AsyncIterator-
const organizations = moonbase.collections.items.list("organizations");
// Loop through the items and print the "name" value
for await (const org of organizations) {
console.log(org.values.name.data);
}
```
Example output:
```
OrbGrid
TechStart Inc
Global Systems
Innovate Labs
...
```
You'll need an API key from your [organization settings](https://app.moonbase.ai/settings/api_keys) in Moonbase. Once you have it, set it as an environment variable:
```bash theme={null}
export MOONBASE_API_KEY=your_api_key_here
```
Fetch and display all organizations from your collection. The SDK automatically handles pagination to retrieve all details of the organizations collection.
```python theme={null}
import os
from moonbase import Moonbase
moonbase = Moonbase(
api_key=os.environ.get("MOONBASE_API_KEY"), # default, can be omitted
)
# Auto-paginated: fetches all items across multiple pages
organizations = moonbase.collections.items.list(collection_id="organizations")
# Loop through items and access fields by their ref
for org in organizations:
print(org.values['name'].data)
```
Example output:
```
OrbGrid
TechStart Inc
Global Systems
Innovate Labs
...
```
You'll need an API key from your [organization settings](https://app.moonbase.ai/settings/api_keys) in Moonbase. Once you have it, set it as an environment variable:
```bash theme={null}
export MOONBASE_API_KEY=your_api_key_here
```
Fetch and display all organizations from your collection. The SDK automatically handles pagination to retrieve all details of the organizations collection.
```go theme={null}
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/moonbaseai/moonbase-sdk-go"
"github.com/moonbaseai/moonbase-sdk-go/option"
)
func main() {
client := moonbase.NewClient(
option.WithAPIKey(os.Getenv("MOONBASE_API_KEY")), // default, can be omitted
)
// Auto-paginated: fetches all items across multiple pages
organizations := client.Collections.Items.ListAutoPaging(
context.TODO(),
"organizations",
moonbase.ItemListParams{},
)
for organizations.Next() {
org := organizations.Current()
if nameField, exists := org.Values["name"]; exists {
fmt.Println(nameField.Data.OfString)
}
}
if err := organizations.Err(); err != nil {
log.Fatalf("Error fetching organizations: %v", err)
}
}
```
Example output:
```
OrbGrid
TechStart Inc
Global Systems
Innovate Labs
...
```
You'll need an API key from your [organization settings](https://app.moonbase.ai/settings/api_keys) in Moonbase. Once you have it, set it as an environment variable:
```bash theme={null}
export MOONBASE_API_KEY=your_api_key_here
```
Fetch and display all organizations from your collection. The SDK automatically handles pagination to retrieve all details of the organizations collection.
```ruby theme={null}
require "moonbase"
moonbase = Moonbase::Client.new(
api_key: ENV["MOONBASE_API_KEY"], # default, can be omitted
)
organizations = moonbase.collections.items.list("organizations")
organizations.auto_paging_each do |org|
puts org.values[:name].data
end
```
Example output:
```
OrbGrid
TechStart Inc
Global Systems
Innovate Labs
...
```
You'll need an API key from your [organization settings](https://app.moonbase.ai/settings/api_keys) in Moonbase. Once you have it, set it as an environment variable:
```bash theme={null}
export MOONBASE_API_KEY=your_api_key_here
```
Make a GET request to retrieve items from a collection:
```bash theme={null}
curl https://api.moonbase.ai/v0/collections/organizations/items \
-H "Authorization: Bearer $MOONBASE_API_KEY"
```
Note: This returns the first page of results. To fetch additional pages, use the cursor from the response.
A successful response returns a JSON object with your items:
```json theme={null}
{
"type": "list",
"data": [
{
"id": "1CLJt2ub4MavjpDF6NV14F",
"type": "item",
"values": {
"name": {"type": "value/text/single_line", "data": "OrbGrid"},
"updated_at": {"type": "value/datetime", "data": "2025-02-17T16:00:00.000Z"}
}
},
{
"id": "1CLJt2ub4MavjpDF6NV14G",
"type": "item",
"values": {
"name": {"type": "value/text/single_line", "data": "TechStart Inc"},
"updated_at": {"type": "value/datetime", "data": "2025-02-17T16:00:00.000Z"}
}
},
{
"id": "1CLJt2ub4MavjpDF6NV14H",
"type": "item",
"values": {
"name": {"type": "value/text/single_line", "data": "Global Systems"},
"updated_at": {"type": "value/datetime", "data": "2025-02-17T16:00:00.000Z"}
}
}
...
],
"meta": {
"cursors": {
"next": "eyJwYWdlIjoyfQ"
}
}
}
```
To fetch the next page, include the cursor as a query parameter:
```bash theme={null}
curl "https://api.moonbase.ai/v0/collections/organizations/items?after=eyJwYWdlIjoyfQ" \
-H "Authorization: Bearer $MOONBASE_API_KEY"
```
## Core Concepts
Continue exploring the Moonbase API with these resources:
* [**SDKs**](/api-reference/libraries): Official Moonbase clients for TypeScript, Python, Go, and Ruby
* [**Pagination**](/api-reference/pagination): Navigate large datasets efficiently with cursor-based pagination
* [**Rate Limiting**](/api-reference/rate-limiting): Understand throughput limits and implement proper backoff strategies
* [**Error Handling**](/api-reference/error-handling): Learn about error shapes and build resilient retry logic
* [**Webhooks**](/webhook-reference/overview): Subscribe to real-time events for changes in your Moonbase data
# Create an Item
Source: https://docs.moonbase.ai/api-reference/items/create
POST /collections/{collection_id}/items
Creates a new item in a collection.
# Delete an Item
Source: https://docs.moonbase.ai/api-reference/items/delete
DELETE /collections/{collection_id}/items/{id}
Permanently deletes an item.
# Retrieve an Item
Source: https://docs.moonbase.ai/api-reference/items/get
GET /collections/{collection_id}/items/{id}
Retrieves the details of an existing item.
# List Items
Source: https://docs.moonbase.ai/api-reference/items/list
GET /collections/{collection_id}/items
Returns a paginated list of item pointers in a collection. Use the retrieve endpoint to get full item details including field values.
# Merge Collection Items
Source: https://docs.moonbase.ai/api-reference/items/merge
POST /collections/{collection_id}/items/merge
Merges two items into a single item.
# Search Collection Items
Source: https://docs.moonbase.ai/api-reference/items/search
POST /collections/{collection_id}/items/search
Returns a list of items in the collection that match the given filters.
# Update an Item
Source: https://docs.moonbase.ai/api-reference/items/update
PATCH /collections/{collection_id}/items/{id}
Updates an item.
# Create or Update an Item
Source: https://docs.moonbase.ai/api-reference/items/upsert
POST /collections/{collection_id}/items/upsert
Find and update an existing item, or create a new one.
# SDKs
Source: https://docs.moonbase.ai/api-reference/libraries
Use the Moonbase API with an SDK in your preferred language.
Moonbase provides SDKs for [TypeScript/JavaScript](https://github.com/moonbaseai/moonbase-sdk-typescript), [Python](https://github.com/moonbaseai/moonbase-sdk-python), [Go](https://github.com/moonbaseai/moonbase-sdk-go), and [Ruby](https://github.com/moonbaseai/moonbase-sdk-ruby). SDKs handle authentication, request formatting, and response parsing. Built-in retries handle rate limits and transient errors.
## Prerequisites
* API key from [organization settings](https://app.moonbase.ai/settings/api_keys).
* Review the [authentication guide](./authentication).
Keep API keys secret. Avoid client-side exposure.
## Installation and usage
Install the TypeScript SDK using npm:
```sh npm theme={null}
npm install @moonbaseai/sdk
```
```sh Yarn theme={null}
yarn add @moonbaseai/sdk
```
```sh pnpm theme={null}
pnpm add @moonbaseai/sdk
```
```sh Bun theme={null}
bun add @moonbaseai/sdk
```
Usage:
```typescript theme={null}
import Moonbase from '@moonbaseai/sdk';
const moonbase = new Moonbase({
apiKey: process.env.MOONBASE_API_KEY, // This is the default and can be omitted
});
const collection = await moonbase.collections.retrieve('organizations');
console.log(collection.id);
```
View documentation, examples, and source code for the TypeScript SDK.
Install the Python SDK using pip:
```sh theme={null}
pip install --pre moonbase-sdk
```
Usage:
```python theme={null}
import os
from moonbase import Moonbase
moonbase = Moonbase(
api_key=os.environ.get("MOONBASE_API_KEY"), # This is the default and can be omitted
)
collection = moonbase.collections.retrieve(
id="organizations",
)
print(collection.id)
```
View documentation, examples, and source code for the Python SDK.
Install the Go SDK:
```sh theme={null}
go get github.com/moonbaseai/moonbase-sdk-go@v0.1.0-alpha.2
```
Usage:
```go theme={null}
package main
import (
"context"
"fmt"
"github.com/moonbaseai/moonbase-sdk-go"
"github.com/moonbaseai/moonbase-sdk-go/option"
)
func main() {
client := moonbase.NewClient(
option.WithAPIKey(os.Getenv("MOONBASE_API_KEY")), // This is the default and can be omitted
)
collection, err := client.Collections.Get(
context.TODO(),
"organizations",
moonbase.CollectionGetParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", collection.ID)
}
```
View documentation, examples, and source code for the Go SDK.
Install the Ruby SDK:
```ruby theme={null}
gem "moonbase-sdk", "~> 0.1.0.pre.alpha.2"
```
Then run:
```sh theme={null}
bundle install
```
Usage:
```ruby theme={null}
require "bundler/setup"
require "moonbase"
moonbase = Moonbase::Client.new(
api_key: ENV["MOONBASE_API_KEY"] # This is the default and can be omitted
)
collection = moonbase.collections.retrieve("organizations")
puts(collection.id)
```
View documentation, examples, and source code for the Ruby SDK.
# Retrieve a Meeting
Source: https://docs.moonbase.ai/api-reference/meetings/get
GET /meetings/{id}
Retrieves the details of an existing meeting.
# List Meetings
Source: https://docs.moonbase.ai/api-reference/meetings/list
GET /meetings
Returns a list of meetings.
# Update a Meeting
Source: https://docs.moonbase.ai/api-reference/meetings/update
PATCH /meetings/{id}
Adds a transcript, recording, or tags to an existing meeting.
# Create a Note
Source: https://docs.moonbase.ai/api-reference/notes/create
POST /notes
Create a new note.
# Delete a Note
Source: https://docs.moonbase.ai/api-reference/notes/delete
DELETE /notes/{id}
Permanently deletes a note.
# Retrieve a Note
Source: https://docs.moonbase.ai/api-reference/notes/get
GET /notes/{id}
Retrieves the details of an existing note.
# List Notes
Source: https://docs.moonbase.ai/api-reference/notes/list
GET /notes
Returns a list of your notes.
# Update a Note
Source: https://docs.moonbase.ai/api-reference/notes/update
PATCH /notes/{id}
Update an existing note.
# Pagination
Source: https://docs.moonbase.ai/api-reference/pagination
Learn how to work with paginated responses.
The Moonbase API uses cursor-based pagination for list endpoints that return multiple items. These endpoints return one page of results per API call. Each page contains up to 20 results by default.
## Response structure
The API returns items in the `data` property of the response. Refer to the individual endpoints for the ordering of items since they vary based on the endpoint.
**Example: First page (with more results)**
```json theme={null}
{
"type": "list",
"data": [
{
"id": "1CLJt2ub4MavjpDF6NV14F",
"type": "item",
"values": {
"name": {"type": "value/text/single_line", "data": "OrbGrid"},
"updated_at": {"type": "value/datetime", "data": "2025-02-17T16:00:00.000Z"}
}
},
{
"id": "1CLJt2ub4MavjpDF6NV14G",
"type": "item",
"values": {
"name": {"type": "value/text/single_line", "data": "TechStart Inc"},
"updated_at": {"type": "value/datetime", "data": "2025-02-17T16:00:00.000Z"}
}
},
{
"id": "1CLJt2ub4MavjpDF6NV14H",
"type": "item",
"values": {
"name": {"type": "value/text/single_line", "data": "Global Systems"},
"updated_at": {"type": "value/datetime", "data": "2025-02-17T16:00:00.000Z"}
}
}
...
],
"meta": {
"cursors": {
"next": "eyJpZCI6IjFDUDY0dkc2SkhuSkhLUEpLTDVpblcifQ"
}
}
}
```
**Example: Middle page (both prev and next)**
```json theme={null}
{
"type": "list",
"data": [ /* items omitted for brevity */ ]
"meta": {
"cursors": {
"prev": "eyJpZCI6IjFDUzY4Ykp0Z3k5ZGFzOGFzYTg3bmV3OTJuMHE4a2w4MWpBIn0",
"next": "eyJpZCI6IjFDUDY0dkc2SkhuSkhLUEpLTDVpblcifQ"
}
}
}
```
The `next` cursor will not be present if there are no more pages to fetch. `prev` cursor appears when previous pages exist. Enables bidirectional navigation.
Do not pass both before and after in the same request. Cursors are opaque strings—do not parse or modify them—and should be URL-encoded when used in query parameters.
## Pagination parameters
Control pagination using these query parameters:
* `limit`: *(Integer)* — Maximum number of items to return per page. Must be between 1 and 100. Defaults to 20 if not specified.
* `after`: *(String)* — Returns results starting immediately after the item identified by this cursor. Use the `next` cursor from a previous response to fetch the next page.
* `before`: *(String)* — Returns results starting immediately before the item identified by this cursor. Use the `prev` cursor from a previous response to fetch the previous page.
Cursors do not expire and remain valid indefinitely. Using an invalid cursor will return a 400 Bad Request error.
## Navigating pages
### Auto-pagination (recommended)
Moonbase SDKs provide methods to automatically iterate through all items across all pages:
```typescript TypeScript theme={null}
async function fetchAllItems(params) {
const allItems = [];
// Automatically fetches more pages as needed.
for await (const item of moonbase.collections.items.list('people', { limit: 5 })) {
allItems.push(item);
}
return allItems;
}
```
```go Go theme={null}
iter := client.Collections.Items.ListAutoPaging(
context.TODO(),
"people",
moonbase.CollectionItemListParams{
Limit: moonbase.Int(5),
},
)
// Automatically fetches more pages as needed.
for iter.Next() {
item := iter.Current()
fmt.Printf("%+v\n", item)
}
if err := iter.Err(); err != nil {
panic(err.Error())
}
```
```ruby Ruby theme={null}
page = moonbase.collections.items.list("people", limit: 5)
# Fetch single item from page.
item = page.data[0]
puts(item.id)
# Automatically fetches more pages as needed.
page.auto_paging_each do |item|
puts(item.id)
end
```
```python Python theme={null}
from moonbase import Moonbase
moonbase = Moonbase()
all_items = []
# Automatically fetches more pages as needed.
for item in moonbase.collections.items.list(
collection_id="people",
limit=5,
):
# Do something with item here
all_items.append(item)
print(all_items)
# Or, asynchronously:
import asyncio
from moonbase import AsyncMoonbase
moonbase = AsyncMoonbase()
async def main() -> None:
all_items = []
# Iterate through items across all pages, issuing requests as needed.
async for item in moonbase.collections.items.list(
collection_id="people",
limit=5,
):
all_items.append(item)
print(all_items)
asyncio.run(main())
```
### Single page requests
Request one page at a time:
```typescript TypeScript theme={null}
let page = await moonbase.collections.items.list('people', { limit: 5 });
for (const item of page.data) {
console.log(item);
}
// Convenience methods are provided for manually paginating:
while (page.hasNextPage()) {
page = await page.getNextPage();
// ...
}
```
```go Go theme={null}
people, err := client.Collections.Items.List(
context.TODO(),
"people",
moonbase.CollectionItemListParams{
Limit: moonbase.Int(5),
},
)
for page != nil {
for _, item := range page.Data {
fmt.Printf("%+v\n", item)
}
page, err = page.GetNextPage()
}
if err != nil {
panic(err.Error())
}
```
```ruby Ruby theme={null}
page = moonbase.collections.items.list("people", limit: 5)
if page.next_page?
new_page = page.next_page
puts(new_page.data[0].id)
end
```
```python Python theme={null}
first_page = await moonbase.collections.items.list(
collection_id="people",
limit=5,
)
if first_page.has_next_page():
print(f"will fetch next page using these details: {first_page.next_page_info()}")
next_page = await first_page.get_next_page()
print(f"number of items we just fetched: {len(next_page.data)}")
# Remove `await` for non-async usage.
```
### Manual pagination with cURL
```sh theme={null}
curl https://api.moonbase.ai/v0/collections/organizations/items \
--header 'Authorization: Bearer '
```
For authentication details, see the Moonbase [authentication guide](/api-reference/authentication).
* If `meta.cursors.next` is missing, all items have been retrieved
* If the `next` cursor is present, use it with the `after` parameter to fetch the next page
* If the `prev` cursor is present, use it with the `before` parameter to fetch the previous page
**Fetch next page:**
```sh theme={null}
curl https://api.moonbase.ai/v0/collections/organizations/items?after=eyJpZCI6IjFDUDY0dkc2SkhuSkhLUEpLTDVpblcifQ \
--header 'Authorization: Bearer '
```
**Fetch previous page:**
```sh theme={null}
curl https://api.moonbase.ai/v0/collections/organizations/items?before=eyJpZCI6IjFDUDY0dkc2SkhuSkhLUEpLTDVpblcifQ \
--header 'Authorization: Bearer '
```
Continue using the cursors from each response to navigate forward or backward through results.
# Send a Message
Source: https://docs.moonbase.ai/api-reference/program-messages/create
POST /program_messages
Sends a message using a program template.
# Retrieve a Program Template
Source: https://docs.moonbase.ai/api-reference/program-templates/get
GET /program_templates/{id}
Retrieves the details of an existing program template.
# List Program Templates
Source: https://docs.moonbase.ai/api-reference/program-templates/list
GET /program_templates
Returns a list of your program templates.
# Retrieve a Program
Source: https://docs.moonbase.ai/api-reference/programs/get
GET /programs/{id}
Retrieves the details of an existing program.
# List Programs
Source: https://docs.moonbase.ai/api-reference/programs/list
GET /programs
Returns a list of your marketing programs.
# Rate Limits
Source: https://docs.moonbase.ai/api-reference/rate-limiting
Learn about API rate limits and how to work with them.
The Moonbase API uses safeguards against bursts of incoming traffic. Rapid requests trigger 429 responses.
For detailed information about handling 429 errors, see the Moonbase [error handling guide](/api-reference/error-handling).
## Limits
Rate limits per organization:
* **Read requests:** 100 requests per second
* **Write requests:** 25 requests per second
These limits apply per organization and are shared across all API keys within each organization.
Request classification:
* Moonbase classifies endpoints as read or write.
* In general, GET endpoints are read. Write endpoints typically use POST, PUT, PATCH, or DELETE.
## Response
Exceeding limits returns a HTTP 429:
```http theme={null}
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
{
"errors": [
{
"status": "429",
"title": "Too Many Requests"
}
]
}
```
Rate-limited requests are not processed and can be safely retried once the limit resets. The API does not include rate-limit headers (such as Retry-After) in responses.
## Handling rate limits
### Using SDKs
Moonbase SDKs automatically handle rate limit responses by implementing exponential backoff retry logic. When a 429 response is received, the SDK will automatically wait and retry the request. No manual implementation required.
### Manual implementation
Direct API calls require retry logic. 429 responses require exponential backoff. Wait at least one second before retrying, as rate limits reset every second. Include randomness in backoff timing to avoid a [thundering herd effect](https://en.wikipedia.org/wiki/Thundering_herd_problem).
# Search Items
Source: https://docs.moonbase.ai/api-reference/search
POST /search
Returns items and files that match the search query.
# Create a Tagset
Source: https://docs.moonbase.ai/api-reference/tagsets/create
POST /tagsets
Create a new tagset.
# Delete a Tagset
Source: https://docs.moonbase.ai/api-reference/tagsets/delete
DELETE /tagsets/{id}
Permanently deletes a tagset.
# Retrieve a Tagset
Source: https://docs.moonbase.ai/api-reference/tagsets/get
GET /tagsets/{id}
Retrieves the details of an existing tagset.
# List Tagsets
Source: https://docs.moonbase.ai/api-reference/tagsets/list
GET /tagsets
Returns a list of your tagsets.
# Update a Tagset
Source: https://docs.moonbase.ai/api-reference/tagsets/update
PATCH /tagsets/{id}
Updates an existing tagset.
# Create an Unsubscribe
Source: https://docs.moonbase.ai/api-reference/unsubscribes/create
POST /unsubscribes
Create a new unsubscribe.
# Delete an Unsubscribe
Source: https://docs.moonbase.ai/api-reference/unsubscribes/delete
DELETE /unsubscribes/{email}
Permanently deletes an unsubscribe by email address.
# List Unsubscribes
Source: https://docs.moonbase.ai/api-reference/unsubscribes/list
GET /unsubscribes
Returns a list of unsubscribes.
# Create a View
Source: https://docs.moonbase.ai/api-reference/views/create
POST /views
Creates a new view in a collection.
# Delete a View
Source: https://docs.moonbase.ai/api-reference/views/delete
DELETE /views/{id}
Permanently deletes a view. The default view of a collection cannot be deleted.
# Retrieve a View
Source: https://docs.moonbase.ai/api-reference/views/get
GET /views/{id}
Retrieves the details of an existing view.
# List Views
Source: https://docs.moonbase.ai/api-reference/views/list
GET /views
Returns a list of views.
# List Items
Source: https://docs.moonbase.ai/api-reference/views/list-items
GET /views/{id}/items
Returns a list of items that are part of the specified view.
# Update a View
Source: https://docs.moonbase.ai/api-reference/views/update
PATCH /views/{id}
Updates a view. The change applies to the shared view that everyone in the workspace sees.
# Create an Endpoint
Source: https://docs.moonbase.ai/api-reference/webhook-endpoints/create
POST /webhook_endpoints
Create a new endpoint.
# Delete an Endpoint
Source: https://docs.moonbase.ai/api-reference/webhook-endpoints/delete
DELETE /webhook_endpoints/{id}
Permanently deletes an endpoint.
# Retrieve an Endpoint
Source: https://docs.moonbase.ai/api-reference/webhook-endpoints/get
GET /webhook_endpoints/{id}
Retrieves the details of an existing endpoint.
# List Endpoints
Source: https://docs.moonbase.ai/api-reference/webhook-endpoints/list
GET /webhook_endpoints
Returns a list of endpoints.
# Update an Endpoint
Source: https://docs.moonbase.ai/api-reference/webhook-endpoints/update
PATCH /webhook_endpoints/{id}
Updates an endpoint.
# Acceptable Use Policy
Source: https://docs.moonbase.ai/aup
**Last Updated: Feb 5, 2025**
This Acceptable Use Policy (“**Policy**”) governs your use of the services offered by Moonbase Inc. and its affiliates (collectively, the “**Services**”). By using the Services, you agree to this Policy. If you breach it, we may suspend or terminate your access.
***
## **1. Prohibited Activities**
You (and any third party you allow to use the Services) must not:
1. **Break the Law**: Violate or facilitate violation of any applicable law, court order, or regulation (e.g., child exploitation, terrorism, hacking, fraud).
2. **Infringe IP or Rights**: Infringe or misappropriate intellectual property or other legal rights.
3. **Mislead or Defraud**: Engage in phishing, impersonation, or distribution of malware.
4. **Spam**: Generate, distribute, publish, send or facilitate unsolicited mass email or other messages, promotions, advertising, or solicitations.
5. **Disrupt Services**: Interfere with or degrade the Services, networks, or systems (e.g., DDoS attacks, unauthorized access).
6. **Reverse Engineer**: Copy, translate, disassemble, decompile, make derivative works of, or reverse engineer the\
Services (or attempt any of the foregoing).
7. **Export Violations**: Use the Services in embargoed countries or violate export control or sanctions laws.
***
## **2. Investigation and Enforcement**
We may investigate suspected violations of this Policy and remove or block content. We may also temporarily or permanently suspend or terminate access if we determine a violation has occurred. You agree to cooperate with any investigations and to remedy violations promptly.
***
## **3. Modifications**
We may change this Policy at any time by posting an updated version. Continued use of the Services after changes are posted constitutes acceptance of the revised Policy.
***
## **4. Reporting Violations**
To report a suspected violation of this Acceptable Use Policy, please email [**legal@moonbase.ai**](mailto:legal@moonbase.ai) with relevant details.
# Moonbase
Source: https://docs.moonbase.ai/home
Moonbase is the AI first unified customer platform. Sales, marketing, and support all-in-one.
We are currently in private beta, get in touch for access.
[Privacy](https://moonbase.ai/privacy) | [Terms](https://moonbase.ai/terms)
# Privacy Policy
Source: https://docs.moonbase.ai/privacy
**Last Updated: February 8, 2025**
At **Moonbase Inc.** (“**Moonbase**,” “**we**,” “**us**,” or “**our**”), we respect your privacy and are committed to protecting your personal data. This Privacy Policy explains how we collect, use, disclose, and otherwise process your personal data when you use our unified customer platform (collectively, the “**Services**”), visit our websites (the “**Sites**”), or otherwise interact with us.
***
## **1. Introduction**
### **1.1 Purpose of this Privacy Policy**
This Policy describes the types of personal data we collect, how we use and process it, with whom we share it, and your rights and choices. It applies to personal data we collect when you:
* Visit, access, or use our Sites that link to or reference this Privacy Policy
* Use or interact with our Services
* Communicate with us (e.g., via email, phone, or events)
* Provide information in connection with a prospective or existing business relationship
* Otherwise engage with us in person or online
### **1.2 Controller vs. Processor**
* **Controller**: For personal data covered by this Privacy Policy, Moonbase Inc. is the “controller,” meaning we decide how and why the personal data is processed for our own business purposes.
* **Processor**: In some situations, we process personal data strictly on behalf of our customers, who act as “controllers.” If you are an end user of one of our customers, please consult their privacy policies.
**Data Processing Agreements (DPAs)**\
When we act as a processor on behalf of our customers, our **Data Processing Agreement (DPA)** governs our handling of personal data. To review or enter into our DPA, please contact [**legal@moonbase.ai**](mailto:legal@moonbase.ai).
***
## **2. Definitions / Key Terms**
* **Personal Data / Personal Information**: Any information relating to an identified or identifiable individual.
* **Sensitive Personal Data**: Certain categories of personal data given heightened legal protection (e.g., health or biometric data).
* **Processing**: Any operation on personal data, including collection, use, storage, disclosure, or disposal.
* **Services**: Moonbase’s CRM, email marketing automation, and customer support platform, including related software/tools.
* **Sites**: Moonbase’s public-facing websites and landing pages.
* **User / You / Your**: Any individual who visits our Sites, registers for or uses our Services, or otherwise interacts with us.
***
## **3. Who We Are and How to Contact Us**
For personal data processed under this Privacy Policy, **Moonbase Inc.** is the responsible entity. If you have questions or concerns, please contact us:
**Moonbase Inc.**\
548 Market St\
PMB 58465\
San Francisco, California 94104 USA\
Email: [**legal@moonbase.ai**](mailto:legal@moonbase.ai)
If you have a specific data protection inquiry, mention “Data Protection Inquiry” in the subject line. Our Data Protection Officer (if required) can also be reached via this email.
***
## **4. Scope**
This Privacy Policy applies only to Moonbase’s collection and processing of personal data for our own business purposes. It does not apply to data handling by third parties we do not control. If you integrate our Services with third-party apps or services, their privacy practices are governed by their own policies.
***
## **5. Information We Collect**
We collect various categories of personal data, either directly from you, automatically (e.g., via cookies), or from third parties.
### **5.1 Personal Data You Provide Directly**
* **Account Registration Data**: Name, email address, phone number, password, employer, job title, etc.
* **Billing & Payment Data**: Credit card details, billing address, transaction history (processed via secure third-party payment processors).
* **Marketing & Communications Data**: Preferences for marketing communications, form submissions, event registrations.
* **Support & Inquiry Data**: Records of support tickets, user feedback, surveys, etc.
* **Content You Upload**: Data included in CRM entries, marketing assets, or customer support tickets.
* **Sensitive Data:** We do not intentionally collect or process sensitive personal data. If you choose to upload such data, you must ensure it is lawfully collected and shared.
### **5.2 Personal Data Collected Automatically**
* **Device Data**: IP address, browser type, operating system, mobile device IDs, hardware settings.
* **Usage Data**: Pages viewed, time spent, links clicked, access dates/times, diagnostic data.
* **Location Data**: Approximate geolocation inferred from IP address (or more precise location if you enable it).
### **5.3 Personal Data from Third Parties**
* **Third-Party Integrations**: If you connect external services (e.g., email platforms), we may receive relevant data.
* **Marketing & Analytics Providers**: We may receive contact info, demographics, or interest data.
* **Public Sources**: Publicly available information like social media profiles or open databases.
***
## **6. Legal Bases for Processing (GDPR & Similar)**
Where GDPR or similar laws apply, we rely on one or more of the following legal bases:
1. **Performance of a Contract**: Providing the Services as agreed in our Terms.
2. **Legitimate Interests**: Enhancing or securing our Services, unless overridden by your interests or rights.
3. **Consent**: In specific scenarios (e.g., sending direct marketing where required by law). You may withdraw consent at any time.
4. **Legal Obligations**: Complying with laws, regulations, or legal processes.
***
## **7. How We Use Your Personal Data**
We use personal data for:
1. **Provision of Services**: Account setup, CRM functions, marketing automation, customer support, and transaction processing.
2. **Customer Support**: Responding to inquiries, troubleshooting, providing updates.
3. **Marketing & Promotions**: Sending newsletters, offers, or event invitations, in accordance with preferences and laws (e.g., CAN-SPAM).
4. **Analytics & Service Improvement**: Aggregating usage data to improve performance and user experience.
5. **Security & Fraud Prevention**: Detecting or investigating unauthorized or suspicious activities.
6. **Compliance**: Meeting legal obligations, responding to lawful requests, enforcing our Terms.
7. **Business Operations**: Audits, mergers, acquisitions, or other corporate transactions.
***
## **8. Cookies and Similar Technologies**
We and our partners use cookies, web beacons, and similar technologies to collect information about your activities on our Sites and within the Services.
* **Strictly Necessary Cookies**: Essential for operation (e.g., session cookies).
* **Functional Cookies**: Store user preferences or enhance site performance.
* **Analytics Cookies**: Collect usage data (e.g., via Google Analytics).
* **Advertising/Targeting Cookies**: Track browsing habits to serve relevant ads.
You can usually manage or disable cookies in your browser or device settings, though some features may be limited.
**Do Not Track / Global Privacy Control**\
At this time, our Sites may not respond to DNT or GPC signals in a uniform way. We continue to evaluate industry standards and legal requirements.
***
## **9. Third-Party Links and Services**
Our Sites and Services may contain links to or integrate with third-party websites and apps. **We are not responsible for the privacy practices of these third parties**, and this Policy does not apply to them. Review their policies before providing personal data.
***
## **10. How We Share and Disclose Personal Data**
We **do not sell** your personal data. We may disclose it in the following cases:
1. **Service Providers**: Vendors who assist with hosting, payments, analytics, or support, under contractual obligations.
2. **Business Partners**: When you opt into integrations or explicitly request sharing.
3. **Corporate Transactions**: In case of mergers, acquisitions, financing, or sale of assets.
4. **Legal Compliance & Protection**: If required by law or necessary to protect rights, property, or safety.
5. **Consent**: In other ways if we have your explicit consent.
***
## **11. International Data Transfers**
Moonbase is headquartered in the United States. Your personal data may be transferred to countries other than your own (including the U.S.). We implement safeguards like Standard Contractual Clauses (SCCs) to protect data in accordance with this Policy and applicable law.
***
## **12. Data Retention**
We retain personal data only as long as needed for the purposes in this Policy, or as required by law. For example:
* **Account Data**: Kept for the duration of your account plus a reasonable period afterward.
* **Billing & Payment Data**: Retained per financial and tax regulations.
When no longer needed, we securely delete or anonymize the data.
***
## **13. Additional Disclosures for Specific Jurisdictions**
### **13.1 California Residents (CCPA/CPRA)**
If you are a California resident, you may have certain rights under the CCPA/CPRA, including:
* **Right to Know**: Request that we disclose the specific personal data we collect, use, disclose, and share about you (we do **not** sell your personal data).
* **Right to Delete**: Request deletion of your personal data, subject to legal exceptions.
* **Right to Correct**: Request correction of any inaccurate personal data we hold about you.
* **Right to Opt Out of Sale or Sharing**: Opt out of any “sale” or “sharing” of your personal data (again, we do **not** sell personal data).
* **Right Not to Be Discriminated Against**: We will not discriminate against you for exercising any CCPA/CPRA rights.
To exercise these rights, please contact us. We will verify your request by asking for information sufficient to confirm your identity. You may also designate an authorized agent to exercise these rights on your behalf.
### **13.2 Residents of Other U.S. States**
Residents of states such as Virginia, Colorado, Connecticut, and Utah may have similar rights. We will honor valid requests in accordance with the applicable state law. If you have questions or wish to exercise your rights, please contact us.
### **13.3 EEA/UK Residents (GDPR)**
If you reside in the European Economic Area (EEA) or the United Kingdom (UK), you have the following rights under the GDPR or equivalent UK laws:
* **Right of Access**: Request a copy of your personal data that we hold.
* **Right to Rectification**: Correct inaccuracies or incomplete personal data.
* **Right to Erasure**: Request deletion of your personal data, subject to certain conditions.
* **Right to Restrict Processing**: Ask us to restrict the processing of your data in specific circumstances.
* **Right to Data Portability**: Obtain a machine-readable copy of your personal data to transfer to another provider.
* **Right to Object**: Object to processing of your data, especially for direct marketing purposes.
* **Right to Withdraw Consent**: If processing is based on your consent, you may withdraw it at any time.
You also have the right to lodge a complaint with your local data protection authority if you believe we have not complied with our obligations. To exercise your rights, please contact us.
***
## **14. Your Rights and Choices**
All users may:
* **Opt Out of Marketing**: Unsubscribe from marketing emails by clicking the “unsubscribe” link or contacting us.
* **Access/Correct/Delete Data**: Request access, correction, or deletion of personal data where legally permissible.
* **Object or Restrict**: Ask us to stop or limit certain processing.
Where we act as a processor on behalf of our customers, direct these requests to the relevant controller (our customer).
***
## **15. Children’s Privacy**
Our Sites and Services are **not intended for individuals under 18**, and we do not knowingly collect personal data from them. If we learn we have unintentionally collected data from someone under the relevant age, we will delete it promptly. If you believe we have collected data from a minor, contact us.
***
## **16. Data Security and Breach Notification**
We take measures (e.g., encryption, access controls, audits) to protect personal data. However, no security measures are completely foolproof. If we become aware of a data breach affecting your personal data, we will notify you (and any regulatory authority) as required by law.
***
## **17. Internal Policies on Data Handling**
* **Limited Access**: We grant employee access on a need-to-know basis.
* **Training**: Employees receive training on security, privacy, and data handling.
* **Audits**: We conduct periodic reviews to ensure compliance and identify improvements.
* **Vendor Management**: Service providers must adhere to data protection standards.
***
## **18. Google Integrations**
### **18.1 Overview**
We offers optional integrations with certain Google products, including Gmail and Google Calendar (“Google Integrations”), to enhance your experience with our Service. By choosing to enable these integrations, you will grant us access to specific data from your Google account.
### **18.2 Data We Access and How We Use It**
When you connect your Google account (e.g., Gmail or Google Calendar), we access and process the following categories of data (“Google User Data”) in order to provide or improve user-facing features within our Services:
* **Gmail Data**: This may include your email messages, subject lines, recipients, timestamps, attachments, and other metadata required for our shared inbox features. Specifically:
* **Reading and Sending Emails**: With your permission, we will be able to read, modify, create, and send emails from your connected Gmail account to provide a unified inbox experience.
* **Storage and Display**: We may store copies of your email content (including subject lines, message bodies, attachments, and metadata) on our servers in order to display them within the Services, log conversations, and enable notifications for you and any authorized team members.
* **Email Content**: Your email messages may contain sensitive or confidential information. By integrating Gmail, you acknowledge that such data may be visible to other authorized users in your Moonbase workspace (e.g., team members sharing the same inbox).
* **Google Calendar Data**: When you connect your Google Calendar, we may access:
* **Calendar Events and Metadata**: This includes event titles, start/end times, attendees, and other relevant details in order to show upcoming meetings and automatically log activities.
* **Modifying and Creating Events**: If you allow it, Moonbase can create or modify events on your calendar.
We use Google User Data **solely** for purposes that are clearly communicated to you within our user interface, such as displaying relevant emails, sending emails, logging conversations, logging calendar events, and improving your workflow within our Services. **We do not use Google User Data to develop, train, or improve any generalized AI or machine learning models.**
### **18.3 Compliance with Google API Policies**
Moonbase’s use and transfer of information received from Google APIs (including Gmail and Google Calendar data) will adhere to the [**Google API Services User Data Policy**](https://developers.google.com/terms/api-services-user-data-policy), including the **Limited Use** requirements. In particular:
* **No Unauthorized Use**: We will not use Google User Data for advertising, marketing, or any purposes outside the scope of the user-facing features you explicitly enable.
* **No Unauthorized Sharing**: We will not sell or transfer Google User Data to third parties, except:
1. **Service Providers** assisting in providing or improving our Services (under binding confidentiality and data protection terms);
2. **Security Purposes** (e.g., investigating abuse, or where needed to protect rights, property, or safety);
3. **Legal Compliance** (e.g., responding to valid legal process or law enforcement requests); or
4. **Corporate Transactions** (e.g., mergers, acquisitions, or sales of assets) after obtaining explicit prior consent from you if required.
* **No Human Reading**: Moonbase personnel will not read your Google User Data unless:
1. We obtain your separate affirmative consent to do so (e.g., you explicitly request support that requires review of specific messages or calendar entries);
2. It is necessary for security purposes (e.g., investigating a bug or abuse);
3. It is necessary to comply with applicable law or legal processes; or
4. The data (including derivations) is aggregated and anonymized and used for our internal operations in compliance with all applicable privacy laws.
### **18.4 Your Choices and Revocation of Access**
Enabling a Google Integration is entirely optional. If you choose not to connect your Gmail or Google Calendar, you can still use most features of our Services (though some functionalities will be limited).
You can revoke Moonbase’s access to your Google account at any time by:
* Adjusting your integration settings within Moonbase; or
* Going to your [**Google Account Security Settings**](https://myaccount.google.com/permissions) and removing Moonbase’s access.
Once revoked, Moonbase will no longer have the ability to read or write data to your Gmail or Google Calendar, though previously synchronized data may remain in our systems in accordance with our data retention practices and as required for record-keeping or legal compliance.
### **18.5 No Endorsement or Control Over Google**
Moonbase is not affiliated with Google and does not control Google’s privacy or security practices. Your use of the Google Integrations is subject to Google’s own terms and privacy policies, in addition to this Privacy Policy.
***
## **19. Updates to This Privacy Policy**
We may update this Privacy Policy periodically. The “Last Updated” date reflects the most recent changes. For significant changes, we may provide additional notice (e.g., by email or a site banner). We encourage you to review this Policy regularly.
***
## **20. Contact Us**
For any questions or comments about this Privacy Policy, or to exercise your rights, contact us:
**Moonbase Inc.**\
548 Market St\
PMB 58465\
San Francisco, California 94104 USA\
Email: [**legal@moonbase.ai**](mailto:legal@moonbase.ai)
Include “Privacy Inquiry” or “Data Subject Request” in the subject line, as appropriate. We will respond as soon as reasonably practicable and as required by law.
# Terms of Service
Source: https://docs.moonbase.ai/terms
**Last Updated: February 5, 2025**
These Terms of Service (“**Terms**”) are a legally binding contract between you (“**you**” or “**your**”) and **Moonbase Inc.** (“**Moonbase**,” “**we**,” “**us**,” or “**our**”). By accessing or using our unified customer platform (collectively, the “**Services**”), you acknowledge that you have read, understand, and agree to be bound by these Terms. If you do not agree, please do not access or use the Services.
***
## **1. Overview and Definitions**
1. **Parties.** “You” means the individual or entity entering into these Terms. “Moonbase” is Moonbase Inc., including its Affiliates.
2. **Order Form.** Any ordering document (online or otherwise) indicating your subscription plan, fees, duration, and other details. The Order Form and these Terms form the entire agreement between you and Moonbase regarding the Services.
3. **Customer Data.** Any data, content, or information you (or your Users) upload or generate via the Services.
4. **Subscription Term.** The period specified in the Order Form (or online plan) during which you have the right to use the Services.
5. **Users.** Individuals you authorize to access or use the Services under your account (e.g., employees, contractors).
6. **Acceptable Use Policy (“AUP”).** Our policy regarding appropriate and prohibited uses of the Services. You can find it at [**https://moonbase.ai/aup**](https://moonbase.ai/aup).
7. **Privacy Policy and Data Processing Addendum (“DPA”).** Our policies regarding the collection, use, and processing of personal data, available at [**https://moonbase.ai/privacy**](https://moonbase.ai/privacy) (Privacy Policy) and by request (DPA).
***
## **2. Eligibility and Account Responsibilities**
1. **Eligibility.** By using the Services, you represent and warrant that you are at least 18 (or the age of majority in your jurisdiction) and have the authority to enter into these Terms on behalf of yourself or an entity.
2. **Account Registration.** You must provide accurate information when creating an account and keep it updated. You are responsible for maintaining the confidentiality of your credentials and for any activity that occurs under your account.
3. **Administrators.** If you designate an Admin user, that Admin may add or remove Users, manage billing, and make decisions on behalf of the account.
***
## **3. License Grant and Acceptable Use**
1. **License.** Subject to your compliance with these Terms and any Order Form, Moonbase grants you a non-exclusive, non-transferable, revocable right to access and use the Services during the Subscription Term for your internal business operations.
2. **Resell or Sublicense.** You agree not to resell, sublicense, or otherwise redistribute the Services without our prior written permission.
3. **Acceptable Use.** You agree to comply with our [**Acceptable Use Policy**](https://app.moonbase.ai/aup). Among other things, you must not:
* Use the Services to violate any law or regulation, including anti-spam and privacy laws.
* Infringe or misappropriate any third-party rights.
* Disrupt the integrity or performance of the Services.
4. **Compliance with Spam/Email Laws.** You (not Moonbase) are the sender under applicable email laws (e.g., CAN-SPAM, CASL, GDPR). You must obtain necessary consents before sending communications and must not engage in deceptive or unlawful practices.
5. **High-Risk Use.** The Services are not designed or intended for high-risk environments (e.g., life support or nuclear facilities). Moonbase disclaims all liability arising from any such unauthorized high-risk use.
6. **AI Features.** Certain features may use AI or machine learning. You acknowledge these features can be probabilistic and may produce inaccurate or incomplete results. You remain responsible for verifying any AI-generated outputs.
***
## **4. Fees, Payment, and Renewals**
1. **Fees and Payment.** You agree to pay the fees specified in the Order Form (or online checkout). Fees are generally billed in advance, are non-refundable, and exclude taxes.
2. **Billing Cycle and Auto-Renewal.** Subscriptions typically auto-renew for successive terms unless you cancel at least 30 days prior to the end of the current term. We may adjust fees upon renewal by providing notice before the renewal date.
3. **Late Payments.** Unpaid amounts may incur interest at 1.5% per month (or the maximum rate allowed by law). We may suspend or terminate your access if your payments are overdue.
***
## **5. Data and Privacy**
1. **Customer Data.** You retain all rights to your Customer Data. You grant Moonbase a limited license to process your Customer Data solely to provide and improve the Services, in accordance with our [**Privacy Policy**](https://app.moonbase.ai/privacy) and DPA.
2. **Your Representations.** You represent that you have all necessary rights and consents to provide Customer Data to Moonbase, including any personal data. You will not upload or share data in violation of third-party rights or any law.
3. **Sub-Processors.** Moonbase may use third-party service providers (“Sub-Processors”) to host or process data in connection with the Services. A current list of Sub-Processors is available upon request. We ensure each Sub-Processor is bound by obligations of confidentiality and data protection no less restrictive than these Terms.
4. **Aggregated/Anonymized Data.** We may collect and use data about the use of our Services in aggregated or anonymized form, which does not identify you or any individual. We use such data to analyze and improve the Services.
***
## **6. Confidentiality**
1. **Definition.** “Confidential Information” means nonpublic information disclosed by one party to the other, which is marked or identified as confidential—or which should reasonably be understood as confidential given its nature.
2. **Obligations.** Each party will protect the other’s Confidential Information with the same degree of care it uses to protect its own confidential information (but no less than reasonable care). Confidential Information does not include information that is or becomes public without breach, was independently developed, or was rightfully obtained without confidentiality obligations.
***
## **7. Intellectual Property**
1. **Moonbase IP.** We (and our licensors) own all right, title, and interest in and to the Services, including any related software, documentation, and trademarks. No implied rights are granted except as expressly stated in these Terms.
2. **Customer IP.** You retain ownership of your Customer Data. Moonbase does not claim any ownership over Customer Data.
3. **Feedback.** If you choose to provide feedback or suggestions, you grant Moonbase a perpetual, worldwide, irrevocable, royalty-free license to use and incorporate such feedback.
***
## **8. Warranties and Disclaimers**
1. **Limited Warranty.** Moonbase warrants that it will provide the Services in a professional and workmanlike manner. If the Services fail to meet the specifications in our documentation in a material way, your sole remedy is for us to either remedy the deficiency or, if we cannot, terminate the relevant subscription and issue a pro rata refund.
2. **No Legal Advice.** Moonbase does not provide legal advice. You are responsible for understanding and complying with all applicable laws and regulations relating to your use of the Services.
3. **Disclaimer.** EXCEPT AS EXPRESSLY PROVIDED IN THESE TERMS, THE SERVICES ARE PROVIDED “AS IS” AND “AS AVAILABLE,” WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY. MOONBASE DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
***
## **9. Indemnification**
1. **Moonbase’s Indemnity.** We will defend and indemnify you from any third-party claim alleging the Services infringe a valid intellectual property right, provided you promptly notify us in writing, allow us control of the defense and settlement, and cooperate with our efforts. If we believe the Services may infringe, we may (a) modify them, (b) procure rights for your continued use, or (c) terminate the affected Services with a prorated refund.
2. **Your Indemnity.** You will defend and indemnify Moonbase from any third-party claim arising out of (a) your misuse of the Services, (b) your Customer Data (including claims that it infringes third-party rights), or (c) your violation of these Terms, the AUP, or applicable law.
***
## **10. Limitation of Liability**
1. **Exclusion of Certain Damages.** TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER PARTY WILL BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS, REVENUES, OR GOODWILL.
2. **Liability Cap.** EXCEPT FOR EITHER PARTY’S INDEMNIFICATION OBLIGATIONS OR A BREACH OF CONFIDENTIALITY, EACH PARTY’S AGGREGATE LIABILITY UNDER THESE TERMS WILL NOT EXCEED THE TOTAL AMOUNT PAID (OR PAYABLE) BY YOU TO MOONBASE IN THE TWELVE (12) MONTHS PRECEDING THE EVENT GIVING RISE TO LIABILITY.
***
## **11. Term and Termination**
1. **Term.** These Terms are effective as long as you have an active Subscription Term or until otherwise terminated in accordance with this Section.
2. **Termination for Cause.** Either party may terminate upon written notice if the other party (a) materially breaches these Terms and fails to cure within 30 days, or (b) becomes insolvent or enters bankruptcy.
3. **Suspension or Termination by Moonbase.** We may suspend or terminate your account (in whole or in part) if you violate the AUP or fail to pay fees. We will make reasonable efforts to provide notice unless immediate suspension is required for legal or security reasons.
4. **Effects of Termination.** Upon termination, your right to use the Services ceases. We will handle your Customer Data in accordance with our data-retention policies and applicable law. Sections relating to confidentiality, limitations of liability, and indemnification will survive termination.
***
## **12. Modifications to These Terms**
Moonbase may update these Terms from time to time. Material changes will be communicated (e.g., via email or by posting a notice in the Services). Continued use of the Services after the effective date of any revised Terms constitutes your acceptance. If you object, your sole remedy is to stop using the Services.
***
## **13. Governing Law and Dispute Resolution**
1. **Governing Law.** These Terms are governed by the laws of the **State of Delaware**, USA, without regard to conflict-of-laws principles.
2. **Venue.** Any disputes will be resolved in the state or federal courts located in **New Castle County, Delaware**, and both parties consent to personal jurisdiction in those courts.
3. **Waiver of Jury Trial.** EACH PARTY WAIVES ANY RIGHT TO A JURY TRIAL FOR DISPUTES ARISING FROM THESE TERMS.
***
## **14. Export Compliance**
1. **Export Laws.** You will comply with all applicable export control and trade sanction laws, including U.S. export regulations. You represent that you are not located in or acting on behalf of a prohibited country or restricted party.
2. **Prohibited End Users and Destinations.** You will not access or use the Services if you are (a) located in a U.S.-embargoed country or region, or (b) on any U.S. restricted party list.
***
## **15. General Provisions**
1. **Entire Agreement.** These Terms (including any Order Form, AUP, Privacy Policy, and DPA) constitute the entire agreement and supersede all prior or contemporaneous understandings.
2. **Assignment.** Neither party may assign these Terms without the other’s prior written consent, except to an Affiliate or in connection with a merger or acquisition.
3. **No Waiver.** No failure or delay by either party in exercising any right, power, or remedy under these Terms shall operate as a waiver thereof, nor shall any single or partial exercise of any such right, power, or remedy preclude any other or further exercise thereof or the exercise of any other right, power, or remedy.
4. **Severability.** If any part of these Terms is held invalid or unenforceable, the remaining parts remain in full effect.
5. **Independent Contractors.** The parties are independent contractors. Nothing in these Terms creates a partnership or joint venture.
6. **Notices.** Notices must be in writing and addressed to the parties’ designated email or mailing address. Notices are deemed given upon receipt.
7. **Publicity.** You grant us the right to use your name and logo for marketing and promotional purposes. You may opt out by notifying us at [**legal@moonbase.ai**](mailto:legal@moonbase.ai).
8. **Force Majeure.** Neither party is liable for delays or failures caused by events beyond its reasonable control (e.g., natural disasters, internet failures).
9. **DMCA / Copyright Complaints.** If you believe content on our platform infringes your copyright, please send a notice to [**legal@moonbase.ai**](mailto:legal@moonbase.ai) with all information required by the DMCA. We may remove or disable access to allegedly infringing content in accordance with applicable law.
10. **Safe Harbor.** Moonbase may be protected by laws such as Section 230 of the Communications Act and the DMCA’s safe harbor provisions for hosting user-generated content. Nothing in these Terms waives or limits those protections.
11. **Third-Party Beneficiaries.** These Terms are intended solely for the benefit of the parties hereto and their respective permitted successors and assigns. Nothing in these Terms, whether express or implied, shall confer any rights or remedies upon any person or entity that is not a party hereto or a permitted successor or assign.
12. **Explicit Survival Clause.** Notwithstanding any other provision of these Terms, the provisions relating to Confidentiality, Intellectual Property, Warranties and Disclaimers, Indemnification, Limitation of Liability, Termination, and any other provisions that by their nature should survive termination, shall survive the termination or expiration of these Terms.
13. **No Third-Party Agency.** Nothing contained in these Terms shall be construed as creating any agency, partnership, joint venture, or employment relationship between the parties. Neither party shall have any authority to bind or otherwise obligate the other in any respect.
***
## **16. Contact Us**
If you have any questions or concerns about these Terms, please contact us:
**Moonbase Inc.**\
548 Market St\
PMB 58465\
San Francisco, California 94104 USA\
Email: [**legal@moonbase.ai**](mailto:legal@moonbase.ai)
By creating an account, clicking “I agree,” or otherwise using the Services, you confirm that you have read and agree to these Terms of Service.
# Call Occurred
Source: https://docs.moonbase.ai/webhook-reference/activities/call-occurred
webhook activity/call_occurred
Triggered when a phone call is logged.
# File Created
Source: https://docs.moonbase.ai/webhook-reference/activities/file-created
webhook activity/file_created
Triggered when a file is created.
# Form Submitted
Source: https://docs.moonbase.ai/webhook-reference/activities/form-submitted
webhook activity/form_submitted
Triggered when a form is submitted.
# Inbox Message Sent
Source: https://docs.moonbase.ai/webhook-reference/activities/inbox-message-sent
webhook activity/inbox_message_sent
Triggered when a message is sent from an inbox.
# Item Created
Source: https://docs.moonbase.ai/webhook-reference/activities/item-created
webhook activity/item_created
Triggered when an item is created.
# Item Mentioned
Source: https://docs.moonbase.ai/webhook-reference/activities/item-mentioned
webhook activity/item_mentioned
Triggered when an item is mentioned in a note.
# Item Merged
Source: https://docs.moonbase.ai/webhook-reference/activities/item-merged
webhook activity/item_merged
Triggered when an item is merged with another item.
# Meeting Held
Source: https://docs.moonbase.ai/webhook-reference/activities/meeting-held
webhook activity/meeting_held
Triggered when a meeting has concluded.
# Meeting Scheduled
Source: https://docs.moonbase.ai/webhook-reference/activities/meeting-scheduled
webhook activity/meeting_scheduled
Triggered when a meeting is scheduled.
# Note Created
Source: https://docs.moonbase.ai/webhook-reference/activities/note-created
webhook activity/note_created
Triggered when a note is created.
# Program Message Bounced
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-bounced
webhook activity/program_message_bounced
Triggered when a program message bounces.
# Program Message Clicked
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-clicked
webhook activity/program_message_clicked
Triggered when a recipient clicks a tracked link in a program message.
# Program Message Complained
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-complained
webhook activity/program_message_complained
Triggered when a recipient marks a program message as spam.
# Program Message Failed
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-failed
webhook activity/program_message_failed
Triggered when a program message fails to be delivered for a technical reason.
# Program Message Opened
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-opened
webhook activity/program_message_opened
Triggered when a recipient opens a program message.
# Program Message Sent
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-sent
webhook activity/program_message_sent
Triggered when a program message is successfully sent.
# Program Message Shielded
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-shielded
webhook activity/program_message_shielded
Triggered when a program message is prevented from being sent by a delivery protection rule.
# Program Message Unsubscribed
Source: https://docs.moonbase.ai/webhook-reference/activities/program-message-unsubscribed
webhook activity/program_message_unsubscribed
Triggered when a recipient unsubscribes after receiving a program message.
# Webhooks
Source: https://docs.moonbase.ai/webhook-reference/getting-started
Learn how to use webhooks to receive real-time updates from Moonbase.
Moonbase webhooks enable real-time notifications about events in Moonbase, such as when an item is created, when a program message is opened, or a meeting is held. Webhooks are delivered to a configured HTTP endpoint.
## Quick Start
Creating your first webhook with Moonbase.
### 1. Create an endpoint
Use the [Webhooks API](../api-reference/webhook-endpoints/create) to register the webhook endpoint:
```bash theme={null}
curl -X POST https://api.moonbase.ai/v0/webhook_endpoints \
-H "Authorization: Bearer MOONBASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/moonbase",
"subscriptions": [
{"event_type": "activity/item_created"},
{"event_type": "activity/meeting_held"}
]
}'
```
The response will include the endpoint's unique `secret` (prefixed with `whsec_`). **Store this secret securely**—required to verify incoming webhooks. This is the only time the secret will be shown.
### 2. Expose an HTTPS route
Webhook endpoints must:
* Be publicly accessible via HTTPS
* Accept POST requests with `application/json` content
* Respond within 30 seconds to avoid timeouts
### 3. Verify the signature
Always verify the webhook signature before processing any data. This ensures:
* The request genuinely comes from Moonbase
* The payload hasn't been tampered with
* Protection against replay attacks
Key requirements:
* Use the **raw request body** (before JSON parsing)
* Verify the signature **before** any other processing
* Reject requests with invalid signatures immediately
See the [signature verification section](#verifying-webhook-signatures) for implementation details.
### 4. Process the payload
After successful verification, parse and process the JSON payload.
### 5. Respond promptly
Return a `2XX` status code (typically `200` or `204`) to acknowledge receipt:
* Respond as quickly as possible (within 30 seconds)
* Process time-consuming operations asynchronously
If Moonbase doesn't receive a `2XX` response, it will retry delivery according to the [retry schedule](#delivery-and-retry-logic).
## Configuration
Additional configurations for webhooks.
### Payload Format
Each payload includes:
* `id`: Unique event identifier
* `occurred_at`: ISO 8601 timestamp indicating when the event occurred.
* `type`: Event type (e.g., `activity/item_created`)
* Related objects (item, collection, etc.)
```json Example Payload lines theme={null}
{
"id": "1CLJt2v2bnDhMVZzehdb6A",
"occurred_at": "2025-02-17T15:59:55.000Z",
"type": "activity/item_created",
"item": {
"id": "1CLJt2uzNLR8B4AnQ3vJ3B",
"type": "item",
"collection": {
"id": "1CLJt2uzcick5mf96Lzt9x",
"type": "collection",
"ref": "people"
}
}
}
```
## Verifying webhook signatures
Never process webhook data without first verifying its authenticity. Verification ensures that the request came from Moonbase and hasn't been tampered with.
### How signatures work
Moonbase uses the [Standard Webhooks](https://github.com/standard-webhooks/standard-webhooks) specification for signing webhooks:
1. Each endpoint has a unique signing secret (format: `whsec_0{version}{44-char-base58}`)
2. Every webhook request includes an HMAC-SHA256 signature in the `webhook-signature` header
3. The signature covers the event ID, timestamp, and raw request body
The signature algorithm:
```
signature = HMAC-SHA256(secret, `${webhook_id}.${webhook_timestamp}.${raw_payload}`)
```
### Security best practices
1. **Store secrets securely**: Use environment variables or a secrets management service—never commit secrets to version control
2. **Use raw request bodies**: The signature is computed on the exact bytes sent—any modification (even whitespace) will cause verification to fail
3. **Verify timing**: Check that the timestamp is recent (within 5 minutes) to prevent replay attacks
4. **Reject failures**: If verification fails for any reason, reject the request with a `400` or `401` status
5. **Log failures**: Monitor verification failures as they may indicate security issues
### HTTP Headers
Webhook requests include the following Standard Webhooks headers:
* `webhook-id`: Event ID (used for idempotency and doesn't change between retries)
* `webhook-timestamp`: Unix timestamp when the request was sent
* `webhook-signature`: HMAC-SHA256 signature for verification
* `content-type`: `application/json`
## Delivery and Retry Logic
Moonbase ensures reliable webhook delivery with automatic retries and intelligent backoff strategies.
### Response handling
The endpoint's HTTP response determines how Moonbase handles the delivery:
| Status Code | Behavior | Notes |
| ----------------------- | ----------------- | ------------------------------------------- |
| `2XX` | Success | Delivery marked complete, no retries |
| `410 Gone` | Permanent failure | Endpoint automatically disabled, no retries |
| `429 Too Many Requests` | Rate limited | Honors `Retry-After` header if present |
| All other non-`2XX` | Temporary failure | Automatic retry with exponential backoff |
### Retry schedule
Failed deliveries are retried for up to 24 hours using exponential backoff with 10% jitter to prevent thundering herd issues:
| Attempt | Delay | Cumulative Time | Notes |
| ------- | ------------ | --------------- | -------------------------------------- |
| 1 | Immediate | 0 seconds | Initial delivery |
| 2 | \~30 seconds | \~30 seconds | 30s + random jitter (0-3s) |
| 3 | \~1 minute | \~1.5 minutes | 60s + random jitter (0-6s) |
| 4 | \~2 minutes | \~3.5 minutes | 120s + random jitter (0-12s) |
| 5 | \~4 minutes | \~7.5 minutes | 240s + random jitter (0-24s) |
| 6 | \~8 minutes | \~15.5 minutes | 480s + random jitter (0-48s) |
| 7 | \~16 minutes | \~31.5 minutes | 960s + random jitter (0-96s) |
| 8 | \~32 minutes | \~1 hour | 1920s + random jitter (0-192s) |
| 9+ | \~1 hour | Varies | 3600s + random jitter (0-360s), capped |
**Key points:**
* Maximum individual retry delay: 1 hour
* Total retry window: 24 hours
* Jitter: 10% of base delay to distribute load
* Guaranteed: At least one delivery attempt per hour during the retry window
### Handling failures
To minimize failed deliveries:
1. **Respond quickly**: Return a `2XX` status within 30 seconds
2. **Implement idempotency**: Use the `webhook-id` header to handle duplicate deliveries
3. **Monitor endpoint**: Track success rates and response times
4. **Use proper status codes**: Return `410` if the endpoint is permanently decommissioned
5. **Handle rate limits**: Return `429` with `Retry-After` header if you need to throttle
## Idempotency
Webhooks guarantee at-least-once message delivery. Moonbase includes a `webhook-id` header containing a unique identifier for each event. This ID remains the same across all retry attempts for a failed webhook, enabling applications to handle duplicate deliveries by tracking processed event IDs.
## Data Retention
Event payloads and delivery response data are retained for 30 days before being automatically purged from Moonbase systems. This retention period allows for webhook replay and troubleshooting while maintaining data privacy compliance.
# Zoom Guide
Source: https://docs.moonbase.ai/zoom
How to set up and get the most out of Moonbase + Zoom.
## Moonbase + Zoom Native Call‑Recording Guide
Connect Zoom to Moonbase and every customer call you record is connected with a matching Meeting in Moonbase will be sync'd and reviewable in Moonbase.
### How to get support
Please email [support@moonbase.ai](mailto:support@moonbase.ai) for support.
### What you need beforehand
* **A Zoom plan that supports Cloud Recording**\
*Pro, Business, Enterprise*. The free plan does not support Cloud Recordings.
* **Cloud Recording switched on**\
*Zoom Admin → Account Management → Account Settings → Recording → Cloud Recording.*
* **Calendar events that contain the Zoom meeting link**\
Moonbase reads the URL (including Personal Meeting Room links) inside the invite to match the finished recording.
> **Heads‑up:** If Cloud Recording is off or the host forgets to start it, nothing reaches Moonbase.
### One‑time connection steps
1. In Moonbase, open **Settings → Conference Solutions → New Conference Solution**.
2. Click **Zoom** and then **Create**.
3. Sign in with a Zoom host/admin account and approve the requested scopes.
4. You’ll land back in Moonbase with the message **“Zoom connected successfully.”**
That’s it—future meetings that meet the prerequisites will flow in automatically.
### How matching works
* **Scheduled meeting with a unique Zoom link** → Moonbase looks for that exact URL.
* **Personal Meeting Room (PMI)** → Moonbase pairs the PMI link *and* the meeting’s start/end time window.
* If two recordings could match, the one whose **start time** is closest to the calendar event wins.
### What you’ll see in Moonbase
* ▶ **Embedded video player** – watch without leaving Moonbase.
* 📝 **Interactive transcript** – click any sentence to jump the video.
* 🤖 **AI‑generated summary** – key points & next steps in seconds.
* 📊 **Talk‑time analytics** – who spoke (and for how long) by participant *and* organization.
### Best‑practice checklist
* Turn on **“Automatically record meetings to the cloud”** in Zoom.
* Always paste the Zoom link into the calendar invite body.
* Give each rep a unique meeting ID or leave buffer time between PMI sessions.
* Re‑authorize Zoom in Moonbase → Settings if you ever change Zoom permissions.
### How to remove and disconnect Zoom from Moonbase
1. In Moonbase, open **Settings → Conference Solutions**
2. Click on the Zoom connection you wish to remove and disconnect
3. Click **Delete Conference Solution**
4. Confirm deletion when request in the dialog
This will disconnect Zoom from Moonbase and no new meetings will be synchronized.
### Troubleshooting
**Recording never appears**\
Cloud Recording was disabled or the host recorded locally. Enable Cloud Recording and record again.
**Recording stuck in “Processing”**\
Zoom is still rendering. Large or long meetings simply need more time.
**Duplicate recordings**\
The same Zoom link was reused back‑to‑back. Use unique IDs or add calendar buffers.
**Transcript missing / low quality**\
Overlapping speakers or background noise. Encourage muting and headsets.
### Next steps
1. 🔄 **Connect Zoom now** in *Moonbase → Settings → Conference Solutions*.
2. 🎥 Host a short test meeting, with at least 2 people, add the Zoom link to the calendar event, record to the cloud, and watch it arrive in Moonbase.