Projects
Projects are managed through the MessagePipe dashboard. They are the top-level organizational unit in MessagePipe. Templates, providers, API keys and configurations all belong to a project.
Creating a Project
Only users with the project_admin role can create projects.
POST /projects
Content-Type: application/json
Authorization: Bearer {your-jwt-token}
{
"name": "My App"
}
Response:
{
"id": "project-uuid",
"name": "My App",
"createdAt": "2024-01-01T10:00:00Z"
}
Get Your Projects
GET /projects
Authorization: Bearer {your-jwt-token}
Returns all projects the authenticated user belongs to.
Delete a Project
Only the project owner can delete a project.
DELETE /projects/{projectId}
Authorization: Bearer {your-jwt-token}
⚠️ Deleting a project removes all associated templates, configurations and API keys. This action cannot be undone.
Team Management
Get Team Members
GET /projects/{projectId}/team
Authorization: Bearer {your-jwt-token}
Invite a Team Member
Invite a user to collaborate on a project. You can optionally specify a role. It defaults to team_member if omitted.
POST /projects/invite
Content-Type: application/json
Authorization: Bearer {your-jwt-token}
{
"email": "teammate@example.com",
"projectId": "project-uuid",
"role": "team_member"
}
Role options:
| Role | Description |
|---|---|
team_member | Standard collaborator access (default) |
project_admin | Can manage project settings and team |
The invited user will receive an email with an invitation link.
Remove a Team Member
Remove an existing member from a project:
DELETE /projects/{projectId}/members/{userId}
Authorization: Bearer {your-jwt-token}
Responses:
| Status | Description |
|---|---|
200 | Team member removed successfully |
401 | Unauthorized: You don't have permission to remove members |
404 | Project or user not found |
Manage Invites
Get All Project Invites
GET /projects/{projectId}/invites
Authorization: Bearer {your-jwt-token}
Resend an Invite
POST /projects/resend-invite/{inviteId}
Authorization: Bearer {your-jwt-token}
Cancel a Pending Invite
DELETE /projects/cancel-invite/{inviteId}
Authorization: Bearer {your-jwt-token}
Accept an Invite
This endpoint does not require authentication. New users complete registration as part of accepting:
POST /projects/accept-invite
Content-Type: application/json
{
"token": "invite-token-from-email",
"firstName": "Jane",
"lastName": "Doe",
"password": "secure-password"
}