BokaMera.API.Host

<back to all web services

GetMcpUsage

Requires Authentication
The following routes are available for this service:
GET/assistant/mcp/usageGet the public MCP server token usage and limit for a companyReturns how many tokens the company has consumed in the current rolling window through the public MCP server it connects to external AI clients, the configured limit and whether the company is still within budget. Metered separately from the admin AI assistant. Defaults to the logged-in user's company when no CompanyId is supplied.
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;

public class dtos
{

    @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
    @ValidateRequest(Validator="IsAuthenticated")
    public static class GetMcpUsage implements ICompany
    {
        /**
        * The company id. Defaults to the logged-in user's company when omitted.
        */
        @ApiMember(DataType="string", Description="The company id. Defaults to the logged-in user's company when omitted.", ParameterType="query")
        public UUID CompanyId = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public GetMcpUsage setCompanyId(UUID value) { this.CompanyId = value; return this; }
    }

    public static class AiChatUsageResponse
    {
        /**
        * The company the usage applies to.
        */
        @ApiMember(Description="The company the usage applies to.")
        public UUID CompanyId = null;

        /**
        * Tokens consumed within the current rolling window.
        */
        @ApiMember(Description="Tokens consumed within the current rolling window.")
        public Long TokensUsed = null;

        /**
        * The company's token limit for the window.
        */
        @ApiMember(Description="The company's token limit for the window.")
        public Integer TokenLimit = null;

        /**
        * Tokens remaining before the limit is reached (never negative).
        */
        @ApiMember(Description="Tokens remaining before the limit is reached (never negative).")
        public Long TokensRemaining = null;

        /**
        * True while the company is still below its token limit.
        */
        @ApiMember(Description="True while the company is still below its token limit.")
        public Boolean IsWithinBudget = null;

        /**
        * Length of the rolling usage window, in days.
        */
        @ApiMember(Description="Length of the rolling usage window, in days.")
        public Integer WindowDays = null;

        public ResponseStatus ResponseStatus = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public AiChatUsageResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Long getTokensUsed() { return TokensUsed; }
        public AiChatUsageResponse setTokensUsed(Long value) { this.TokensUsed = value; return this; }
        public Integer getTokenLimit() { return TokenLimit; }
        public AiChatUsageResponse setTokenLimit(Integer value) { this.TokenLimit = value; return this; }
        public Long getTokensRemaining() { return TokensRemaining; }
        public AiChatUsageResponse setTokensRemaining(Long value) { this.TokensRemaining = value; return this; }
        public Boolean getIsWithinBudget() { return IsWithinBudget; }
        public AiChatUsageResponse setIsWithinBudget(Boolean value) { this.IsWithinBudget = value; return this; }
        public Integer getWindowDays() { return WindowDays; }
        public AiChatUsageResponse setWindowDays(Integer value) { this.WindowDays = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public AiChatUsageResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

}

Java GetMcpUsage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /assistant/mcp/usage HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"TokensUsed":0,"TokenLimit":0,"TokensRemaining":0,"IsWithinBudget":false,"WindowDays":0,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}