ChartHop REST API
REST API for ChartHop — 738 operations across people, jobs, groups, compensation, goals, forms, time off, approvals, events, and the built-in MCP server.
REST API for ChartHop — 738 operations across people, jobs, groups, compensation, goals, forms, time off, approvals, events, and the built-in MCP server.
{
"swagger" : "2.0",
"info" : {
"description" : "REST API for ChartHop",
"version" : "V1.0.0",
"title" : "ChartHop API",
"contact" : {
"name" : "ChartHop",
"url" : "https://www.charthop.com",
"email" : "support@charthop.com"
}
},
"host" : "localhost",
"tags" : [ {
"name" : "Time off ledger"
}, {
"name" : "access"
}, {
"name" : "action"
}, {
"name" : "ai"
}, {
"name" : "ai-credit-limit"
}, {
"name" : "ai-hint"
}, {
"name" : "ai-prompt"
}, {
"name" : "app"
}, {
"name" : "appConfig"
}, {
"name" : "approval"
}, {
"name" : "approval-delegate"
}, {
"name" : "approval-request"
}, {
"name" : "assessment"
}, {
"name" : "band"
}, {
"name" : "billing"
}, {
"name" : "budget"
}, {
"name" : "budget-pool"
}, {
"name" : "calendar"
}, {
"name" : "category"
}, {
"name" : "category-sort"
}, {
"name" : "change"
}, {
"name" : "comment"
}, {
"name" : "comp-review"
}, {
"name" : "content"
}, {
"name" : "customer"
}, {
"name" : "data-view"
}, {
"name" : "email-template"
}, {
"name" : "event"
}, {
"name" : "exchange-rate"
}, {
"name" : "export"
}, {
"name" : "expression"
}, {
"name" : "field"
}, {
"name" : "file"
}, {
"name" : "form"
}, {
"name" : "form-response"
}, {
"name" : "goal"
}, {
"name" : "goal-type"
}, {
"name" : "goalProgress"
}, {
"name" : "goalTarget"
}, {
"name" : "group"
}, {
"name" : "group-type"
}, {
"name" : "guideline"
}, {
"name" : "import"
}, {
"name" : "job"
}, {
"name" : "job-code"
}, {
"name" : "job-level"
}, {
"name" : "legalDoc"
}, {
"name" : "mcp"
}, {
"name" : "media"
}, {
"name" : "message"
}, {
"name" : "metric"
}, {
"name" : "multiplier"
}, {
"name" : "notification"
}, {
"name" : "oauth"
}, {
"name" : "org"
}, {
"name" : "org-config"
}, {
"name" : "person"
}, {
"name" : "policy"
}, {
"name" : "preload"
}, {
"name" : "process"
}, {
"name" : "product"
}, {
"name" : "profile-tab"
}, {
"name" : "query"
}, {
"name" : "question"
}, {
"name" : "report"
}, {
"name" : "reportChart"
}, {
"name" : "role"
}, {
"name" : "saml"
}, {
"name" : "scenario"
}, {
"name" : "search"
}, {
"name" : "signature-request"
}, {
"name" : "status"
}, {
"name" : "stock"
}, {
"name" : "stockgrant"
}, {
"name" : "stripe"
}, {
"name" : "table"
}, {
"name" : "task"
}, {
"name" : "task-config"
}, {
"name" : "template"
}, {
"name" : "timeOffPolicy"
}, {
"name" : "timeoff"
}, {
"name" : "timeoffAdjustment"
}, {
"name" : "transcript"
}, {
"name" : "usage"
}, {
"name" : "user"
}, {
"name" : "webauthn"
}, {
"name" : "well-known"
} ],
"schemes" : [ "https", "http" ],
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"paths" : {
"/.well-known/oauth-authorization-server" : {
"get" : {
"tags" : [ "well-known" ],
"summary" : "OAuth authorization server metadata (RFC 8414)",
"operationId" : "authorizationServerMetadata",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
}
}
}
},
"/.well-known/oauth-authorization-server/mcp/{agent}" : {
"get" : {
"tags" : [ "well-known" ],
"summary" : "OAuth authorization server metadata for an org-less agent MCP server (RFC 8414)",
"operationId" : "mcpAuthorizationServerMetadataNoOrg",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
}
}
}
},
"/.well-known/oauth-authorization-server/mcp/{agent}/{orgId}" : {
"get" : {
"tags" : [ "well-known" ],
"summary" : "OAuth authorization server metadata for an agent MCP server (RFC 8414)",
"operationId" : "mcpAuthorizationServerMetadata",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgId",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
}
}
}
},
"/.well-known/oauth-protected-resource/mcp/{agent}" : {
"get" : {
"tags" : [ "well-known" ],
"summary" : "OAuth protected resource metadata for an org-less agent MCP server (RFC 9728)",
"operationId" : "mcpProtectedResourceMetadataNoOrg",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
}
}
}
},
"/.well-known/oauth-protected-resource/mcp/{agent}/{orgId}" : {
"get" : {
"tags" : [ "well-known" ],
"summary" : "OAuth protected resource metadata for an agent MCP server (RFC 9728)",
"operationId" : "mcpProtectedResourceMetadata",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgId",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
}
}
}
},
"/.well-known/security.txt" : {
"get" : {
"tags" : [ "well-known" ],
"summary" : "security.txt (RFC 9116)",
"operationId" : "getSecurityTxt",
"produces" : [ "text/plain" ],
"responses" : {
"200" : {
"description" : "successful operation"
}
}
}
},
"/mcp/{agent}" : {
"post" : {
"tags" : [ "mcp" ],
"summary" : "Org-less MCP server message endpoint (JSON-RPC 2.0 over Streamable HTTP)",
"operationId" : "handleMessageNoOrg",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
}, {
"name" : "body",
"in" : "body",
"required" : true,
"schema" : {
"type" : "object"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation"
},
"202" : {
"description" : "notification accepted"
},
"401" : {
"description" : "not authorized"
},
"404" : {
"description" : "not found"
}
}
},
"get" : {
"tags" : [ "mcp" ],
"summary" : "Org-less MCP server SSE stream (not supported)",
"operationId" : "streamNoOrg",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"405" : {
"description" : "method not allowed"
}
}
}
},
"/mcp/{agent}/{orgId}" : {
"post" : {
"tags" : [ "mcp" ],
"summary" : "MCP server message endpoint (JSON-RPC 2.0 over Streamable HTTP)",
"operationId" : "handleMessageForOrg",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgId",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
}, {
"name" : "body",
"in" : "body",
"required" : true,
"schema" : {
"type" : "object"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation"
},
"202" : {
"description" : "notification accepted"
},
"401" : {
"description" : "not authorized"
},
"404" : {
"description" : "not found"
}
}
},
"get" : {
"tags" : [ "mcp" ],
"summary" : "MCP server SSE stream (not supported)",
"operationId" : "stream",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgId",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "agent",
"in" : "path",
"description" : "Agent app name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"405" : {
"description" : "method not allowed"
}
}
}
},
"/oauth/app/{appName}" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "Process an Oauth2 redirect request from an access request for an app installation, storing the accessToken and refreshToken as secrets for the app",
"operationId" : "handleRedirect",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "token",
"in" : "cookie",
"required" : false,
"type" : "string"
}, {
"name" : "appName",
"in" : "path",
"description" : "App name",
"required" : true,
"type" : "string"
}, {
"name" : "state",
"in" : "query",
"description" : "State, containing orgId and appUserId",
"required" : false,
"type" : "string"
}, {
"name" : "code",
"in" : "query",
"description" : "Temporary authorization code",
"required" : true,
"type" : "string"
} ],
"responses" : {
"400" : {
"description" : "bad request"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/credentials" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Return a ChartHop authorization token, given a username and password",
"operationId" : "issueAccessTokenFromCredentials",
"consumes" : [ "application/x-www-form-urlencoded" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "username",
"in" : "formData",
"description" : "Username to authenticate",
"required" : false,
"type" : "string"
}, {
"name" : "password",
"in" : "formData",
"description" : "Password to authenticate",
"required" : false,
"type" : "string"
}, {
"name" : "scope",
"in" : "formData",
"description" : "Requested access scope or scopes (space separated)",
"required" : false,
"type" : "string"
}, {
"name" : "client_id",
"in" : "formData",
"description" : "client id",
"required" : false,
"type" : "string"
}, {
"name" : "code_challenge",
"in" : "formData",
"description" : "code_challenge",
"required" : false,
"type" : "string"
}, {
"name" : "code_challenge_method",
"in" : "formData",
"description" : "code_challenge_method",
"required" : false,
"type" : "string"
}, {
"name" : "redirect_uri",
"in" : "formData",
"description" : "redirect_uri",
"required" : false,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
},
"400" : {
"description" : "invalid credentials"
}
}
}
},
"/oauth/join" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Return a JOIN token to be used for new user operations",
"operationId" : "join",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
}
}
}
},
"/oauth/loginWithToken" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Return a ChartHop authorization token, given a login token",
"operationId" : "issueAccessTokenFromLoginToken",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "scope",
"in" : "query",
"description" : "Requested access scope or scopes (space separated)",
"required" : false,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
},
"400" : {
"description" : "invalid credentials"
}
}
}
},
"/oauth/mcp/approve" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Approve an MCP authorization grant and issue an authorization code",
"operationId" : "approveMcpGrant",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "body",
"in" : "body",
"required" : true,
"schema" : {
"$ref" : "#/definitions/McpApproveRequest"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation"
},
"400" : {
"description" : "bad request"
},
"403" : {
"description" : "forbidden"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/mcp/grant-info" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "Describe a pending MCP authorization grant",
"operationId" : "getMcpGrantInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "clientId",
"in" : "query",
"description" : "The client's CIMD URL",
"required" : true,
"type" : "string"
}, {
"name" : "resource",
"in" : "query",
"description" : "The MCP server URL being authorized",
"required" : true,
"type" : "string"
}, {
"name" : "redirectUri",
"in" : "query",
"description" : "The client's OAuth redirect URI",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation"
},
"400" : {
"description" : "bad request"
},
"403" : {
"description" : "forbidden"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/org/{orgIdentifier}/app/{appName}/{appUserId}" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "Retrieve the oauth uri the user should be directed to in order to start the oauth flow",
"operationId" : "getOauthConnectUri",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgIdentifier",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "appName",
"in" : "path",
"description" : "App name",
"required" : true,
"type" : "string"
}, {
"name" : "appUserId",
"in" : "path",
"description" : "App user id",
"required" : true,
"type" : "string"
}, {
"name" : "returnTo",
"in" : "query",
"description" : "Where to return the user",
"required" : true,
"type" : "string",
"enum" : [ "INSTALL", "MANAGE", "SELF_SERVE", "AGENT", "AI_CHAT" ]
}, {
"name" : "finchAppType",
"in" : "query",
"description" : "The type of Finch app being installed",
"required" : false,
"type" : "string",
"enum" : [ "ALL", "AUTOMATED", "SANDBOX_FINCH", "SANDBOX_PROVIDER" ]
}, {
"name" : "tokenLevel",
"in" : "query",
"description" : "For OAUTH apps, whether to create a shared org or per-user connection",
"required" : false,
"type" : "string",
"enum" : [ "ORG", "USER" ]
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/ConnectUriResponse"
}
},
"400" : {
"description" : "bad request"
},
"403" : {
"description" : "forbidden"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/org/{orgIdentifier}/app/{appUserId}/oauth/connection" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "Whether the app installation has an active org-level OAuth connection",
"operationId" : "getAppOauthConnection",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgIdentifier",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "appUserId",
"in" : "path",
"description" : "App user id",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AppOauthConnectionStatus"
}
},
"403" : {
"description" : "forbidden"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/org/{orgIdentifier}/app/{appUserId}/oauth/user" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "List the per-user OAuth connections for an app installation",
"operationId" : "listAppOauthUserConnections",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgIdentifier",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "appUserId",
"in" : "path",
"description" : "App user id",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/AppOauthUserConnection"
}
}
},
"403" : {
"description" : "forbidden"
},
"404" : {
"description" : "not found"
}
}
},
"delete" : {
"tags" : [ "oauth" ],
"summary" : "Revoke one or more per-user OAuth connections for an app installation",
"operationId" : "revokeAppOauthTokens",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgIdentifier",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required" : true,
"type" : "string"
}, {
"name" : "appUserId",
"in" : "path",
"description" : "App user id",
"required" : true,
"type" : "string"
}, {
"name" : "body",
"in" : "body",
"required" : true,
"schema" : {
"$ref" : "#/definitions/RevokeAppOauthTokensRequest"
}
} ],
"responses" : {
"403" : {
"description" : "forbidden"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/revoke" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Delete the current Oauth2 bearer token (for signout)",
"operationId" : "revokeToken",
"consumes" : [ "application/x-www-form-urlencoded" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "token",
"in" : "formData",
"description" : "Token to revoke",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "token revoked"
}
}
}
},
"/oauth/sendLoginToken" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Send a login (\"magic link\") email",
"operationId" : "sendLoginToken",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "body",
"in" : "body",
"description" : "User email address",
"required" : true,
"schema" : {
"$ref" : "#/definitions/EmailRequest"
}
} ],
"responses" : {
"204" : {
"description" : "email sent"
}
}
}
},
"/oauth/sso/{idp}/access-token" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "Exchange a one-time use Auth Code for the IDP access token response",
"operationId" : "getIdpAccessTokenResponse",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "idp",
"in" : "path",
"description" : "Identity provider of SSO login (e.g. adp)",
"required" : true,
"type" : "string"
}, {
"name" : "authCode",
"in" : "query",
"description" : "A one-time use Auth Code",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/IdpAccessTokenResponse"
}
},
"400" : {
"description" : "bad request"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/sso/{idp}/login" : {
"get" : {
"tags" : [ "oauth" ],
"summary" : "Login via the auth endpoint",
"operationId" : "ssoAuthLogin",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "idp",
"in" : "path",
"description" : "Identity provider of SSO login (e.g. adp)",
"required" : true,
"type" : "string"
} ],
"responses" : {
"400" : {
"description" : "bad request"
},
"404" : {
"description" : "not found"
}
}
}
},
"/oauth/token" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Return an Oauth2 Authorization bearer token",
"operationId" : "issueAccessToken",
"consumes" : [ "application/x-www-form-urlencoded" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "grant_type",
"in" : "formData",
"description" : "Type of grant; 'password', 'refresh_token', 'authorization_code' supported",
"required" : false,
"type" : "string"
}, {
"name" : "code",
"in" : "formData",
"description" : "Authorization code",
"required" : false,
"type" : "string"
}, {
"name" : "redirect_uri",
"in" : "formData",
"description" : "Redirect URI",
"required" : false,
"type" : "string",
"format" : "uri"
}, {
"name" : "client_id",
"in" : "formData",
"description" : "Client id",
"required" : false,
"type" : "string"
}, {
"name" : "refresh_token",
"in" : "formData",
"description" : "Refresh token",
"required" : false,
"type" : "string"
}, {
"name" : "code_verifier",
"in" : "formData",
"description" : "Code verifier",
"required" : false,
"type" : "string"
}, {
"name" : "resource",
"in" : "formData",
"description" : "Target resource (RFC 8707)",
"required" : false,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
},
"400" : {
"description" : "invalid credentials"
}
}
},
"delete" : {
"tags" : [ "oauth" ],
"summary" : "Delete the current Oauth2 bearer token (for signout)",
"operationId" : "deleteToken",
"produces" : [ "application/json" ],
"responses" : {
"204" : {
"description" : "token deleted"
},
"401" : {
"description" : "not authorized"
}
}
}
},
"/oauth/token/attenuate" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Given an existing token, issue a new token with a reduced set of scopes",
"operationId" : "attenuateToken",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "scope",
"in" : "query",
"description" : "Requested access scope or scopes (space separated)",
"required" : false,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
}
}
}
},
"/oauth/token/sso/{type}" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Return an Oauth2 Authorization bearer token, given a SSO id token",
"operationId" : "issueSsoToken",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "type",
"in" : "path",
"description" : "type of SSO request (google or microsoft)",
"required" : true,
"type" : "string"
}, {
"name" : "createOrg",
"in" : "query",
"description" : "automatically create org if possible to do so",
"required" : false,
"type" : "boolean"
}, {
"name" : "signupSource",
"in" : "query",
"description" : "sign up source (self-serve, connect, or sequoia)",
"required" : false,
"type" : "string",
"enum" : [ "ADP_MARKETPLACE", "SELF_SERVE", "SELF_SERVE_TEST", "SEQUOIA_ONE", "CONNECT" ]
}, {
"name" : "utmParams",
"in" : "query",
"description" : "utm params (used in salesforce for lead tracking)",
"required" : false,
"type" : "string"
}, {
"name" : "email",
"in" : "query",
"description" : "sign up email address",
"required" : false,
"type" : "string"
}, {
"name" : "body",
"in" : "body",
"description" : "access token request",
"required" : true,
"schema" : {
"$ref" : "#/definitions/AccessTokenRequest"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
},
"400" : {
"description" : "invalid credentials"
}
}
}
},
"/oauth/token/view" : {
"post" : {
"tags" : [ "oauth" ],
"summary" : "Return a view-as token",
"operationId" : "issueViewToken",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "body",
"in" : "body",
"description" : "request on whom to view as",
"required" : true,
"schema" : {
"$ref" : "#/definitions/ViewAsRequest"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AccessTokenResponse"
}
},
"400" : {
"description" : "invalid credentials"
}
}
}
},
"/org/{slug}" : {
"get" : {
"tags" : [ "org" ],
"summary" : "Return validation for a org by slug",
"operationId" : "getOrgBySlugNoAuth",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "slug",
"in" : "path",
"description" : "Org slug",
"required" : true,
"type" : "string"
} ],
"responses" : {
"400" : {
"description" : "bad request"
},
"404" : {
"description" : "not found"
}
}
}
},
"/saml/org/{orgId}/xml-cert" : {
"post" : {
"tags" : [ "saml" ],
"summary" : "Save per org Xml Cert from IDP",
"operationId" : "uploadXmlCertificate",
"consumes" : [ "multipart/form-data" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "orgId",
"in" : "path",
"description" : "Org identifier (either id or slug)",
"required
# --- truncated at 32 KB (2005 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/charthop/refs/heads/main/openapi/charthop-openapi-original.json