Projects

Upload project logo (by org and 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. Use multipart/form-data with field name **logo**. Allowed types: PNG, JPEG, GIF, WebP. Max size 2MB. Requires project update permission and membership in the organization.

AuthBearer (JWT)
GroupProjects
Rate limitSee Rate Limits
POST/api/projects/{orgId}/projects/{id}/logo

SDK 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',
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});

const projects = new ProjectsApi(configuration);
import { Configuration, ProjectsApi } from 'mudbase-sdk';

const configuration = new Configuration({
  basePath: 'https://cloud.mudbase.dev',
  accessToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c3JfbW9yZ2FuX2RlIiwiZW1haWwiOiJtb3JnYW4uY2hlbkBub3J0aHdpbmQuZGV2IiwiZXhwIjoxODI1MTI5NjAwfQ.doc_preview_sig',
});

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.uploadProjectLogoByOrg("org_ctrZKBREdv", "NGsUVhBtAazi7ZMF");
const { data: result } = await projects.uploadProjectLogoByOrg("org_ctrZKBREdv", "NGsUVhBtAazi7ZMF");

Playground

live

Test this endpoint with your own credentials. Your requests will be sent to the live API.

Use the auth endpoints to obtain a JWT.

No Request Yet

Send a request to see the full inspector

Authentication

Requires JWT
Note
Include your JWT in the Authorization: Bearer YOUR_TOKEN header (user-facing apps, RBAC). View authentication guide →

Path Parameters

NameTypeRequiredDescription
orgIdstringYesOrganization ID
idstringYesProject 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:56.726Z",
    "updatedAt": "2026-07-16T13:50:42.922Z"
  }
}
{
  "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:56.726Z",
    "updatedAt": "2026-07-16T13:50:42.922Z"
  }
}
400No file, invalid type, or size exceeded
404Project or organization not found
503Object storage not configured

Errors

CodeMeaning
400No file, invalid type, or size exceeded
404Project or organization not found
503Object storage not configured
Edit this page on GitHub