Projects
Upload project logo (by project ID)
Upload a logo image for a project. File is stored in the platform storage under **logo/project/{projectId}/**. The public URL is saved to the project's **logoUrl** field and used in project-related emails and UI. Project is resolved from the authenticated user's org. Use multipart/form-data with field name **logo**. Allowed types: PNG, JPEG, GIF, WebP. Max size 2MB.
POST
/api/projects/{id}/logoSDK setup
Create a client and set credentials (JWT and/or API key) before calling the API. Match the authentication type shown above.
import { Configuration, ProjectsApi } from 'mudbase-sdk';
const configuration = new Configuration({
basePath: 'https://cloud.mudbase.dev',
apiKey: 'sk_live_mudbase_doc_Xk9mP2qR7vN4wL8jH3tY6uE',
accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});
// This endpoint accepts either credential — apiKey or accessToken alone is enough.
const projects = new ProjectsApi(configuration);import { Configuration, ProjectsApi } from 'mudbase-sdk';
const configuration = new Configuration({
basePath: 'https://cloud.mudbase.dev',
apiKey: 'sk_live_mudbase_doc_Xk9mP2qR7vN4wL8jH3tY6uE',
accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});
// This endpoint accepts either credential — apiKey or accessToken alone is enough.
const projects = new ProjectsApi(configuration);Example request
Call this endpoint using the client from SDK setup. Use View HTTP for a raw cURL example.
const { data: result } = await projects.uploadProjectLogo("f7KOGjjMMqsC61io");const { data: result } = await projects.uploadProjectLogo("f7KOGjjMMqsC61io");Playground
liveTest this endpoint with your own credentials. Your requests will be sent to the live API.
Get your API key from the console
Use the auth endpoints to obtain a JWT.
No Request Yet
Send a request to see the full inspector
Authentication
Requires JWT Requires API Key JWT or API Key
Note
This endpoint accepts either JWT Bearer token or API Key. Use
Authorization: Bearer YOUR_TOKEN for user context, or X-API-Key: YOUR_KEY for server-to-server. View authentication guide →Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →Include your API key in the X-API-Key: YOUR_KEY header (server-to-server, SDKs). View authentication guide →Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Project ID |
Request Body
json
{}{}Responses
200Logo uploaded and project logoUrl updated
json
{
"logoUrl": "https://sturdy-contractor.net/",
"project": {
"_id": "6BhIqGnGRVV9Zyb6",
"name": "Russell Olson",
"description": "Featuring Magnesium-enhanced technology, our Salad offers unparalleled deserted performance",
"slug": "ashamed-comparison-qehe",
"org": "monitor copy",
"auth": {
"providers": [
{
"name": "Delbert Cartwright",
"enabled": true,
"config": {}
}
],
"notifyOnNewSignIn": true
},
"database": {
"collections": [
"transmitter transmit"
]
},
"storage": {
"buckets": [
"sensor index"
]
},
"settings": {
"allowAnonymousAuth": false,
"requireEmailVerification": true,
"requirePhoneVerification": true,
"defaultUserAccountStatus": "pending",
"enableRealtime": true,
"enableStorage": true,
"enableFunctions": true
},
"usage": {
"apiCalls": 44195,
"storage": 20,
"bandwidth": 61103,
"dbReads": 79622,
"dbWrites": 69540
},
"createdAt": "2026-06-11T02:21:54.813Z",
"updatedAt": "2026-07-16T13:50:41.009Z"
}
}{
"logoUrl": "https://sturdy-contractor.net/",
"project": {
"_id": "6BhIqGnGRVV9Zyb6",
"name": "Russell Olson",
"description": "Featuring Magnesium-enhanced technology, our Salad offers unparalleled deserted performance",
"slug": "ashamed-comparison-qehe",
"org": "monitor copy",
"auth": {
"providers": [
{
"name": "Delbert Cartwright",
"enabled": true,
"config": {}
}
],
"notifyOnNewSignIn": true
},
"database": {
"collections": [
"transmitter transmit"
]
},
"storage": {
"buckets": [
"sensor index"
]
},
"settings": {
"allowAnonymousAuth": false,
"requireEmailVerification": true,
"requirePhoneVerification": true,
"defaultUserAccountStatus": "pending",
"enableRealtime": true,
"enableStorage": true,
"enableFunctions": true
},
"usage": {
"apiCalls": 44195,
"storage": 20,
"bandwidth": 61103,
"dbReads": 79622,
"dbWrites": 69540
},
"createdAt": "2026-06-11T02:21:54.813Z",
"updatedAt": "2026-07-16T13:50:41.009Z"
}
}400No file, invalid type, or size exceeded
404Project not found
503Object storage not configured
Errors
| Code | Meaning |
|---|---|
400 | No file, invalid type, or size exceeded |
404 | Project not found |
503 | Object storage not configured |