Project

Manage your project settings, team members, and API keys. The Project API provides methods to inspect project details, manage team access, and control the full API key lifecycle.

Overview

Your Multisender project is the central workspace for your organization. It holds your team members, API keys, and all associated distributions and lists. Use the Project API to verify your setup, audit team roles, and manage API key permissions. Key rotation, scope restrictions, and access auditing are all handled through this API.

API key secrets are shown only once

When you create a new API key, the secret value is returned only in the creation response. Store it immediately in a secure location — it cannot be retrieved again.

Key Concepts

Project

Your organizational workspace in Multisender. Each project has a unique name, slug, and description. All distributions, lists, and API keys belong to a project.

API Key

A credential that authenticates SDK requests. Each key has a name for identification, permission scopes (read, write), and usage tracking. The secret value is only returned once at creation — store it securely.

Scopes

Permission levels assigned to an API key. "read" allows read-only access (listing, viewing). "write" allows creating, updating, and deleting resources. Assign the minimum scopes needed for each use case.

Member Roles

Team members have roles that control their permissions: OWNER (full access), ADMIN (manage settings), MANAGER (manage distributions), VIEWER (read-only access).

Quick Start

Common Workflows

API key lifecycle

Create, manage, and rotate API keys for different environments.

1

2

listApiKeys()

Audit existing keys, check lastUsedAt for inactive keys

3

updateApiKey()

Rename keys or adjust scopes as requirements change

4

deleteApiKey()

Revoke old keys when rotating or decommissioning

Methods

sdk.project.getInfo()

Retrieve project information including name, slug, and description. A quick way to verify your API key is configured correctly and to inspect the current project context.

Use getInfo() as a health check — if it returns successfully, your API key and base URL are configured correctly.

Parameters

No parameters

Returns

Project

Project object with id, name, slug, description, createdAt, and updatedAt

Example

See Also

listApiKeys()

List all API keys for this project

sdk.project.getMembers()

Retrieve all project members with their roles and profile information. Each member has a role (OWNER, ADMIN, MANAGER, VIEWER) that determines their permission level within the project.

Parameters

No parameters

Returns

ProjectMember[]

Array of project members with id, userId, role, email, displayName, and joinedAt

Example

Notes

Member roles: OWNER (full access), ADMIN (manage settings), MANAGER (manage distributions), VIEWER (read-only)

email and displayName may be undefined depending on member privacy settings

See Also

getInfo()

Get the project metadata alongside members

sdk.project.listApiKeys()

List all API keys for the current project. Returns key metadata including name, permission scopes, last usage time, and expiration. The secret key value is never returned — it is only available at creation time.

Parameters

No parameters

Returns

ApiKey[]

Array of API key objects with id, name, scopes, lastUsedAt, expiresAt, and createdAt

Example

Notes

The secret key value is only available at creation time via createApiKey()

See Also

createApiKey()

Create a new API key

updateApiKey()

Update an existing API key

deleteApiKey()

Delete an API key

sdk.project.createApiKey(request)

Create a new API key with a display name and permission scopes. The response includes the secret key value in the key field — this is the only time it will be returned. Store it securely immediately.

Save the key immediately

The key field containing the secret value is only returned in this response. If lost, delete the key and create a new one.

Parameters

NameTypeRequiredDescription

request.name

string

Yes

Display name for identification (e.g. "Production", "CI/CD", "Staging")

request.scopes

string[]

Yes

Permission scopes: ["read"] for read-only, ["read", "write"] for full access

Returns

ApiKey

Created API key with id, name, scopes, createdAt, and the one-time key field containing the secret value

Example

See Also

listApiKeys()

List all existing API keys

updateApiKey()

Update the key name or scopes later

deleteApiKey()

Delete the key when no longer needed

sdk.project.updateApiKey(apiKeyId, request)

Update an existing API key's name or permission scopes. Both fields are optional — only provided fields are changed. Scope changes take effect immediately for all future requests using this key.

Scopes are replaced entirely — pass the full list of desired scopes, not just the ones you want to add.

Parameters

NameTypeRequiredDescription

apiKeyId

string

Yes

The API key ID (from listApiKeys or createApiKey)

request.name

string

No

New display name for the key

request.scopes

string[]

No

New permission scopes — replaces all existing scopes entirely

Returns

ApiKey

Updated API key metadata (does not include the secret key value)

Example

See Also

listApiKeys()

Find the API key ID to update

createApiKey()

Create a new key instead of updating

deleteApiKey()

Delete the key instead of updating

sdk.project.deleteApiKey(apiKeyId)

Permanently delete an API key. The key stops working immediately for all API requests. Any systems or integrations using this key will lose access.

Irreversible action

This action cannot be undone. Create a replacement key before deleting the old one to avoid service disruption.

Parameters

NameTypeRequiredDescription

apiKeyId

string

Yes

The API key ID to delete

Returns

void

No return value on success

Example

See Also

listApiKeys()

Find the API key ID to delete

createApiKey()

Create a replacement key before deleting the old one

Previous

getChain()

Next

getInfo()

Menu

Search

Code

Generated Code