---
updatedAt: 2025-10-15T20:26:09.000Z
agentTools:
  projectIndex: https://readme.mosaicapp.com/llms.txt
---

# Creates a budget estimate for a member on a project

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "components": {
    "securitySchemes": {
      "Tenant": {
        "type": "apiKey",
        "in": "header",
        "name": "x-tenant",
        "description": "Tenant identifier"
      },
      "RealmId": {
        "type": "apiKey",
        "in": "header",
        "name": "x-realm-id",
        "description": "Realm identifier"
      },
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "API key"
      },
      "Origin": {
        "type": "apiKey",
        "in": "header",
        "name": "x-origin",
        "description": "Origin domain"
      }
    }
  },
  "security": [
    {
      "ApiKey": [],
      "Origin": [],
      "Tenant": [],
      "RealmId": []
    }
  ],
  "info": {
    "title": "Mosaic External API Documentation",
    "description": "Rate limit: 500 requests per 5 minutes per API key. Mutations answer 200 and report their outcome on a result callback. A mutation that fails validation sends a failure callback instead: dataType is error, errorDetails carries the message as free text, and errorCode is always UnknownError. A read that fails validation answers with the message and no error code. A mutation that runs out of retries sends no callback; look its outcome up with GET /request_logs.",
    "termsOfService": "https://resources.mosaicapp.com/terms/",
    "contact": {
      "name": "Mosaic",
      "url": "https://mosaicapp.com/",
      "email": "hello@mosaicapp.com"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "http://localhost:3001",
      "description": "Mosaic External API Server"
    }
  ],
  "paths": {
    "/api/{team_id}/budget_estimate": {
      "post": {
        "tags": [
          "Budget Estimates"
        ],
        "operationId": "BudgetEstimates#create",
        "summary": "Creates a budget estimate for a member on a project",
        "parameters": [
          {
            "in": "path",
            "description": "Team ID",
            "name": "team_id",
            "required": true,
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success\n"
          },
          "401": {
            "description": "Invalid Authentication Key and/or Team ID"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "api_request_metadata": {
                    "description": "API Request Metadata",
                    "type": "object"
                  },
                  "estimated_amount": {
                    "description": "Estimate using an amount; send exactly one of this, estimated_hours, estimated_percentage",
                    "type": "number"
                  },
                  "estimated_hours": {
                    "description": "Estimate using hours; send exactly one of this, estimated_amount, estimated_percentage",
                    "type": "number"
                  },
                  "estimated_percentage": {
                    "description": "Estimate as a percentage of the Activity Phase; send exactly one of this, estimated_amount, estimated_hours",
                    "type": "number"
                  },
                  "member_id": {
                    "description": "Member ID (also known as account_id/employee_id)",
                    "type": "number"
                  },
                  "phase_id": {
                    "description": "Phase ID",
                    "type": "integer"
                  },
                  "project_id": {
                    "description": "Project ID",
                    "type": "integer"
                  },
                  "role_id": {
                    "description": "Role ID for creating unassigned budget estimates",
                    "type": "integer"
                  },
                  "rate_type": {
                    "description": "Rate type to submit: [\"bill\",\"cost\"]",
                    "type": "string"
                  },
                  "scope_id": {
                    "description": "Scope ID; add scope_id to the estimations for merging purpose",
                    "type": "integer"
                  },
                  "standard_work_category_id": {
                    "description": "Standard Work Category ID (also known as activity_id)",
                    "type": "integer"
                  }
                },
                "required": [
                  "project_id"
                ]
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Budget Estimates",
      "description": "Operations for Budget Estimates"
    }
  ]
}
```